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

# Get voice translation job status

> Returns the current status of a voice translation job, including per-target result statuses.

When a target's status is `complete`, the response includes a `download_url` and `signature` for that target. Results are returned in the same order as the targets in the create request.



## OpenAPI

````yaml get /v1/jobs/voice/translate/{job_id}
openapi: 3.0.3
info:
  title: DeepL API Documentation
  description: >-
    The DeepL API provides programmatic access to DeepL’s language AI
    technology.


    Note: this OpenAPI spec is embedded into our API documentation and has
    shortened descriptions.
  termsOfService: https://www.deepl.com/pro-license
  contact:
    name: DeepL - Contact us
    url: https://www.deepl.com/contact-us
  version: 3.12.0
servers:
  - url: https://api.deepl.com
    description: DeepL API Pro
  - url: https://api-free.deepl.com
    description: DeepL API Free
security: []
tags:
  - name: beta
    description: >-
      Experimental features that are under testing and not yet intended for
      production use.
  - name: TranslateText
    description: >-
      The text-translation API currently consists of a single endpoint,
      `translate`, which is described below.
  - name: TranslateDocuments
    description: >-
      The document translation API allows you to translate whole documents and
      supports the following file types and extensions:
        * `docx` - Microsoft Word Document
        * `pptx` - Microsoft PowerPoint Document
        * `xlsx` - Microsoft Excel Document
        * `pdf` - Portable Document Format
        * `htm / html` - HTML Document
        * `txt` - Plain Text Document
        * `xlf / xliff` - XLIFF Document (versions 1.2, 2.0, and 2.1)
        * `srt` - SRT Document
        * `idml` - Adobe InDesign Markup Language
        * `xml` - XML Document
        * `json` - JSON Document
        * `dita` - DITA topic (Darwin Information Typing Architecture)
        * `mif` - Adobe FrameMaker Interchange Format
        * `jpeg` / `jpg` / `png` - Image (currently in beta)
  - name: RephraseText
    description: >-
      The `rephrase` endpoint  is used to make corrections and adjustments to
      texts based on style or tone.
  - name: CorrectText
    description: >-
      The `correct` endpoint fixes spelling and grammar errors without broader
      rephrasing. Use it when you want

      a minimal-change correction pass rather than the broader rewriting
      performed by `rephrase`.
  - name: ManageMultilingualGlossaries
    description: >-
      The *glossary* functions allow you to create, inspect, edit and delete
      glossaries.

      Glossaries created with the glossary function can be used in translate
      requests by specifying the

      `glossary_id` parameter. A glossary contains (several) dictionaries.

      A dictionary is a mapping of source phrases to target phrases for a single
      language pair.

      If you encounter issues, please let us know at support@DeepL.com.


      Currently you can create glossaries with any of the languages DeepL
      supports (with the exception of Thai).


      The maximum size limit for a glossary is 10 MiB = 10485760 bytes and each
      source/target text,

      as well as the name of the glossary, is limited to 1024 UTF-8 bytes.

      A total of 1000 glossaries are allowed per account.


      When creating a dictionary with target language `EN`, `PT`, or `ZH`, it's
      not necessary to specify a variant

      (e.g. `EN-US`, `EN-GB`, `PT-PT`, `PT-BR`, or `ZH-HANS`).

      Dictionaries with target language `EN` can be used in translations with
      either English variant.

      Similarly `PT`, and `ZH` dictionaries can be used in translations with
      their corresponding variants.

      (When you provide the ID of a glossary to a translation, the appropriate
      dictionary is automatically applied. Currently glossaries can not yet be
      used with source language detection.)


      Glossaries created via the DeepL API are now unified with glossaries
      created via the DeepL website and DeepL apps.

      Please only use the v3 glossary API in conjunction with multilingual or
      edited glossaries from the website.
  - name: ManageGlossaries
    description: >-
      Please note that this is the spec for the (old) v2 glossary endpoint.

      We recommend users switch to the newer v3 glossary endpoints, which
      support editability and multilinguality.


      The *glossary* functions allow you to create, inspect, and delete
      glossaries.

      Glossaries created with the glossary function can be used in translate
      requests by specifying the

      `glossary_id` parameter.

      If you encounter issues, please let us know at support@DeepL.com.


      Currently you can create glossaries with any of the languages DeepL
      supports (with the exception of Thai).
  - name: MetaInformation
    description: Information about API usage and value ranges
  - name: TranslationMemories
    description: >-
      The translation memory endpoints allow you to interact with your account's
      translation memories, used to store

      and reuse previously created translations. Translation memories can be
      used in text translation requests by

      specifying the `translation_memory_id` parameter to denote a specific
      translation memory and the

      `translation_memory_threshold` which defines the minimum matching
      percentage required for a translation memory

      segment to be applied (recommended to be 75% or higher).
  - name: VoiceAPI
    description: >-
      The Voice API provides real-time voice transcription and translation
      services.

      Use a two-step flow: first request a streaming URL via REST, then
      establish a WebSocket connection for streaming audio and receiving
      transcriptions.
  - name: VoiceTranslateJob
    description: >-
      **Alpha.** Async voice translation jobs. This API may change without
      notice.
  - name: AdminApi
    description: >-
      Endpoints for organization administrators to manage API keys and retrieve
      usage analytics.
  - name: QualityEvaluation
    description: >-
      **Closed alpha.** Evaluate translation quality. Submit source/target
      segment pairs and retrieve per-segment quality issues categorized by error
      type and severity, with character spans pointing to where each issue
      occurs.
