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

# Read a Domain's recent rate-limit usage history

> Page this Domain's recorded rate-limit usage, newest first. Each row is one downsampled observation for a bucket and window: `used` is what this platform recorded spending, `cap` the effective budget at the time, `observed` the provider's own counter when a reconciliation read happened to run in that minute, and `drift` the difference between the two. A sustained non-zero `drift` means something outside this platform is also spending the Domain's budget.

These rows are COUNTS ONLY. The series never contains a record value, a phone number or a list name, which is what makes it safe to read and export in bulk. It is retained for 30 days on a rolling window, so the history is bounded rather than complete — older observations age out and are gone.

Filter with `bucket` and `window` (both optional and additive). Paginate by passing the previous response's `next_cursor` back verbatim in `cursor`; `total` is `null` on this feed by design, because counting a 30-day series on every page would cost more than the page itself. A `next_cursor` of `null` means you have reached the oldest retained row. Readable by any organization member. Cross-tenant access returns 404, never 403.



## OpenAPI

````yaml /openapi.json get /platforms/five9/domains/{tenancy_id}/usage
openapi: 3.1.0
info:
  title: GetDialed API
  version: 0.1.0
servers:
  - url: https://api.getdialed.ai/v1
    description: Production
security: []
paths:
  /platforms/five9/domains/{tenancy_id}/usage:
    get:
      tags:
        - five9-domains
      summary: Read a Domain's recent rate-limit usage history
      description: >-
        Page this Domain's recorded rate-limit usage, newest first. Each row is
        one downsampled observation for a bucket and window: `used` is what this
        platform recorded spending, `cap` the effective budget at the time,
        `observed` the provider's own counter when a reconciliation read
        happened to run in that minute, and `drift` the difference between the
        two. A sustained non-zero `drift` means something outside this platform
        is also spending the Domain's budget.


        These rows are COUNTS ONLY. The series never contains a record value, a
        phone number or a list name, which is what makes it safe to read and
        export in bulk. It is retained for 30 days on a rolling window, so the
        history is bounded rather than complete — older observations age out and
        are gone.


        Filter with `bucket` and `window` (both optional and additive). Paginate
        by passing the previous response's `next_cursor` back verbatim in
        `cursor`; `total` is `null` on this feed by design, because counting a
        30-day series on every page would cost more than the page itself. A
        `next_cursor` of `null` means you have reached the oldest retained row.
        Readable by any organization member. Cross-tenant access returns 404,
        never 403.
      operationId: list_five9_domain_usage_platforms_five9_domains__tenancy_id__usage_get
      parameters:
        - name: tenancy_id
          in: path
          required: true
          schema:
            type: string
            title: Tenancy Id
        - name: bucket
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Bucket
        - name: window
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Window
        - name: cursor
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Cursor
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 500
            minimum: 1
            default: 100
            title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Page_Five9DomainRateUsageRow_'
        '400':
          description: >-
            The `cursor` token is not one this endpoint issued. Pass back the
            `next_cursor` value verbatim, or omit it to start from the newest
            row.
          content:
            application/json:
              example:
                detail: Invalid cursor
        '401':
          description: Missing or invalid authentication
          content:
            application/json:
              example:
                detail: Authentication required
        '404':
          description: >-
            No such Domain for this organization (cross-tenant access also
            returns 404)
          content:
            application/json:
              example:
                detail: Domain not found
        '422':
          description: >-
            A query parameter failed validation — an unknown rate bucket, an
            unknown window, or a page size outside the permitted range.
          content:
            application/json:
              example:
                detail: >-
                  window must be one of: 60, 3600, 86400 (window length in
                  seconds)
        '429':
          description: Rate limit exceeded — retry after the Retry-After header
          headers:
            Retry-After:
              description: Seconds to wait before retrying
              schema:
                type: integer
          content:
            application/json:
              example:
                detail: 'Rate limit exceeded: 100 per 1 minute'
      security:
        - APIKeyHeader: []
        - HTTPBearer: []
components:
  schemas:
    Page_Five9DomainRateUsageRow_:
      properties:
        items:
          items:
            $ref: '#/components/schemas/Five9DomainRateUsageRow'
          type: array
          title: Items
        total:
          anyOf:
            - type: integer
            - type: 'null'
          title: Total
        limit:
          type: integer
          title: Limit
        skip:
          type: integer
          title: Skip
        next_cursor:
          anyOf:
            - type: string
            - type: 'null'
          title: Next Cursor
      type: object
      required:
        - items
        - limit
        - skip
      title: Page[Five9DomainRateUsageRow]
    Five9DomainRateUsageRow:
      properties:
        bucket:
          type: string
          title: Bucket
        window:
          type: string
          title: Window
        minute:
          type: string
          format: date-time
          title: Minute
        used:
          type: integer
          title: Used
        cap:
          type: integer
          title: Cap
        observed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Observed
        drift:
          anyOf:
            - type: integer
            - type: 'null'
          title: Drift
      type: object
      required:
        - bucket
        - window
        - minute
        - used
        - cap
      title: Five9DomainRateUsageRow
      description: >-
        One downsampled usage observation for a Domain's bucket and window.


        Counts only — this series never contains a record value or a phone
        number,

        which is what makes it safe to read and export in bulk. Rows are
        retained on

        a rolling window, so the history is bounded rather than complete.


        `used` is what this platform recorded spending in that minute and `cap`
        the

        effective budget at the time. `observed` is the provider's own reported

        counter when a reconciliation read happened to run in that minute, and

        `drift` the difference between the two — both are `null` in minutes with
        no

        reconciliation read, and a sustained non-zero `drift` means something
        outside

        this platform is also spending the Domain's budget.
      example:
        bucket: Upload
        cap: 400
        drift: -2
        minute: '2026-08-14T18:00:00Z'
        observed: 118
        used: 120
        window: '3600'
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
    HTTPBearer:
      type: http
      scheme: bearer
      bearerFormat: JWT

````