Deepdub Usage API

The Usage API from Deepdub — 2 operation(s) for usage.

OpenAPI Specification

deepdub-usage-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Deepdub Dubbing Usage API
  description: Deepdub's Text-to-Speech API enables high-quality, expressive speech generation with voice cloning, accent control, and real-time streaming capabilities.
  contact:
    email: support@deepdub.ai
  version: '1.0'
servers:
- url: https://restapi.deepdub.ai/api/v1
  description: Production
security:
- ApiKeyAuth: []
tags:
- name: Usage
paths:
  /usage/concurrent:
    get:
      operationId: getUsageConcurrent
      description: Get daily concurrent-capacity usage for the authenticated customer. Returns usage rows from the billing system, broken down by date, model, and region.
      tags:
      - Usage
      summary: Get daily concurrent usage
      parameters:
      - description: API Key
        name: x-api-key
        in: header
        required: true
        schema:
          type: string
          default: dd-00000000000000000000000065c9cbfe
        example: dd-00000000000000000000000065c9cbfe
      - description: Start date (inclusive)
        name: from
        in: query
        required: true
        schema:
          type: string
          format: date
        example: '2026-05-01'
      - description: End date (inclusive). Must be on or after `from`. Maximum range is 366 days.
        name: to
        in: query
        required: true
        schema:
          type: string
          format: date
        example: '2026-05-31'
      - description: Filter by model ID
        name: model_id
        in: query
        required: false
        schema:
          type: string
      - description: Filter by region
        name: region
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Daily usage data
          content:
            application/json:
              schema:
                type: object
                properties:
                  customerId:
                    type: string
                  from:
                    type: string
                    format: date
                  to:
                    type: string
                    format: date
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                          format: date
                        customerId:
                          type: string
                        modelId:
                          type: string
                          description: Dedicated model route ID
                        region:
                          type: string
                        usageSecondsTimesSize:
                          type: number
                          description: GPU-instance-seconds (instance size × seconds)
                        concurrencyHours:
                          type: number
                          description: usageSecondsTimesSize / 3600
                        averageSize:
                          type: number
                          description: Time-weighted average instance count
        '400':
          description: Missing or invalid date range or filters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/model.APIError'
        '401':
          description: Unauthorized — invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/model.APIError'
        '504':
          description: Query timed out — try a smaller date range
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/model.APIError'
  /usage/concurrent/by-model:
    get:
      operationId: getUsageConcurrentByModel
      description: Get concurrent-capacity usage rolled up per model and region over a date range. Returns aggregated totals instead of daily rows.
      tags:
      - Usage
      summary: Get usage aggregated by model
      parameters:
      - description: API Key
        name: x-api-key
        in: header
        required: true
        schema:
          type: string
          default: dd-00000000000000000000000065c9cbfe
        example: dd-00000000000000000000000065c9cbfe
      - description: Start date (inclusive)
        name: from
        in: query
        required: true
        schema:
          type: string
          format: date
        example: '2026-05-01'
      - description: End date (inclusive). Must be on or after `from`. Maximum range is 366 days.
        name: to
        in: query
        required: true
        schema:
          type: string
          format: date
        example: '2026-05-31'
      - description: Filter by model ID
        name: model_id
        in: query
        required: false
        schema:
          type: string
      - description: Filter by region
        name: region
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Aggregated usage data by model
          content:
            application/json:
              schema:
                type: object
                properties:
                  customerId:
                    type: string
                  from:
                    type: string
                    format: date
                  to:
                    type: string
                    format: date
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        modelId:
                          type: string
                          description: Dedicated model route ID
                        region:
                          type: string
                        totalUsageSecondsTimesSize:
                          type: number
                          description: Total GPU-instance-seconds over the date range
                        totalConcurrencyHours:
                          type: number
                          description: totalUsageSecondsTimesSize / 3600
                        averageInstancesOverRange:
                          type: number
                          description: Average instance count over the full date range (including days with no usage)
                        daysWithUsage:
                          type: integer
                          description: Number of distinct days with usage in the range
        '400':
          description: Missing or invalid date range or filters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/model.APIError'
        '401':
          description: Unauthorized — invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/model.APIError'
        '504':
          description: Query timed out — try a smaller date range
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/model.APIError'
components:
  schemas:
    model.APIError:
      description: Error response returned for all non-2xx status codes
      type: object
      required:
      - success
      - message
      properties:
        success:
          description: Always false for error responses
          type: boolean
          example: false
        message:
          description: Human-readable error message
          type: string
          example: Invalid request parameters
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication. Must start with `dd-` prefix.
externalDocs:
  description: OpenAPI
  url: https://restapi.deepdub.ai/api/v1/swagger/index.html