externalDocs:
  description: DeepL Pro - Plans and pricing
  url: https://www.deepl.com/pro#developer
paths:
  /v1/jobs/voice/translate/{job_id}:
    get:
      tags:
        - VoiceTranslateJob
      summary: Get voice translation job status
      description: >-
        Returns the current status of a voice translation job, including
        per-target result statuses.


        When a target's status is `complete`, the response includes a
        `download_url` and `signature` for that target. Results are returned in
        the same order as the targets in the create request.
      operationId: getVoiceTranslateJobStatus
      parameters:
        - $ref: '#/components/parameters/VoiceTranslateJobIdParam'
        - $ref: '#/components/parameters/VoiceTranslateJobIncludeParam'
      responses:
        '200':
          description: Job status retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VoiceTranslateJobStatusResponse'
              examples:
                processing:
                  summary: Job still processing
                  value:
                    job_id: a74d88fb-ed2a-4943-a664-a4512398b994
                    product: voice
                    operation: translate
                    created_at: '2026-10-01T01:03:03.444Z'
                    updated_at: '2026-10-01T04:03:03.333Z'
                    usage:
                      storage_used: 31457280
                    source_file:
                      name: podcast-episode-42.mp3
                      content_type: audio/mpeg
                      content_length: 15728640
                    parameters:
                      source_language: en
                    targets:
                      - language: de
                        type: text/plain
                      - language: es
                        type: audio/pcm;encoding=s16le;rate=16000
                    results:
                      - status: processing
                      - status: processing
                complete:
                  summary: Job with mixed results
                  value:
                    job_id: a74d88fb-ed2a-4943-a664-a4512398b994
                    product: voice
                    operation: translate
                    created_at: '2026-10-01T01:03:03.444Z'
                    updated_at: '2026-10-01T04:03:03.333Z'
                    usage:
                      storage_used: 31457280
                    source_file:
                      name: podcast-episode-42.mp3
                      content_type: audio/mpeg
                      content_length: 15728640
                    parameters:
                      source_language: en
                    targets:
                      - language: de
                        type: text/plain
                      - language: es
                        type: audio/pcm;encoding=s16le;rate=16000
                    results:
                      - status: complete
                        download_url: >-
                          https://assets.deepl.com/collections/a74d88fb/assets/c3d4e5f6
                        signature: eyJhbGciOiJIUzI1NiIs...
                      - status: failed
                        error:
                          message: processing failed
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - auth_header: []
components:
  parameters:
    VoiceTranslateJobIdParam:
      name: job_id
      in: path
      required: true
      description: The unique identifier of the job, returned by the create job endpoint.
      schema:
        type: string
        format: uuid
        example: a74d88fb-ed2a-4943-a664-a4512398b994
    VoiceTranslateJobIncludeParam:
      name: include
      in: query
      required: false
      description: >-
        Additional fields to include in the response.

        - `signed_url`: Include pre-signed URLs (`signed_upload_url` on create,
        `signed_download_url` on status) that can be used without an
        authorization header.
      schema:
        type: array
        items:
          type: string
          enum:
            - signed_url
      style: form
      explode: true
  schemas:
    VoiceTranslateJobStatusResponse:
      type: object
      required:
        - job_id
        - product
        - operation
        - created_at
        - updated_at
        - usage
        - source_file
        - parameters
        - targets
        - results
      properties:
        job_id:
          type: string
          format: uuid
          description: The unique identifier of the job.
        product:
          type: string
          description: The product identifier.
          example: voice
        operation:
          type: string
          description: The operation identifier.
          example: translate
        created_at:
          type: string
          format: date-time
          description: When the job was created (ISO 8601).
        updated_at:
          type: string
          format: date-time
          description: When the job was last updated (ISO 8601).
        usage:
          $ref: '#/components/schemas/JobUsage'
        source_file:
          $ref: '#/components/schemas/JobSourceFileResponse'
        parameters:
          $ref: '#/components/schemas/VoiceTranslateJobParametersResponse'
        targets:
          type: array
          description: The translation targets as specified in the create request.
          items:
            $ref: '#/components/schemas/VoiceTranslateJobTargetResponse'
        results:
          type: array
          description: >-
            Per-target processing results, in the same order as the `targets`
            array.
          items:
            $ref: '#/components/schemas/VoiceTranslateJobTargetResult'
    JobUsage:
      type: object
      properties:
        storage_used:
          type: integer
          format: int64
          description: >-
            Total storage used by this job in bytes, including source and output
            files.
    JobSourceFileResponse:
      type: object
      description: Metadata about the uploaded source audio file.
      required:
        - name
        - content_type
        - content_length
      properties:
        name:
          type: string
          description: The file name of the source audio file.
        content_type:
          type: string
          description: The MIME type of the source audio file.
        content_length:
          type: integer
          format: int64
          description: The size of the source audio file in bytes.
    VoiceTranslateJobParametersResponse:
      type: object
      description: Processing parameters as applied to the voice translation job.
      properties:
        source_language:
          allOf:
            - $ref: '#/components/schemas/SourceLanguage'
            - description: Language of the source audio.
    VoiceTranslateJobTargetResponse:
      type: object
      description: A translation target as recorded on the job.
      required:
        - language
        - type
      properties:
        language:
          $ref: '#/components/schemas/TargetLanguage'
        type:
          $ref: '#/components/schemas/VoiceTranslateJobTargetOutputType'
    VoiceTranslateJobTargetResult:
      type: object
      description: The processing result for a single translation target.
      required:
        - status
      properties:
        status:
          $ref: '#/components/schemas/ResultStatus'
        download_url:
          type: string
          format: uri
          description: >-
            The URL to download the translated result via `GET`.

            Requires the `Authorization: DeepL-Signature {signature}` header.

            Only present when `status` is `complete`.

            See [Download
            Result](/api-reference/jobs-voice-translate#download-result) for
            details.
        signature:
          type: string
          description: >-
            A short-lived token used to authorize the result download. Only
            present when `status` is `complete`.
        signed_download_url:
          type: string
          format: uri
          description: >-
            A pre-signed download URL that does not require an authorization
            header. Only present when `status` is `complete` and
            `?include=signed_url` is specified.
        error:
          allOf:
            - $ref: '#/components/schemas/ErrorResponse'
          description: >-
            Details about the processing failure. Only present when `status` is
            `failed`.
    ErrorResponse:
      type: object
      required:
        - message
      properties:
        message:
          type: string
          description: A human-readable description of the error.
        code:
          type: string
          description: >-
            A machine-readable identifier for the error, when available. Clients
            should match on this value rather than on `message` when branching
            on error types.
          example: invalid_content_type
    SourceLanguage:
      type: string
      description: >-
        Language of the text to be translated. If this parameter is omitted, the
        API will attempt to

        detect the language of the text and translate it.


        For the full list of supported source languages, see [supported
        languages](https://developers.deepl.com/docs/getting-started/supported-languages)
        or query the [`GET /v3/languages`
        endpoint](https://developers.deepl.com/docs/languages/using-the-languages-api).
      example: EN
    TargetLanguage:
      type: string
      description: >-
        The language into which the text should be translated.


        For the full list of supported target languages, see [supported
        languages](https://developers.deepl.com/docs/getting-started/supported-languages)
        or query the [`GET /v3/languages`
        endpoint](https://developers.deepl.com/docs/languages/using-the-languages-api).
      example: DE
    VoiceTranslateJobTargetOutputType:
      type: string
      description: The desired output format for the translation target.
      enum:
        - text/plain
        - application/x-subrip
        - audio/opus
        - audio/flac
        - audio/pcm;encoding=s16le;rate=16000
        - audio/pcm;encoding=s16le;rate=24000
        - audio/pcm;encoding=ulaw;rate=8000
        - audio/pcm;encoding=alaw;rate=8000
        - audio/x-matroska;codecs=aac
        - audio/x-matroska;codecs=flac
        - audio/x-matroska;codecs=opus
        - audio/x-matroska;codecs=pcm_s16le;rate=16000
        - audio/x-matroska;codecs=pcm_s16le;rate=24000
        - video/mp2t;codecs=aac
        - video/mp2t;codecs=opus
        - audio/ogg;codecs=flac
        - audio/ogg;codecs=opus
        - audio/webm;codecs=opus
    ResultStatus:
      type: string
      description: >-
        The processing status of a target result.

        - `pending`: Job created, awaiting file upload.

        - `uploaded`: File uploaded, awaiting processing.

        - `processing`: Translation in progress.

        - `complete`: Translation complete, result available for download.

        - `downloaded`: Result has been downloaded. Assets are marked for
        deletion.

        - `failed`: Processing failed. See the `error` field for details.
      enum:
        - pending
        - uploaded
        - processing
        - complete
        - downloaded
        - failed
  responses:
    Unauthorized:
      description: >-
        Authorization failed. Please supply a valid `DeepL-Auth-Key` via the
        `Authorization` header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: The requested resource could not be found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Too many requests. Please wait and resend your request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    auth_header:
      type: apiKey
      description: >
        Authentication with `Authorization` header and `DeepL-Auth-Key`
        authentication scheme. Example: `DeepL-Auth-Key <api-key>`
      name: Authorization
      in: header
      x-default: 'DeepL-Auth-Key '

````