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

# Get a usage report

> Minutes and dubs from the API for one month, for the whole account, per key and per
target language. A dub counts in the month it started. Dubs started in the Reedapt app
aren't included.



## OpenAPI

````yaml /openapi.json get /usage/report
openapi: 3.1.0
info:
  title: Reedapt Dubbing API
  description: >-
    Dub video and audio into other languages in the speaker's own voice.
    Authenticate with `Authorization: Bearer <key>`; make keys in Reedapt under
    Developers.
  version: 1.0.0
servers:
  - url: https://api.reedapt.com/v1
security:
  - apiKey: []
paths:
  /usage/report:
    get:
      tags:
        - Account
      summary: Get a usage report
      description: >-
        Minutes and dubs from the API for one month, for the whole account, per
        key and per

        target language. A dub counts in the month it started. Dubs started in
        the Reedapt app

        aren't included.
      operationId: usage_report_usage_report_get
      parameters:
        - name: month
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: The month, as YYYY-MM in UTC. Defaults to this month.
            examples:
              - 2026-10
            title: Month
          description: The month, as YYYY-MM in UTC. Defaults to this month.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsageReport'
        '401':
          description: The key is missing, wrong or revoked.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '422':
          description: The request is invalid; the code and `fields` say why.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '429':
          description: >-
            Too many requests, or a plan limit was reached. Wait for
            `Retry-After` seconds.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
components:
  schemas:
    UsageReport:
      properties:
        month:
          type: string
          title: Month
          examples:
            - 2026-10
        period_start:
          type: string
          format: date-time
          title: Period Start
          description: The month's first instant, in UTC.
        period_end:
          type: string
          format: date-time
          title: Period End
          description: The next month's first instant, in UTC.
        minutes:
          type: number
          title: Minutes
          description: >-
            Minutes used by the account's API dubs that started this month and
            completed.
          examples:
            - 136.5
        minutes_in_progress:
          type: number
          title: Minutes In Progress
          examples:
            - 12
        dubs:
          $ref: '#/components/schemas/DubCounts'
        keys:
          items:
            $ref: '#/components/schemas/KeyUsage'
          type: array
          title: Keys
          description: Per API key, most minutes first.
        languages:
          items:
            $ref: '#/components/schemas/LanguageUsage'
          type: array
          title: Languages
          description: Per target language, most minutes first.
      type: object
      required:
        - month
        - period_start
        - period_end
        - minutes
        - minutes_in_progress
        - dubs
        - keys
        - languages
      title: UsageReport
    ErrorBody:
      properties:
        error:
          $ref: '#/components/schemas/ErrorDetail'
      type: object
      required:
        - error
      title: ErrorBody
    DubCounts:
      properties:
        completed:
          type: integer
          title: Completed
        in_progress:
          type: integer
          title: In Progress
        failed:
          type: integer
          title: Failed
          description: Failed or cancelled. Their minutes were returned.
      type: object
      required:
        - completed
        - in_progress
        - failed
      title: DubCounts
    KeyUsage:
      properties:
        key_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Key Id
          description: >-
            The key that started these dubs. Null for dubs we can't trace to a
            key.
          examples:
            - 7f3c2a1e-…
        mode:
          type: string
          enum:
            - live
            - test
          title: Mode
        minutes:
          type: number
          title: Minutes
          description: Minutes used by completed dubs. Test dubs are free.
          examples:
            - 124.5
        minutes_in_progress:
          type: number
          title: Minutes In Progress
          description: Minutes reserved by dubs that haven't finished.
          examples:
            - 12
        dubs:
          $ref: '#/components/schemas/DubCounts'
      type: object
      required:
        - mode
        - minutes
        - minutes_in_progress
        - dubs
      title: KeyUsage
    LanguageUsage:
      properties:
        target_language:
          anyOf:
            - type: string
            - type: 'null'
          title: Target Language
          examples:
            - fr
        minutes:
          type: number
          title: Minutes
          examples:
            - 80.25
        minutes_in_progress:
          type: number
          title: Minutes In Progress
          examples:
            - 0
        dubs:
          $ref: '#/components/schemas/DubCounts'
          description: Includes test dubs.
      type: object
      required:
        - minutes
        - minutes_in_progress
        - dubs
      title: LanguageUsage
    ErrorDetail:
      properties:
        code:
          type: string
          title: Code
          description: Stable and machine-readable; branch on this, not on the message.
          examples:
            - UPLOAD_INCOMPLETE
        message:
          type: string
          title: Message
          description: What went wrong and what to do, in plain English.
          examples:
            - Complete the upload before dubbing it.
        request_id:
          type: string
          title: Request Id
          description: Quote it when you contact us about this request.
          examples:
            - req_8f2c1e0a9b7d6c5e4f3a
        fields:
          anyOf:
            - items:
                additionalProperties:
                  type: string
                type: object
              type: array
            - type: 'null'
          title: Fields
          description: >-
            On INVALID_REQUEST from validation: each field that is missing or
            invalid.
          examples:
            - - field: target_languages
                message: Field required
      type: object
      required:
        - code
        - message
        - request_id
      title: ErrorDetail
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: '`rk_live_…` or `rk_test_…`, made in Reedapt under Developers.'

````

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