---
title: "Create a voice translation job"
method: POST
path: "/v1/jobs/voice/translate"
tags: ["VoiceTranslateJob"]
---

# Create a voice translation job

`POST /v1/jobs/voice/translate`

## Request

- Base URL: `https://api.deepl.com`
- URL: `https://api.deepl.com/v1/jobs/voice/translate`
- Auth: API key in header `Authorization`

Creates an async voice translation job. The response includes an upload URL for the source audio file.

## Query parameters

- `include` string[]

## Request body

- VoiceTranslateCreateJobRequest
  - `source_file` JobSourceFileRequest, required: Metadata about the source audio file to be uploaded.
    - `name` string, required: The file name of the source audio file.
    - `content_type` 'audio/mpeg' | 'audio/wav' | 'audio/ogg' | 'audio/flac' | 'audio/mp4' | 'audio/webm', required: The MIME type of the source audio file.
    - `content_length` integer, required: The size of the source audio file in bytes. Maximum 1 GB (1,073,741,824 bytes).
  - `parameters` VoiceTranslateJobParametersRequest: Processing parameters for the voice translation job.
    - `source_language` string: Language of the source audio. If omitted, the language is detected automatically.
  - `targets` VoiceTranslateJobTargetRequest[], required: One or more translation targets. Each target produces a separate result.
    - `language` string, required: 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).
    - `type` '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', required: The desired output format for the translation target.

## Response `201`

Job created successfully.

- VoiceTranslateCreateJobResponse
  - `job_id` string, uuid, required: The unique identifier of the created job.
  - `upload_url` string, uri, required: The URL to upload the source audio file to via `PUT` with `Content-Type: application/octet-stream`. Requires the `Authorization: DeepL-Signature {signature}` header. See [Upload File](/api-reference/jobs-voice-translate#upload-file) for details.
  - `signature` string, required: A short-lived token used to authorize the file upload. Pass it via the `Authorization` header as `DeepL-Signature {signature}` when uploading to the `upload_url`.
  - `signed_upload_url` string, uri: A pre-signed upload URL that does not require an authorization header. Only present when `?include=signed_url` is specified.

## Other responses

- `400`: Bad request. Check the error message and request parameters.
- `401`: Authorization failed. Please supply a valid `DeepL-Auth-Key` via the `Authorization` header.
- `403`: Authorization failed. Please supply a valid `DeepL-Auth-Key` via the `Authorization` header.
- `429`: Too many requests. Please wait and resend your request.

## Changes

- **2026-11-03** `c7c91cfac5c0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/deepl/apis/deepl-api-documentation/changes/v1/jobs/voice/translate/post.md)

---

[API](https://skmtc.dev/deepl/apis/deepl-api-documentation.md) - [All operations](https://skmtc.dev/deepl/apis/deepl-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/deepl/apis/deepl-api-documentation/revisions/c7c91cfac5c0?raw)
