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

# Translate text segments (sync)

> Translate plain text segments in one request. Translated strings are returned immediately in the HTTP `data` payload. Does **not** process video or audio — use **Create translate and dub job** for media.



## OpenAPI

````yaml /api-reference/openapi.json post /openapi/v1/task/translate/create
openapi: 3.1.0
info:
  title: VMEG Open API
  description: >-
    Integrate VMEG into your product: translate and dub video or audio,
    synthesize speech, clone voices, translate plain text, and manage API-side
    files. All responses use `{ code, message, data }`; `code === 200` means
    success.
  version: 1.0.0
servers:
  - url: https://api.vmeg.ai
    description: Production
security:
  - apiKeyAuth: []
tags:
  - name: Media translation
    x-group: Video & audio translate and dub
    description: >-
      Localize uploaded video or audio end-to-end: transcribe speech, translate
      the script, generate AI dubbing (cloned or preset voices), and return new
      dubbed media. Optional subtitles and lip sync. **Async only** — dubbed
      files arrive via [Webhook](/guides/webhooks). This is not plain text
      translation; see [Media translation](/guides/products/media-translation).
  - name: TTS
    x-group: Text to speech (TTS)
    description: >-
      Turn text into natural speech with preset or cloned voices. **Sync**
      returns audio URLs in the HTTP response; **async** delivers results via
      [Webhook](/guides/webhooks). See [Text to
      speech](/guides/products/text-to-speech).
  - name: Voice clone
    x-group: Voice cloning
    description: >-
      Create a reusable voice from a short reference recording. Returns a
      `voiceId` you can pass to TTS or translate-and-dub jobs. See [Voice
      clone](/guides/products/voice-clone).
  - name: Text translation
    x-group: Text translation (text only)
    description: >-
      Translate plain text segments — no audio or video processing. For spoken
      content in media files, use **Video & audio translate and dub** instead.
      See [Text translation](/guides/products/text-translation).
  - name: Task management
    x-group: Task status and history
    description: >-
      List, inspect, or delete jobs created through any product API. Poll `GET
      .../tasks/detail` when you cannot rely on webhooks. Scoped to your **API
      Key**. See [Products overview](/guides/products/overview).
  - name: Assets - Materials
    x-group: Upload files (materials)
    description: >-
      Upload and manage video/audio files used as input for translate-and-dub
      jobs. Flow: finish the full upload (presigned or multipart → register) →
      pass the registered `materialId` to create-async. See [Material
      upload](/guides/assets/material-upload).
  - name: Assets - Voices
    x-group: Voices (presets and clones)
    description: >-
      List preset voices for TTS, or manage voices you cloned. Cloned voices are
      created via **Voice cloning**. See [Voices](/guides/assets/voices).
paths:
  /openapi/v1/task/translate/create:
    post:
      tags:
        - Text translation
      summary: Translate text segments (sync)
      description: >-
        Translate plain text segments in one request. Translated strings are
        returned immediately in the HTTP `data` payload. Does **not** process
        video or audio — use **Create translate and dub job** for media.
      operationId: translateCreateSync
      parameters:
        - $ref: '#/components/parameters/IdempotencyKeyRequired'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenApiTranslateCreateRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenApiTranslateCreateResponse'
components:
  parameters:
    IdempotencyKeyRequired:
      name: X-Idempotency-Key
      in: header
      required: true
      description: >-
        Required on mutating `POST` requests that create tasks or change
        persisted data (max 64 characters). See
        [Idempotency](/guides/idempotency).
      schema:
        type: string
        maxLength: 64
  schemas:
    OpenApiTranslateCreateRequest:
      type: object
      required:
        - language
        - segments
      properties:
        language:
          type: object
          required:
            - source
            - target
          properties:
            source:
              type: string
              example: zh-CN
              description: >-
                Source locale (BCP-47). See [Supported
                languages](/guides/supported-languages).
            target:
              type: string
              example: en-US
              description: >-
                Target locale (BCP-47). See [Supported
                languages](/guides/supported-languages).
          description: Source and target locales for translation
        segments:
          type: array
          maxItems: 50
          items:
            $ref: '#/components/schemas/OpenApiTranslateSegment'
          description: Text segments to translate (max 50)
        options:
          $ref: '#/components/schemas/OpenApiTranslateOptions'
          description: Optional translation settings (context, scene, glossary, prompt)
    OpenApiTranslateCreateResponse:
      allOf:
        - $ref: '#/components/schemas/OpenApiResponseBase'
        - type: object
          properties:
            data:
              description: Translated segments returned in the synchronous HTTP response.
              allOf:
                - $ref: '#/components/schemas/OpenApiTranslateCreateData'
    OpenApiTranslateSegment:
      type: object
      required:
        - text
      properties:
        text:
          type: string
          description: Source text for this segment
        gender:
          $ref: '#/components/schemas/OpenApiTranslateSpeakerGender'
          description: 'Speaker gender for this segment. Enum: `male` or `female`.'
        speaker:
          type: string
          example: Speaker A
          description: >-
            Speaker label for multi-speaker content; helps keep pronouns and
            voice consistent across segments
        locale:
          type: string
          example: zh-CN
          description: Per-segment locale when it differs from `language.source`
        context:
          type: array
          items:
            type: string
          description: >-
            Per-segment neighbor lines. Takes priority over
            `options.sourceContext`; useful with `provided_only` when segments
            are not time-contiguous
        start:
          type: number
          description: >-
            Start time in seconds on the source timeline. Pair with `end` to
            mark this segment's time span for neighbor context
        end:
          type: number
          description: >-
            End time in seconds on the source timeline. Must be provided with
            `start` and be greater than or equal to `start`
    OpenApiTranslateOptions:
      type: object
      description: Optional translation settings
      properties:
        sourceContext:
          $ref: '#/components/schemas/OpenApiTranslateSourceContext'
          description: >-
            How to use surrounding source text. Defaults to `independent` when
            omitted
        sceneCustomized:
          $ref: '#/components/schemas/OpenApiTranslateSceneCustomized'
          description: Scene and delivery style hints
        glossary:
          type: object
          additionalProperties:
            type: string
          description: Term glossary map (source term → preferred translation)
        prompt:
          type: string
          description: Custom prompt appended to the translation instruction
        skipMissingTranslationCheck:
          type: boolean
          default: false
          description: >-
            When `true`, skip validation that every segment received a
            translation
    OpenApiResponseBase:
      type: object
      properties:
        code:
          type: integer
          example: 200
          description: Business code; 200 means success
        message:
          type: string
          example: ''
          description: Human-readable detail when `code` is not success
      required:
        - code
    OpenApiTranslateCreateData:
      type: object
      properties:
        taskId:
          type: string
          description: Open API task ID
        items:
          type: array
          items:
            $ref: '#/components/schemas/OpenApiTranslateResultItem'
          description: Translated segments, aligned with request segments by index
        createdAt:
          type: string
          description: Task creation time (ISO 8601)
    OpenApiTranslateSpeakerGender:
      type: string
      description: Speaker gender for a translation segment
      enum:
        - male
        - female
      example: male
    OpenApiTranslateSourceContext:
      type: object
      description: >-
        Global strategy for using neighbor context. Lower priority than
        per-segment `context`
      properties:
        mode:
          type: string
          enum:
            - independent
            - provided_only
            - neighbor
          default: independent
          description: >-
            `independent` — translate each segment alone. `provided_only` — use
            neighbor text supplied in segment `context`. `neighbor` — auto-pick
            neighbors from ordered segments using `contextWindow`
        contextWindow:
          type: integer
          minimum: 1
          maximum: 20
          default: 5
          description: >-
            Only when `mode` is `neighbor`: number of segments before and after
            the current one to include (1–20)
    OpenApiTranslateSceneCustomized:
      type: object
      description: Scene-specific translation behavior
      properties:
        scene:
          type: string
          enum:
            - video
            - audio
            - subtitle
            - voiceover
          default: video
          description: Content type hint for the translation model
        allowStutter:
          type: boolean
          default: true
          description: >-
            Whether disfluencies (stutters) in the source may be preserved in
            the translation
    OpenApiTranslateResultItem:
      type: object
      properties:
        text:
          type: string
          description: Translated text
        errorMessage:
          type: string
          description: Failure reason when translation failed for this segment
  securitySchemes:
    apiKeyAuth:
      type: http
      scheme: bearer
      description: >-
        Send your API Key in the **`Authorization`** header (`Bearer
        <api_key>`). See [Authentication](/guides/authentication).

````