Adobe Suite Dub API

The Dub API from Adobe Suite — 1 operation(s) for dub.

Operations 1

POST /v1/dub Dub audio or video #

Documentation

📖
Documentation
https://developer.adobe.com/photoshop/api/docs/
📖
Authentication
https://developer.adobe.com/developer-console/docs/guides/authentication/
📖
Documentation
https://developer.adobe.com/lightroom/api/docs/
📖
Documentation
https://developer.adobe.com/illustrator/api/docs/
📖
Documentation
https://developer.adobe.com/indesign/docs/
📖
Documentation
https://developer.adobe.com/document-services/docs/overview/pdf-services-api/
📖
Documentation
https://developer.adobe.com/document-services/docs/overview/pdf-extract-api/
📖
GettingStarted
https://developer.adobe.com/document-services/docs/overview/pdf-extract-api/gettingstarted/
📖
Documentation
https://developer.adobe.com/document-services/docs/overview/pdf-accessibility-auto-tag-api/
📖
Documentation
https://developer.adobe.com/analytics-apis/docs/
📖
APIReference
https://developer.adobe.com/analytics-apis/docs/2.0/
📖
Documentation
https://developer.adobe.com/firefly-services/docs/
📖
APIReference
https://developer.adobe.com/firefly-services/docs/api/
📖
Documentation
https://developer.adobe.com/audio-video-firefly-services/
📖
GettingStarted
https://developer.adobe.com/audio-video-firefly-services/getting-started/
📖
Documentation
https://developer.adobe.com/creative-cloud-libraries/docs/
📖
APIReference
https://developer.adobe.com/creative-cloud-libraries/docs/api/
📖
Documentation
https://developer.adobe.com/express/embed-sdk/docs/guides/
📖
APIReference
https://developer.adobe.com/express/embed-sdk/docs/v4/
📖
GettingStarted
https://developer.adobe.com/express/embed-sdk/docs/guides/quickstart/
📖
Documentation
https://developer.adobe.com/experience-platform-apis/
📖
GettingStarted
https://experienceleague.adobe.com/en/docs/experience-platform/landing/platform-apis/api-guide
📖
Documentation
https://developer.adobe.com/marketo-apis/
📖
Authentication
https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/authentication
📖
Documentation
https://developer.adobe.com/commerce/docs/
📖
GettingStarted
https://developer.adobe.com/commerce/webapi/get-started/
📖
Documentation
https://developer.adobe.com/experience-cloud/cloud-manager/
📖
Documentation
https://developer.adobe.com/journey-optimizer-apis/
📖
Documentation
https://developer.adobe.com/workfront-apis/
📖
Documentation
https://developer.adobe.com/firefly-services/docs/substance3d/
📖
Documentation
https://developer.adobe.com/data-collection-apis/
📖
Documentation
https://developer.adobe.com/adobe-status/
📖
Documentation
https://developer.adobe.com/vip-marketplace/

Specifications

Other Resources

🔗
Pricing
https://developer.adobe.com/document-services/pricing/
🔗
SDKs
https://developer.adobe.com/document-services/docs/overview/pdf-services-api/sdks/
🔗
ReleaseNotes
https://developer.adobe.com/document-services/docs/overview/pdf-services-api/releasenotes
🔗
Guides
https://developer.adobe.com/analytics-apis/docs/2.0/guides/
🔗
Guides
https://developer.adobe.com/firefly-services/docs/guides/
🔗
Usage Notes
https://developer.adobe.com/audio-video-firefly-services/getting_started/usage/
🔗
Overview
https://developer.adobe.com/creative-cloud-libraries/docs/overview/
🔗
Integration Guide
https://developer.adobe.com/creative-cloud-libraries/docs/integrate/
🔗
API Fundamentals
https://experienceleague.adobe.com/en/docs/experience-platform/landing/platform-apis/api-fundamentals
🔗
Developer Guide
https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/home
🔗
REST API
https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/rest-api
🔗
REST API
https://developer.adobe.com/commerce/webapi/rest/
🔗
GraphQL API
https://developer.adobe.com/commerce/webapi/graphql-api/
🔗
REST API Reference
https://developer.adobe.com/commerce/webapi/reference/rest/paas/
🔗
GraphQL
https://raw.githubusercontent.com/api-evangelist/adobe-suite/refs/heads/main/graphql/adobe-suite-graphql.md
🔗
Webhooks
https://developer.adobe.com/experience-cloud/cloud-manager/guides/getting-started/create-event-integration/
🔗
StatusPage
https://status.adobe.com/

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/adobe-suite-dub-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

