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

# Submit Dubbing Job

> Create a new dubbing job. The source video is validated, locales are resolved, and the job is queued for processing. Returns a requestId used to track the job.



## OpenAPI

````yaml /managed-dub.openapi.json post /dubbing/job
openapi: 3.1.0
info:
  title: Deepdub Managed Dubbing API
  description: >-
    Public REST API for submitting videos for AI-assisted dubbing, tracking job
    status, and managing deliverables.
  version: 1.0.0
servers:
  - url: https://dubbing.deepdub.app
security:
  - ApiKeyAuth: []
paths:
  /dubbing/job:
    post:
      summary: Submit Dubbing Job
      description: >-
        Create a new dubbing job. The source video is validated, locales are
        resolved, and the job is queued for processing. Returns a requestId used
        to track the job.
      operationId: create_dubbing_job_dubbing_job_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DubbingSubmissionRequest'
            example:
              sourceLocale: en-US
              targetLocale: es-ES
              sourceVideoPath: s3://your-bucket/input/episode-01.mp4
              exportPath: s3://your-bucket/output/episode-01.es-ES.mp4
              workflowType: AUTOMATED
              mixType: REPLACEMENT
              additionalProducts:
                - product: SRT
                  assetPath: s3://your-bucket/output/episode-01.es-ES.srt
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DubbingSubmissionResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    DubbingSubmissionRequest:
      properties:
        sourceLocale:
          type: string
          title: Sourcelocale
          description: Locale code of the source language (e.g., 'en-US')
        targetLocale:
          type: string
          title: Targetlocale
          description: Locale code of the target language (e.g., 'es-ES')
        sourceVideoPath:
          type: string
          title: Sourcevideopath
          description: >-
            S3 or HTTPS path to the source video file (e.g.,
            's3://bucket/video.mp4' or 'https://example.com/video.mp4')
        exportPath:
          type: string
          title: Exportpath
          description: >-
            S3 path where the dubbed video will be exported (must start with
            's3://', e.g., 's3://bucket/output.mp4')
        contentId:
          type: string
          title: Contentid
          description: Unique identifier for the content (e.g., 'content_123')
        batchId:
          type: string
          title: Batchid
          description: >-
            Identifier for the batch this submission belongs to (e.g.,
            'batch_001')
        batchName:
          type: string
          title: Batchname
          description: >-
            Name of the batch this submission belongs to (e.g., 'Power Rangers
            Season 1')
        workflowType:
          allOf:
            - $ref: '#/components/schemas/WorkflowTypeEnum'
          description: Type of workflow to use for dubbing (e.g., 'AUTOMATED', 'MANAGED')
          default: AUTOMATED
        mixType:
          allOf:
            - $ref: '#/components/schemas/MixTypeEnum'
          description: >-
            Type of audio mix to use for dubbing (e.g., 'REPLACEMENT',
            'UN_STYLE')
          default: REPLACEMENT
        sourceSpeechTrackPath:
          type: string
          title: Sourcespeechtrackpath
          description: >-
            S3 path to the source speech audio track, if separate from video
            (must start with 's3://', e.g., 's3://bucket/audio.wav')
        sourceMAndETrackPath:
          type: string
          title: Sourcemandetrackpath
          description: >-
            S3 path to the source Music & Effects (M&E) track (must start with
            's3://', e.g., 's3://bucket/me_track.wav')
        uncompressedAudioPath:
          type: string
          title: Uncompressedaudiopath
          description: >-
            S3 path to the uncompressed audio file, if available (must start
            with 's3://', e.g., 's3://bucket/uncompressed.wav')
        segments:
          items:
            $ref: '#/components/schemas/DubbingSegment'
          type: array
          title: Segments
          description: List of segments to be dubbed, with timing and dialogue information
        titleName:
          type: string
          title: Titlename
          description: Title of the content (e.g., 'The Great Adventure')
        genreName:
          type: string
          title: Genrename
          description: Genre of the content (e.g., 'Action', 'Comedy')
        maturityRating:
          type: string
          title: Maturityrating
          description: Maturity rating of the content (e.g., 'PG-13', 'R')
        contentType:
          type: string
          title: Contenttype
          description: Type of content (e.g., 'movie', 'series')
        priority:
          type: integer
          title: Priority
          description: Priority of the dubbing job (higher means more urgent, e.g., 10)
        needByDate:
          type: string
          format: date-time
          title: Needbydate
          description: >-
            Date by which the dubbed content is needed (e.g.,
            '2024-07-01T12:00:00Z')
        isVideoWaterMarked:
          type: boolean
          title: Isvideowatermarked
          description: Indicates if the source video is watermarked (e.g., True, False)
          default: false
        additionalSources:
          items:
            $ref: '#/components/schemas/DubbingSubmissionAdditionalSource'
          type: array
          title: Additionalsources
          description: >-
            Additional source assets to attach as input reference material
            (e.g., closed captions, audio hints)
        additionalProducts:
          items:
            $ref: '#/components/schemas/DubbingSubmissionAdditionalProduct'
          type: array
          title: Additionalproducts
          description: >-
            Deliverable products to produce alongside or instead of the dubbed
            video (e.g., SRT subtitles, transcripts)
        metadata:
          additionalProperties:
            type: string
          type: object
          title: Metadata
          description: 'Metadata attached to the dubbing job (e.g., {''key'': ''value''})'
      type: object
      required:
        - sourceLocale
        - targetLocale
        - sourceVideoPath
      title: DubbingSubmissionRequest
    DubbingSubmissionResponse:
      properties:
        requestId:
          type: string
          title: Requestid
      type: object
      required:
        - requestId
      title: DubbingSubmissionResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    WorkflowTypeEnum:
      type: string
      enum:
        - AUTOMATED
        - MANAGED
        - MANAGED_HIGH_TIER
      title: WorkflowTypeEnum
      description: >-
        Dubbing workflow tier: AUTOMATED (fully automated), MANAGED
        (human-in-the-loop QC), or MANAGED_HIGH_TIER (premium managed).
    MixTypeEnum:
      type: string
      enum:
        - UN_STYLE
        - REPLACEMENT
      title: MixTypeEnum
      description: >-
        Audio mixing strategy: REPLACEMENT (replace original dialogue track) or
        UN_STYLE (overlay dubbed audio on the original).
    DubbingSegment:
      properties:
        timestampStart:
          type: integer
          title: Timestampstart
          description: Start time of the segment in milliseconds (e.g., 12345)
        timestampEnd:
          type: integer
          title: Timestampend
          description: End time of the segment in milliseconds (e.g., 23456)
        characterName:
          type: string
          title: Charactername
          description: >-
            Name of the character speaking in this segment (e.g., 'John',
            'Narrator')
        characterId:
          type: string
          title: Characterid
          description: Unique identifier for the character (e.g., 'char_001')
        sourceDialogue:
          type: string
          title: Sourcedialogue
          description: >-
            Original dialogue text in the source language (e.g., 'Hello, how are
            you?')
        targetDialogue:
          type: string
          title: Targetdialogue
          description: >-
            Translated dialogue text in the target language (e.g., 'Hola, ¿cómo
            estás?')
        segmentId:
          type: string
          title: Segmentid
          description: Unique identifier for the segment (e.g., 'seg_001')
      type: object
      required:
        - timestampStart
        - timestampEnd
        - characterName
        - characterId
        - sourceDialogue
      title: DubbingSegment
    DubbingSubmissionAdditionalSource:
      properties:
        source:
          allOf:
            - $ref: '#/components/schemas/AdditionalSourcesEnum'
          description: >-
            Type of source asset (e.g., 'AUDIO_HINTS', 'CC_SDH', 'MISC',
            'DFXP_SUBTITLES')
        assetPath:
          type: string
          title: Assetpath
          description: >-
            S3 path to the asset file (must start with 's3://', e.g.,
            's3://bucket/asset.mp4')
      type: object
      required:
        - source
        - assetPath
      title: DubbingSubmissionAdditionalSource
    DubbingSubmissionAdditionalProduct:
      properties:
        product:
          allOf:
            - $ref: '#/components/schemas/AdditionalProductsEnum'
          description: >-
            Type of product to deliver (e.g., 'SDH', 'SRT', 'WEBVTT',
            'TRANSCRIPT')
        assetPath:
          type: string
          title: Assetpath
          description: >-
            S3 path to the asset file (must start with 's3://', e.g.,
            's3://bucket/asset.mp4')
        state:
          allOf:
            - $ref: '#/components/schemas/AdditionalProductStateEnum'
          description: >-
            Delivery state: None means pending delivery, DELIVERED means already
            delivered.
      type: object
      required:
        - product
        - assetPath
      title: DubbingSubmissionAdditionalProduct
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    AdditionalSourcesEnum:
      type: string
      enum:
        - AUDIO_HINTS
        - CC_SDH
        - MISC
        - DFXP_SUBTITLES
      title: AdditionalSourcesEnum
      description: >-
        Type of additional source asset that can be attached to a dubbing job as
        input reference material.
    AdditionalProductsEnum:
      type: string
      enum:
        - SDH
        - SRT
        - WEBVTT
        - TRANSCRIPT
        - AS_RECORDED_SCRIPT
        - AUDIO_HINTS
        - SOURCE_VIDEO
        - SOURCE_AUDIO
        - ITT_SUBTITLES
      title: AdditionalProductsEnum
      description: >-
        Type of deliverable product that can be requested alongside (or instead
        of) the dubbed video.
    AdditionalProductStateEnum:
      type: string
      enum:
        - PENDING_DELIVERY
        - DELIVERED
      title: AdditionalProductStateEnum
      description: >-
        State of an additional product in the delivery lifecycle.


        None   – legacy / unknown (pre-deployment products, not shown as
        pending).

        PENDING_DELIVERY – explicitly awaiting delivery.

        DELIVERED        – already delivered to the customer.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key issued by Deepdub. Contact your account manager to obtain one.

````