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

# Get the organization's billing

> Organization billing: the organization pays for the credits of its organization-billed workspaces, as a pool (a monthly commit, then overage at `rate_per_credit`) or metered (every credit at `rate_per_credit`). Returns the state (`NOT_ACTIVE` until the Neo account team activates it, `NOT_STARTED` before `starts_on`, `ACTIVE`, `PAYMENT_FAILED` with `update_payment_url`), this month's billed credits, overage credits and estimated charge before tax in minor units, the cap with its level, the usage invoices, and every workspace of the organization with its billing (`ORGANIZATION` or `STANDALONE`), credits, share of the total, limit, join date and removal date. A standalone workspace's credits do not count. Requires a signed-in organization owner or administrator whose open workspace (X-Client-Id) belongs to the organization. An API key gets 403 and reads its own workspace at GET /billing/organization; the one exception is the Neo Support agent's key in a dashboard chat whose signed-in owner holds that organization role.



## OpenAPI

````yaml https://api.neoagent.io/public-api/openapi.json get /public-api/organizations/{organization_id}/billing
openapi: 3.1.0
info:
  description: >-
    Neo's public contract for the dashboard ChatAgent, partner integrations, and
    MSP automation. Every response is wrapped in a `{data, meta}` envelope;
    errors use `{error: {code, message, details?}, meta: {request_id}}`.
    Authenticate with a `Bearer neo_sk_<env>_<secret>` API key (service account)
    or a Microsoft Entra ID JWT (dashboard user). Signed-URL endpoints (end-user
    feedback links) take a `signature` query parameter instead.
  title: Neo Public API
  version: 1.0.0
servers:
  - url: https://api.neoagent.io
security: []
tags:
  - description: Service metadata — health, OpenAPI.
    name: Meta
  - description: Agents and workflows — read, version history, delete, stats.
    name: Agents
  - description: Agent/workflow execution history, sub-resources, retry/cancel.
    name: Executions
  - description: >-
      Every tool call the tenant's agents made in the last 30 days, within the
      caller's workflow access.
    name: Audit Log
  - description: PSA webhook events and their workflow-match results.
    name: Callbacks
  - description: Technician-in-the-loop approval requests.
    name: TIL requests
  - description: RMM script executions triggered by agents.
    name: RMM scripts
  - description: Dispatch-agent field-update decisions.
    name: Dispatch
  - description: The authenticated tenant.
    name: Tenant
  - description: Agent-builder schema catalogs (raw JSON payloads).
    name: Schemas
  - description: Escalate to the Neo team (HubSpot ticket).
    name: Escalation
  - description: Tenant settings.
    name: Settings
  - description: Tenant API-key management (dashboard JWT only).
    name: API keys
  - description: End-user feedback links (signed-URL auth).
    name: Feedback
  - description: End-client companies (CRUD + bulk-update).
    name: End companies
  - description: Channels — bind a CONVERSATIONAL agent to a transport (Teams or Slack).
    name: Channels
  - description: PSA/RMM/M365 integration status and connection management.
    name: Integrations
  - description: Technician roster (controls TIL routing and paging).
    name: Technicians
  - description: Future runs queued for TRIGGERED agents.
    name: Scheduled work
  - description: Subscription state and customer-facing credit usage (no provider $).
    name: Billing
  - description: Inbox messages and announcements.
    name: Inbox & Comms
  - description: Tenant-authored agent skills (CRUD) and the built-in skill catalog.
    name: Skills
paths:
  /public-api/organizations/{organization_id}/billing:
    get:
      tags:
        - Organizations
      summary: Get the organization's billing
      description: >-
        Organization billing: the organization pays for the credits of its
        organization-billed workspaces, as a pool (a monthly commit, then
        overage at `rate_per_credit`) or metered (every credit at
        `rate_per_credit`). Returns the state (`NOT_ACTIVE` until the Neo
        account team activates it, `NOT_STARTED` before `starts_on`, `ACTIVE`,
        `PAYMENT_FAILED` with `update_payment_url`), this month's billed
        credits, overage credits and estimated charge before tax in minor units,
        the cap with its level, the usage invoices, and every workspace of the
        organization with its billing (`ORGANIZATION` or `STANDALONE`), credits,
        share of the total, limit, join date and removal date. A standalone
        workspace's credits do not count. Requires a signed-in organization
        owner or administrator whose open workspace (X-Client-Id) belongs to the
        organization. An API key gets 403 and reads its own workspace at GET
        /billing/organization; the one exception is the Neo Support agent's key
        in a dashboard chat whose signed-in owner holds that organization role.
      operationId: public_api.organizations_billing_get_get
      parameters:
        - in: path
          name: organization_id
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/OrganizationBillingInfo'
                  meta:
                    $ref: '#/components/schemas/SuccessMeta'
                required:
                  - data
                  - meta
                type: object
          description: Success.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Bad request — malformed input.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Unauthenticated — missing or invalid credentials.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Forbidden — authenticated but not allowed.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Not found.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Conflict — the resource is in a state that blocks this operation.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Request validation failed.
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Rate limited — see Retry-After.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Internal server error.
      security:
        - bearerAuth: []
