> ## Documentation Index
> Fetch the complete documentation index at: https://help.onetsolutions.net/llms.txt
> Use this file to discover all available pages before exploring further.

# [Services] List time-based work

> Hourly work and other billable items recorded for the organization, newest month first, with the invoice that carries each item once it is invoiced.



## OpenAPI

````yaml https://api.onetsolutions.net/schema get /v1/organizations/{organization_id}/services/billable-items
openapi: 3.0.3
info:
  title: OnetSolutions API
  version: v1 (v1)
  description: >

    ## Overview


    The OnetSolutions API provides programmatic access to manage your cloud
    infrastructure, domains, and web hosting services.


    ## Authentication


    All API requests require authentication using one of the following methods:


    - **JWT Token**: Obtain a token via login endpoints and include it in the
    `Authorization: Bearer <token>` header

    - **API Key**: Generate an API key from your account settings and use it as
    `Authorization: Bearer sk-onetsolutions-...`


    ## Rate Limiting


    API requests are rate-limited to ensure fair usage:

    - **Standard**: 1000 requests per minute

    - **Burst**: 100 requests per second


    ## Pagination


    List endpoints return paginated results. Use `page` and `page_size` query
    parameters.


    ## Error Handling


    The API uses standard HTTP status codes:

    - `200` Success

    - `201` Created

    - `400` Bad Request

    - `401` Unauthorized

    - `403` Forbidden

    - `404` Not Found

    - `429` Too Many Requests
servers: []
security: []
tags:
  - name: Authentication
    description: >-
      Login, passwordless authentication, MFA, OAuth providers, and token
      management.
  - name: Organizations
    description: >-
      Organization management, members, roles, modules, audit logs, and
      notification settings.
  - name: Projects
    description: Project management, team members, and project-scoped resources.
  - name: Compute
    description: >-
      Cloud instances, volumes, snapshots, backups, VPCs, firewalls, SSH keys,
      uptime monitors, and instance tasks.
  - name: Billing
    description: >-
      Shopping cart, orders, invoices, payments, payment methods, gateways,
      promo codes, and balance management.
  - name: Domains
    description: >-
      Domain availability, registration, transfers, DNS zones, DNS records, and
      TLD information.
  - name: Web Hosting
    description: >-
      cPanel-based web hosting, emails, databases, subdomains, FTP accounts,
      addon domains, and SSL certificates.
paths:
  /v1/organizations/{organization_id}/services/billable-items:
    get:
      tags:
        - Services
      summary: '[Services] List time-based work'
      description: >-
        Hourly work and other billable items recorded for the organization,
        newest month first, with the invoice that carries each item once it is
        invoiced.
      operationId: list_billable_items
      parameters:
        - in: query
          name: billing_status
          schema:
            type: string
            enum:
              - free
              - invoiced
              - pending
        - in: query
          name: month
          schema:
            type: string
          description: >-
            Month (YYYY-MM), or "unscheduled" for items without invoice nor due
            date
        - in: path
          name: organization_id
          schema:
            type: string
          description: Unique identifier of the organization
          required: true
        - name: page
          required: false
          in: query
          description: A page number within the paginated result set.
          schema:
            type: integer
        - name: page_size
          required: false
          in: query
          description: Number of results to return per page.
          schema:
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBillableItemList'
          description: ''
        '400':
          description: Invalid month or billing_status
      security:
        - BearerAuth: []
components:
  schemas:
    PaginatedBillableItemList:
      type: object
      required:
        - count
        - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/BillableItem'
    BillableItem:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        description:
          type: string
          readOnly: true
        hours:
          type: string
          pattern: ^-?\d{0,5}(?:\.\d{0,2})?$
          readOnly: true
        unit:
          enum:
            - hours
            - quantity
          type: string
          description: |-
            * `hours` - Hours
            * `quantity` - Quantity
          x-spec-enum-id: a976be40814ae520
          readOnly: true
        unit_price:
          type: string
          pattern: ^-?\d{0,10}(?:\.\d{0,2})?$
          readOnly: true
          nullable: true
        amount:
          type: string
          pattern: ^-?\d{0,10}(?:\.\d{0,2})?$
          readOnly: true
          description: Amount excluding tax
        currency:
          type: string
          readOnly: true
        due_date:
          type: string
          format: date
          readOnly: true
          nullable: true
          description: Due date entered on the item
        date:
          type: string
          format: date
          readOnly: true
          nullable: true
          description: Due date of the item, else the date of its invoice
        month:
          type: string
          readOnly: true
          description: Month of the item date (YYYY-MM), "unscheduled" without a date
        billing_status:
          enum:
            - invoiced
            - pending
            - free
          type: string
          description: |-
            * `invoiced` - Invoiced
            * `pending` - Not invoiced yet
            * `free` - Free of charge
          x-spec-enum-id: aafe8cf3c7106e08
          readOnly: true
        invoice:
          allOf:
            - $ref: '#/components/schemas/BillableItemInvoice'
          readOnly: true
          nullable: true
        links:
          type: array
          items:
            $ref: '#/components/schemas/BillableItemLink'
          readOnly: true
        changes:
          allOf:
            - $ref: '#/components/schemas/BillableItemChanges'
          readOnly: true
          nullable: true
          description: Code changes summed over the linked commits, null without any
      required:
        - amount
        - billing_status
        - changes
        - currency
        - date
        - description
        - due_date
        - hours
        - id
        - invoice
        - links
        - month
        - unit
        - unit_price
    BillableItemInvoice:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        invoice_number:
          type: string
          readOnly: true
          description: 'Ex: INV-2025-00001'
        status:
          enum:
            - draft
            - pending
            - paid
            - partially_paid
            - overdue
            - collections
            - cancelled
            - refunded
          type: string
          description: |-
            * `draft` - Draft
            * `pending` - Pending Payment
            * `paid` - Paid
            * `partially_paid` - Partially Paid
            * `overdue` - Overdue
            * `collections` - In Collections
            * `cancelled` - Cancelled
            * `refunded` - Refunded
          x-spec-enum-id: 03f8577ac577d4ee
          readOnly: true
        issue_date:
          type: string
          format: date
          readOnly: true
          description: Issue date
      required:
        - id
        - invoice_number
        - issue_date
        - status
    BillableItemLink:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        kind:
          enum:
            - commit
            - merge_request
            - ticket
            - other
          type: string
          description: |-
            * `commit` - Commit
            * `merge_request` - Merge request
            * `ticket` - Ticket
            * `other` - Other
          x-spec-enum-id: 475624e3834699ea
          readOnly: true
        title:
          type: string
          readOnly: true
        provider:
          enum:
            - gitlab
            - github
            - jira
            - other
          type: string
          description: |-
            * `gitlab` - GitLab
            * `github` - GitHub
            * `jira` - Jira
            * `other` - Other
          x-spec-enum-id: 4a0ff4c83b8f0a50
          readOnly: true
        files_changed:
          type: integer
          readOnly: true
          nullable: true
          description: Files changed by a commit
        additions:
          type: integer
          readOnly: true
          nullable: true
          description: Lines added by a commit
        deletions:
          type: integer
          readOnly: true
          nullable: true
          description: Lines removed by a commit
      required:
        - additions
        - deletions
        - files_changed
        - id
        - kind
        - provider
        - title
        - url
    BillableItemChanges:
      type: object
      properties:
        files_changed:
          type: integer
        additions:
          type: integer
        deletions:
          type: integer
      required:
        - additions
        - deletions
        - files_changed
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT or API Key
      description: >-
        Use `Authorization: Bearer <token>` header. Token can be a JWT token or
        an API key (format: `sk-onetsolutions-...`).

````