adobe-suite-dub-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: ''
  title: Translate and Lip Sync Dub API
  description: This RESTful API offers dubbing and lip sync resources for enterprise use. With this API an audio or video input can be dubbed to new language(s).
  termsOfService: https://www.adobe.com/content/dam/cc/en/legal/terms/enterprise/pdfs/PSLT-AdobeCreativeAPI-WW-2024v2.pdf
servers:
- url: https://audio-video-api.adobe.io
  description: Production environment
- url: https://audio-video-api-stage.adobe.io
  description: Staging environment
security:
- AccessToken: []
  X-Api-Key: []
tags:
- name: Dub
paths:
  /v1/dub:
    post:
      summary: Dub audio or video
      description: Generate dubbed video or audio.<br></br> A composited lip sync can be added for video dubbing.
      operationId: dub
      requestBody:
        description: The dub request body is used to specify either an audio dubbing or a video dubbing.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DubRequest'
            examples:
              DubRequestUsingAutoTranslatedTranscripts:
                $ref: '#/components/examples/DubRequestUsingAutoTranslatedTranscripts'
              DubRequestUsingAudioAutoTranslatedTranscripts:
                $ref: '#/components/examples/DubRequestUsingAudioAutoTranslatedTranscripts'
              DubRequestUsingEditedSourceTranscript:
                $ref: '#/components/examples/DubRequestUsingEditedSourceTranscript'
              DubRequestUsingAudioEditedSourceTranscript:
                $ref: '#/components/examples/DubRequestUsingAudioEditedSourceTranscript'
              DubRequestUsingEditedTranslatedTranscript:
                $ref: '#/components/examples/DubRequestUsingEditedTranslatedTranscript'
              DubRequestUsingAudioEditedTranslatedTranscript:
                $ref: '#/components/examples/DubRequestUsingAudioEditedTranslatedTranscript'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobStatusLinkResponse'
              examples:
                DubResponse:
                  $ref: '#/components/examples/JobStatusLinkResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              examples:
                ErrorBodyBadRequest:
                  $ref: '#/components/examples/ErrorBodyBadRequest'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              examples:
                ErrorBodyUnauthorized:
                  $ref: '#/components/examples/ErrorBodyUnauthorized'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              examples:
                ErrorBodyForbidden:
                  $ref: '#/components/examples/ErrorBodyForbidden'
        '404':
          description: Resource Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              examples:
                ErrorBodyResourceNotFound:
                  $ref: '#/components/examples/ErrorBodyResourceNotFound'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              examples:
                ErrorBodyMethodNotAllowed:
                  $ref: '#/components/examples/ErrorBodyMethodNotAllowed'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              examples:
                ErrorBodyMethodNotAllowed:
                  $ref: '#/components/examples/ErrorBodyMethodNotAllowed'
                ValidationErrorVideoSourceBlank:
                  $ref: '#/components/examples/ValidationErrorVideoSourceBlank'
                ValidationErrorAudioSourceBlank:
                  $ref: '#/components/examples/ValidationErrorAudioSourceBlank'
                ValidationErrorInputSourceBlank:
                  $ref: '#/components/examples/ValidationErrorInputSourceBlank'
                ValidationErrorVideoAndAudioSimultaneous:
                  $ref: '#/components/examples/ValidationErrorVideoAndAudioSimultaneous'
                ValidationErrorVideoInputMediaTypeMissing:
                  $ref: '#/components/examples/ValidationErrorVideoInputMediaTypeMissing'
                ValidationErrorAudioInputMediaTypeMissing:
                  $ref: '#/components/examples/ValidationErrorAudioInputMediaTypeMissing'
                ValidationErrorSourceUrlEmpty:
                  $ref: '#/components/examples/ValidationErrorSourceUrlEmpty'
                ValidationErrorInvalidVideoAudioSourceUrl:
                  $ref: '#/components/examples/ValidationErrorInvalidVideoAudioSourceUrl'
                ValidationErrorInvalidTranscriptUrl:
                  $ref: '#/components/examples/ValidationErrorInvalidTranscriptUrl'
                ValidationErrorUnsupportedVideoMediaType:
                  $ref: '#/components/examples/ValidationErrorUnsupportedVideoMediaType'
                ValidationErrorUnsupportedAudioMediaType:
                  $ref: '#/components/examples/ValidationErrorUnsupportedAudioMediaType'
                ValidationErrorUnsupportedTargetLocaleCode:
                  $ref: '#/components/examples/ValidationErrorUnsupportedTargetLocaleCode'
                ValidationErrorMissingTargetLocaleCode:
                  $ref: '#/components/examples/ValidationErrorMissingTargetLocaleCode'
                ValidationErrorLocaleCodeNotRequiredForEditedTranscript:
                  $ref: '#/components/examples/ValidationErrorLocaleCodeNotRequiredForEditedTranscript'
                ValidationErrorEitherTargetLocaleCodesOrTranscriptionRequired:
                  $ref: '#/components/examples/ValidationErrorEitherTargetLocaleCodesOrTranscriptionRequired'
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              examples:
                ErrorBodyTooManyRequests:
                  $ref: '#/components/examples/ErrorBodyTooManyRequests'
        '451':
          description: Unauthorized due to legal reasons
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              examples:
                ErrorBodyLegalReasons:
                  $ref: '#/components/examples/ErrorBodyLegalReasons'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              examples:
                ErrorBodyInternalServerError:
                  $ref: '#/components/examples/ErrorBodyInternalServerError'
      tags:
      - Dub