components:
  schemas:
    OrganizationBillingInfo:
      properties:
        as_of:
          format: date-time
          title: As Of
          type: string
        billed_credits:
          title: Billed Credits
          type: integer
        cap:
          anyOf:
            - $ref: '#/components/schemas/OrganizationBillingCapInfo'
            - type: 'null'
        commit_credits:
          anyOf:
            - type: integer
            - type: 'null'
          title: Commit Credits
        currency:
          anyOf:
            - type: string
            - type: 'null'
          title: Currency
        estimated_charge_minor:
          title: Estimated Charge Minor
          type: integer
        invoices:
          items:
            $ref: '#/components/schemas/OrganizationInvoiceInfo'
          title: Invoices
          type: array
        kind:
          anyOf:
            - enum:
                - POOL
                - METERED
              type: string
            - type: 'null'
          title: Kind
        overage_credits:
          title: Overage Credits
          type: integer
        period_start:
          anyOf:
            - format: date
              type: string
            - type: 'null'
          title: Period Start
        rate_per_credit:
          anyOf:
            - type: string
            - type: 'null'
          title: Rate Per Credit
        starts_on:
          anyOf:
            - format: date
              type: string
            - type: 'null'
          title: Starts On
        state:
          enum:
            - NOT_ACTIVE
            - NOT_STARTED
            - ACTIVE
            - PAYMENT_FAILED
          title: State
          type: string
        update_payment_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Update Payment Url
        workspaces:
          items:
            $ref: '#/components/schemas/OrganizationWorkspaceBillingInfo'
          title: Workspaces
          type: array
      required:
        - state
        - kind
        - starts_on
        - currency
        - commit_credits
        - rate_per_credit
        - cap
        - period_start
        - as_of
        - billed_credits
        - overage_credits
        - estimated_charge_minor
        - update_payment_url
        - invoices
        - workspaces
      title: OrganizationBillingInfo
      type: object
    SuccessMeta:
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        request_id:
          format: uuid
          type: string
        timings_ms:
          additionalProperties:
            type: number
          type: object
        warnings:
          description: >-
            Non-fatal warnings about the created/updated resource (e.g. an
            unhealthy PSA callback).
          items:
            type: string
          type: array
      required:
        - request_id
        - timings_ms
      type: object
    ErrorEnvelope:
      properties:
        error:
          properties:
            code:
              description: Stable machine-readable error code.
              type: string
            details:
              additionalProperties: true
              type: object
            message:
              type: string
          required:
            - code
            - message
          type: object
        meta:
          properties:
            request_id:
              format: uuid
              type:
                - string
                - 'null'
          type: object
      required:
        - error
        - meta
      type: object
    OrganizationBillingCapInfo:
      properties:
        cap_credits:
          title: Cap Credits
          type: integer
        level:
          enum:
            - OK
            - WARNING
            - BLOCKED
          title: Level
          type: string
      required:
        - cap_credits
        - level
      title: OrganizationBillingCapInfo
      type: object
    OrganizationInvoiceInfo:
      properties:
        amount_minor:
          title: Amount Minor
          type: integer
        billing_month:
          title: Billing Month
          type: string
        status:
          title: Status
          type: string
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: Url
      required:
        - billing_month
        - url
        - amount_minor
        - status
      title: OrganizationInvoiceInfo
      type: object
    OrganizationWorkspaceBillingInfo:
      properties:
        billed_credits:
          title: Billed Credits
          type: integer
        billing:
          enum:
            - ORGANIZATION
            - STANDALONE
          title: Billing
          type: string
        client_id:
          title: Client Id
          type: string
        client_name:
          title: Client Name
          type: string
        joins_on:
          anyOf:
            - format: date
              type: string
            - type: 'null'
          title: Joins On
        monthly_credits_limit:
          anyOf:
            - type: integer
            - type: 'null'
          title: Monthly Credits Limit
        removal_on:
          anyOf:
            - format: date
              type: string
            - type: 'null'
          title: Removal On
        share:
          title: Share
          type: number
      required:
        - client_id
        - client_name
        - billing
        - joins_on
        - billed_credits
        - share
        - monthly_credits_limit
        - removal_on
      title: OrganizationWorkspaceBillingInfo
      type: object
    Pagination:
      properties:
        has_more:
          type: boolean
        next_cursor:
          type:
            - string
            - 'null'
      required:
        - next_cursor
        - has_more
      type: object
  securitySchemes:
    bearerAuth:
      description: >-
        `Authorization: Bearer <token>` where `<token>` is either a
        `neo_sk_<env>_<secret>` API key (service account) or a Microsoft Entra
        ID access token (dashboard user).
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.