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

# Create Translate & Dub Job

> Create a translate & dub job for video or audio media



## OpenAPI

````yaml POST /v1/media/translate
openapi: 3.1.0
info:
  title: Vozo API
  description: API for Generating, Editing and Localizing Talking Videos.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.vozo.ai
security:
  - bearerAuth: []
paths:
  /v1/media/translate:
    post:
      description: Create a translate & dub job for video or audio media
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TranslateRequest'
        required: true
      responses:
        '200':
          description: Job queued
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TranslateJobQueue'
        '400':
          description: unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    TranslateRequest:
      required:
        - media_type
        - media_url
        - source_language
        - target_language
        - export_type
      type: object
      properties:
        media_type:
          $ref: '#/components/schemas/MediaType'
          description: 'Media type of input: video or audio'
        media_url:
          description: >-
            Publicly accessible URL of input media (video/audio) for the server
            to download. Maximum supported input duration is 2 hours.
          type: string
        subtitle_url:
          description: >-
            Publicly accessible URL of subtitle file (SRT only). Server will
            download and validate timestamps (non-overlap, start<=end, within
            media duration, total <=2h). Mutually exclusive with ocr_text_box.
          type: string
        subtitle_usage_type:
          $ref: '#/components/schemas/SubtitleUsageType'
          description: Whether the provided subtitle is original or final translated
        ocr_text_box:
          $ref: '#/components/schemas/OCRTextBox'
          description: >-
            OCR text region in normalized coordinates [0–1], origin at top-left.
            Only applicable when media_type=video. Mutually exclusive with
            subtitle_url.
        source_language:
          description: >-
            Source language code. Supports 'auto' or language codes such as
            en-US.
          type: string
          pattern: ^(auto|[a-z]{2}(-[A-Za-z]{2})?)$
        target_language:
          description: >-
            Target language code. Locale is optional (e.g., en, en-US, zh,
            zh-CN). Only the language part is validated against the supported
            list.
          type: string
          pattern: ^[a-z]{2}(-[A-Za-z]{2})?$
        project_mode:
          $ref: '#/components/schemas/ProjectMode'
          description: >-
            Controls project creation behavior in the web dashboard. editable
            creates an editable project; none disables project creation.
        speaker_number:
          $ref: '#/components/schemas/SpeakerNumber'
          description: Specify speaker count range or leave empty for auto
        glossary_ids:
          type: array
          description: >-
            List of glossary IDs from the product. Each ID refers to a
            predefined glossary that can be copied from the glossary management
            interface. These glossaries will be applied during translation to
            ensure consistent terminology.
          items:
            type: string
          maxItems: 3
        align_video:
          type: boolean
          description: >-
            Optional. Whether to automatically adjust the video speed to align
            with the translated audio duration.
        voice_model:
          $ref: '#/components/schemas/VoiceModel'
          description: Optional. Which voice cloning model to use for cloning.
        user_prompt:
          description: Optional translation or dubbing prompt to guide style
          type: string
        export_type:
          $ref: '#/components/schemas/ExportType'
          description: >-
            Output type. auto: match input type; video: output video; audio:
            output audio; all: both video and audio. When media_type=audio,
            export_type cannot be video or all.
        callback_url:
          description: Webhook callback URL for status changes
          type: string
    TranslateJobQueue:
      required:
        - task_id
        - status
      type: object
      properties:
        task_id:
          description: ID of the task
          type: string
    Error:
      required:
        - code
        - message
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        serverTs:
          type: string
    MediaType:
      type: string
      enum:
        - video
        - audio
    SubtitleUsageType:
      type: string
      enum:
        - original
        - final_translated
    OCRTextBox:
      type: object
      properties:
        x:
          type: number
          minimum: 0
          maximum: 1
        'y':
          type: number
          minimum: 0
          maximum: 1
        width:
          type: number
          minimum: 0
          maximum: 1
        height:
          type: number
          minimum: 0
          maximum: 1
    ProjectMode:
      type: string
      enum:
        - none
        - editable
    SpeakerNumber:
      type: object
      properties:
        min:
          description: Minimum speakers
          type: integer
          minimum: 1
        max:
          description: Maximum speakers
          type: integer
          maximum: 35
    VoiceModel:
      type: string
      enum:
        - auto
        - real
        - native
    ExportType:
      type: string
      enum:
        - auto
        - video
        - audio
        - all
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: APIKey
      description: >-
        Bearer authentication header of the form Bearer <api_key>, where
        <api_key> is your API Key. The token in the sample code is referring to
        this api_key as well.

````