components:
  examples:
    DubRequestUsingAudioEditedTranslatedTranscript:
      summary: Dubbing with Pre-Existing Translations (Audio)
      value:
        audio:
          source:
            url: <Pre-signed URL for the audio input>
          mediaType: audio/mp3
        transcripts:
        - source:
            url: <Pre-signed URL for the translated input>
          localeCode: en-US
        - source:
            url: <Pre-signed URL for the translated input>
          localeCode: fr-FR
        lipSync: false
    ValidationErrorUnsupportedTargetLocaleCode:
      summary: Error for unsupported target locale code
      value:
        error_code: validation_error
        message: 'Unsupported target locale code: <<input target locale>>'
    ErrorBodyForbidden:
      summary: Error Body Forbidden
      value:
        error_code: '403220'
        message: Token not allowed in the current context
    DubRequestUsingAutoTranslatedTranscripts:
      summary: Automated dubbing (Video)
      value:
        video:
          source:
            url: <Pre-signed URL for the video input>
          mediaType: video/mp4
        targetLocaleCodes:
        - da-DK
        - en-IN
        - en-GB
        - es-AR
        - es-419
        - fr-CA
        - hi-IN
        - ja-JP
        - ko-KR
        - nb-NO
        - nl-NL
        - pt-BR
        - sv-SE
        - zh-CN
        - en-US
        - es-ES
        - de-DE
        - fr-FR
        - it-IT
        - pt-PT
        lipSync: true
    ValidationErrorMissingTargetLocaleCode:
      summary: Error for missing target locale code
      value:
        error_code: validation_error
        message: At least one target locale code required
    DubRequestUsingAudioAutoTranslatedTranscripts:
      summary: Automated dubbing (Audio)
      value:
        audio:
          source:
            url: <Pre-signed URL for the audio input>
          mediaType: audio/mp3
        targetLocaleCodes:
        - da-DK
        - en-IN
        - en-GB
        - es-AR
        - es-419
        - fr-CA
        - hi-IN
        - ja-JP
        - ko-KR
        - nb-NO
        - nl-NL
        - pt-BR
        - sv-SE
        - zh-CN
        - en-US
        - es-ES
        - de-DE
        - fr-FR
        - it-IT
        - pt-PT
        lipSync: false
    ErrorBodyLegalReasons:
      summary: Unauthorized due to legal reasons
      value:
        message: Unauthorized due to legal reasons
        error_code: unauthorized_legal_reasons
    ErrorBodyUnauthorized:
      summary: Error Body Unauthorized
      value:
        error_code: '401013'
        message: Oauth token is not valid
    ErrorBodyInternalServerError:
      summary: Error Body Internal Server Error
      value:
        error_code: '500001'
        message: An internal server error occurred. Please try again later.
    ValidationErrorLocaleCodeNotRequiredForEditedTranscript:
      summary: Error indicating locale code is not required with edited transcript
      value:
        error_code: validation_error
        message: Locale code not needed when providing an edited transcript
    ValidationErrorInvalidTranscriptUrl:
      summary: Error for invalid transcript input source URL
      value:
        error_code: validation_error
        message: 'Invalid transcript input source URL: <<input transcript url>>'
    ValidationErrorUnsupportedVideoMediaType:
      summary: Error for unsupported video media type
      value:
        error_code: validation_error
        message: 'Unsupported input video media type: <<input media type>>'
    JobStatusLinkResponse:
      summary: Successful Submission
      value:
        jobId: <jobId>
        statusUrl: https://<baseUrl>/v1/status/<jobId>
    DubRequestUsingEditedSourceTranscript:
      summary: Dubbing with an edited transcript (Video)
      value:
        video:
          source:
            url: <Pre-signed URL for the video input>
          mediaType: video/mp4
        targetLocaleCodes:
        - da-DK
        - en-IN
        - en-GB
        - es-AR
        - es-419
        - fr-CA
        - hi-IN
        - ja-JP
        - ko-KR
        - nb-NO
        - nl-NL
        - pt-BR
        - sv-SE
        - zh-CN
        - en-US
        - es-ES
        - de-DE
        - fr-FR
        - it-IT
        - pt-PT
        transcripts:
        - source:
            url: <Edited source transcript>
        lipSync: true
    ErrorBodyBadRequest:
      summary: Error Body Bad Request
      value:
        error_code: '400001'
        message: Invalid request. Please check the input data.
    ValidationErrorAudioInputMediaTypeMissing:
      summary: Error for missing audio input media type
      value:
        error_code: validation_error
        message: Audio input media type must be specified
    ValidationErrorInvalidVideoAudioSourceUrl:
      summary: Error for invalid video/audio input source URL
      value:
        error_code: validation_error
        message: 'Invalid video/audio input source URL: <<source url>>'
    ValidationErrorVideoAndAudioSimultaneous:
      summary: Error for providing both video and audio inputs simultaneously
      value:
        error_code: validation_error
        message: Cannot provide both video and audio input simultaneously
    DubRequestUsingEditedTranslatedTranscript:
      summary: Dubbing with Pre-Existing Translations (Video)
      value:
        video:
          source:
            url: <Pre-signed URL for the video input>
          mediaType: video/mp4
        transcripts:
        - source:
            url: <Pre-signed URL for the translated input>
          localeCode: en-US
        - source:
            url: <Pre-signed URL for the translated input>
          localeCode: fr-FR
        lipSync: true
    ValidationErrorEitherTargetLocaleCodesOrTranscriptionRequired:
      summary: Error for missing target locale codes or transcription input
      value:
        error_code: validation_error
        message: Provide either target locale codes or transcription input for dubbing
    ValidationErrorInputSourceBlank:
      summary: Error for blank input source field
      value:
        error_code: validation_error
        message: Input source field cannot be blank
    ErrorBodyTooManyRequests:
      summary: Error Body Too Many Requests
      value:
        message: Too Many Requests
        error_code: '429011'
    ValidationErrorSourceUrlEmpty:
      summary: Error for empty source URL field
      value:
        error_code: validation_error
        message: Source URL field cannot be empty
    ErrorBodyMethodNotAllowed:
      summary: Error Body Method Not Allowed
      value:
        error_code: '405001'
        message: The requested method is not allowed on this endpoint.
    ErrorBodyResourceNotFound:
      summary: Error Body Resource Not Found
      value:
        error_code: unknown_job_id
        message: The requested resource 123e4567-e89b-12d3-a456-426614174002 was not found.
    ValidationErrorVideoInputMediaTypeMissing:
      summary: Error for missing video input media type
      value:
        error_code: validation_error
        message: Video input media type must be specified
    ValidationErrorAudioSourceBlank:
      summary: Error for blank audio source field
      value:
        error_code: validation_error
        message: Audio source field cannot be blank
    ValidationErrorUnsupportedAudioMediaType:
      summary: Error for unsupported audio media type
      value:
        error_code: validation_error
        message: 'Unsupported input audio media type: <<input audio media type>>'
    ValidationErrorVideoSourceBlank:
      summary: Error for blank video source field
      value:
        error_code: validation_error
        message: Video source field cannot be blank
    DubRequestUsingAudioEditedSourceTranscript:
      summary: Dubbing with an edited transcript (Audio)
      value:
        audio:
          source:
            url: <Pre-signed URL for the audio input>
          mediaType: audio/mp3
        targetLocaleCodes:
        - da-DK
        - en-IN
        - en-GB
        - es-AR
        - es-419
        - fr-CA
        - hi-IN
        - ja-JP
        - ko-KR
        - nb-NO
        - nl-NL
        - pt-BR
        - sv-SE
        - zh-CN
        - en-US
        - es-ES
        - de-DE
        - fr-FR
        - it-IT
        - pt-PT
        transcripts:
        - source:
            url: <Edited source transcript>
        lipSync: false
  schemas:
    VideoInputMediaType:
      type: string
      enum:
      - video/mp4
      - video/quicktime
      - video/mov
      description: The video media type of the input file. Use a supported type.
    AudioInputMediaType:
      type: string
      enum:
      - audio/mp3
      - audio/mpeg
      - audio/x-wav
      - audio/wav
      - audio/vnd.dlna.adts
      - audio/aac
      description: The audio media type of the input file. Use a supported type.
    JobStatusLinkResponse:
      type: object
      properties:
        statusUrl:
          type: string
          description: URL to download the results of the job.
        jobId:
          type: string
          description: The job ID.
      required:
      - statusUrl
      - jobId
      description: Job status response.
    AudioInput:
      type: object
      properties:
        source:
          $ref: '#/components/schemas/Source'
        mediaType:
          $ref: '#/components/schemas/AudioInputMediaType'
      required:
      - url
      - mediaType
      description: The audio input details for a dub request.
    ErrorBody:
      type: object
      description: The error response object.
      properties:
        message:
          type: string
          description: The error message.
        error_code:
          type: string
          description: Associated error code.
      required:
      - error_code
      - message
    TranscriptInputLocale:
      type: string
      enum:
      - da-DK
      - en-IN
      - en-GB
      - es-AR
      - es-419
      - fr-CA
      - hi-IN
      - ja-JP
      - ko-KR
      - nb-NO
      - nl-NL
      - pt-BR
      - sv-SE
      - zh-CN
      - en-US
      - es-ES
      - de-DE
      - fr-FR
      - it-IT
      - pt-PT
      description: The languages that the transcript will be generated in. Use supported locale codes.
    DubVideoRequest:
      type: object
      properties:
        targetLocaleCodes:
          type: array
          items:
            $ref: '#/components/schemas/DubTargetLocaleCodes'
          description: 'Accepted values: [ ''da-DK'',''en-IN'',''en-GB'',''es-AR'', ''es-419'',''fr-CA'',''hi-IN'',''ja-JP'',''ko-KR'',''nb-NO'',''nl-NL'',''pt-BR'',''sv-SE'',''zh-CN'',''en-US'',''es-ES'',''de-DE'',''fr-FR'',''it-IT'',''pt-PT'']'
        transcripts:
          type: array
          items:
            $ref: '#/components/schemas/TranscriptInput'
        video:
          $ref: '#/components/schemas/VideoInput'
        lipSync:
          type: boolean
          description: If `true`, a high-quality composited lip sync will be used in the video output.
          default: 'false'
      required:
      - video
      description: The video dub request body.
    DubRequest:
      type: object
      oneOf:
      - $ref: '#/components/schemas/DubAudioRequest'
      - $ref: '#/components/schemas/DubVideoRequest'
      description: The dub request body.
    Source:
      type: object
      properties:
        url:
          type: string
          format: uri
          description: The pre-signed URL pointing to the input source.
    DubAudioRequest:
      type: object
      properties:
        targetLocaleCodes:
          type: array
          items:
            $ref: '#/components/schemas/DubTargetLocaleCodes'
          description: 'Accepted values: [ ''da-DK'',''en-IN'',''en-GB'',''es-AR'', ''es-419'',''fr-CA'',''hi-IN'',''ja-JP'',''ko-KR'',''nb-NO'',''nl-NL'',''pt-BR'',''sv-SE'',''zh-CN'',''en-US'',''es-ES'',''de-DE'',''fr-FR'',''it-IT'',''pt-PT'']'
        transcripts:
          type: array
          items:
            $ref: '#/components/schemas/TranscriptInput'
        audio:
          $ref: '#/components/schemas/AudioInput'
      required:
      - audio
      description: The audio dub request body.
    DubTargetLocaleCodes:
      type: string
      enum:
      - da-DK
      - en-IN
      - en-GB
      - es-AR
      - es-419
      - fr-CA
      - hi-IN
      - ja-JP
      - ko-KR
      - nb-NO
      - nl-NL
      - pt-BR
      - sv-SE
      - zh-CN
      - en-US
      - es-ES
      - de-DE
      - fr-FR
      - it-IT
      - pt-PT
      description: Supported target locale codes for dubbing
    TranscriptInput:
      type: object
      properties:
        source:
          $ref: '#/components/schemas/Source'
          description: The pre-signed URL to download the translated/edited transcripts.
        localeCode:
          $ref: '#/components/schemas/TranscriptInputLocale'
      required:
      - source
      description: Transcript input details for transcribe request.
    VideoInput:
      type: object
      properties:
        source:
          $ref: '#/components/schemas/Source'
        mediaType:
          $ref: '#/components/schemas/VideoInputMediaType'
        metadata:
          type: object
          properties:
            dialogTrackNumber:
              type: integer
      required:
      - url
      - mediaType
      description: The video input details for a dub request.
  securitySchemes:
    AccessToken:
      type: http
      scheme: bearer
    X-Api-Key:
      type: apiKey
      name: x-api-key
      in: header