openapi: 3.0.3 info: title: D-ID Agents Translations API description: 'API for creating and managing interactive real-time AI agents that combine digital avatar streaming with large language models, RAG-based knowledge bases, and custom tools. Supports WebRTC and LiveKit-powered streaming sessions, conversation memory, chat export, and integration with third-party LLM providers. Enables face-to-face AI conversations at scale. ' version: 1.0.0 contact: url: https://www.d-id.com termsOfService: https://www.d-id.com/terms-of-use/ servers: - url: https://api.d-id.com description: D-ID Production API security: - basicAuth: [] - bearerAuth: [] tags: - name: Translations description: Translate existing videos into 100+ languages with lip-sync paths: /translations: get: operationId: getvideotranslates summary: List video translations description: Retrieve a paginated list of video translation jobs. tags: - Translations parameters: - name: limit in: query schema: type: number default: 100 - name: token in: query schema: type: string responses: '200': description: Paginated list of translations. content: application/json: schema: type: object properties: translations: type: array items: $ref: '#/components/schemas/GetTranslationResponse' token: type: string '401': $ref: '#/components/responses/Unauthorized' post: operationId: createvideotranslate summary: Create a video translation description: 'Translate an existing video into one or more target languages using AI speech translation, voice cloning, and lip-sync technology. ' tags: - Translations requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateTranslationDto' responses: '201': description: Translation job created. content: application/json: schema: type: object properties: translations: type: array items: $ref: '#/components/schemas/GetTranslationResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '402': $ref: '#/components/responses/PaymentRequired' '403': $ref: '#/components/responses/Forbidden' /translations/{id}: get: operationId: getvideotranslate summary: Get a video translation description: Retrieve the status and result of a specific translation job. tags: - Translations parameters: - $ref: '#/components/parameters/resourceId' responses: '200': description: Translation object. content: application/json: schema: $ref: '#/components/schemas/GetTranslationResponse' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deletevideotranslate summary: Delete a video translation tags: - Translations parameters: - $ref: '#/components/parameters/resourceId' responses: '200': description: Deleted translation object. content: application/json: schema: $ref: '#/components/schemas/GetTranslationResponse' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: responses: PaymentRequired: description: Insufficient credits. content: application/json: schema: $ref: '#/components/schemas/JsonError' BadRequest: description: Bad request — invalid parameters. content: application/json: schema: $ref: '#/components/schemas/JsonError' Unauthorized: description: Authentication failure. content: application/json: schema: $ref: '#/components/schemas/JsonError' example: kind: AuthorizationError description: user unauthenticated NotFound: description: Resource not found. content: application/json: schema: $ref: '#/components/schemas/JsonError' example: kind: NotFoundError description: not found Forbidden: description: Permission denied. content: application/json: schema: $ref: '#/components/schemas/JsonError' schemas: GetTranslationResponse: type: object properties: id: type: string group_id: type: string name: type: string owner_id: type: string status: type: string enum: - created - validating - done - error - rejected - ready created_at: type: string format: date-time created_by: type: string modified_at: type: string format: date-time result_url: type: string format: uri subtitles_url: type: string format: uri thumbnail_url: type: string format: uri transcriptions: type: array items: $ref: '#/components/schemas/TranscriptionVersion' JsonError: type: object properties: kind: type: string description: Error type identifier. example: AuthorizationError description: type: string description: Human-readable error description. example: user unauthenticated CreateTranslationDto: type: object required: - source_url - languages properties: source_url: type: string format: uri description: 'URL of the video to translate (HTTPS or S3; .mp4, .mov, or .mpeg). ' languages: type: array items: type: string description: Target translation language codes. example: - es - fr source_language: type: string description: Original video language for improved STT accuracy. webhook: type: string format: uri description: HTTPS webhook URL for completion notification. user_data: type: string description: Custom metadata (1–1,000 characters). minLength: 1 maxLength: 1000 result_url: type: string format: uri description: Destination for the output video. TranscriptionVersion: type: object properties: url: type: string format: uri version_type: type: string selected: type: boolean parameters: resourceId: name: id in: path required: true description: Unique resource identifier. schema: type: string securitySchemes: basicAuth: type: http scheme: basic description: HTTP Basic Authentication using API key as username. bearerAuth: type: http scheme: bearer description: Bearer token authentication. clientKeyAuth: type: apiKey in: header name: Authorization description: Scoped client key for SDK embedding. externalDocs: description: D-ID Agents API Reference url: https://docs.d-id.com/reference/agents