---
title: "Initiate Speech to Text Translate Bulk Job V1"
method: POST
path: "/speech-to-text-translate/job/v1"
tags: ["speechToTextTranslateJob"]
---

# Initiate Speech to Text Translate Bulk Job V1

`POST /speech-to-text-translate/job/v1`

## Request

- Base URL: `https://api.sarvam.ai`
- URL: `https://api.sarvam.ai/speech-to-text-translate/job/v1`
- Auth: none declared
- TypeScript: <https://skmtc.dev/sarvam/apis/endpoints/docs/speech-to-text-translate/job/v1/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a new speech to text translate bulk job and receive a job UUID and storage folder details for processing multiple audio files with translation. Set `job_parameters.input_audio_codec` when uploads are raw PCM (`pcm_s16le`, `pcm_l16`, or `pcm_raw`); the API auto-detects other formats. PCM must be 16 kHz.

## Query parameters

- `ptu_id` integer, nullable

## Headers

- `api-subscription-key` string, required
- `api-subscription-key` string

## Request body

- BulkJobInitRequestV1SpeechToTextTranslateJobParameters
  - `job_parameters` SpeechToTextTranslateJobParameters, required
    - `prompt` string, nullable: Prompt to assist the transcription
    - `model` 'saaras:v2.5': Model to be used for speech to text translation. - **saaras:v2.5** (default): Translation model that translates audio from any spoken Indic language to English. - Example: Hindi audio → English text output For the latest model (saaras:v3), use the `/speech-to-text` endpoint with `mode="translate"`.
    - `with_diarization` boolean: Enables speaker diarization, which identifies and separates different speakers in the audio. When set to true, the API will provide speaker-specific segments in the response. Note: This parameter is currently in Beta mode.
    - `num_speakers` integer, nullable: Number of speakers to be detected in the audio. This is used when with_diarization is set to true.
    - `input_audio_codec` 'wav' | 'x-wav' | 'wave' | 'mp3' | 'mpeg' | 'mpeg3' | 'x-mp3' | 'x-mpeg-3' | 'aac' | 'x-aac' | 'aiff' | 'x-aiff' | 'ogg' | 'opus' | 'flac' | 'x-flac' | 'mp4' | 'x-m4a' | 'amr' | 'x-ms-wma' | 'webm' | 'pcm_s16le' | 'pcm_l16' | 'pcm_raw': Audio codec/format of the input file. Our API automatically detects all codec formats, but for PCM files specifically (pcm_s16le, pcm_l16, pcm_raw), you must pass this parameter. PCM files are supported only at 16kHz sample rate.
  - `callback` BulkJobCallback
    - `url` string, required: Webhook url to call upon job completion
    - `auth_token` string: Authorization token required for the callback Url

## Response `202`

Successful Response

- BulkJobInitResponse
  - `job_id` string, required: Job UUID.
  - `storage_container_type` 'Azure' | 'Local' | 'Google' | 'Azure_V1', required
  - `job_parameters` BaseJobParameters, required
  - `job_state` 'Accepted' | 'Pending' | 'Running' | 'Completed' | 'Failed', required

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `422`: Unprocessable Entity
- `429`: Quota Exceeded
- `500`: Internal Server Error
- `503`: Service Overloaded

## Changes

- **2026-07-26** `2b7f7955b147`: 1 breaking, 1 warning
  - added the new required `header` request parameter `api-subscription-key`
  - deleted the `header` request parameter `api-subscription-key`

[Operation history](https://skmtc.dev/sarvam/apis/endpoints/changes/speech-to-text-translate/job/v1/post.md)

---

[API](https://skmtc.dev/sarvam/apis/endpoints.md) - [All operations](https://skmtc.dev/sarvam/apis/endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/sarvam/apis/endpoints/revisions/2b7f7955b147?raw)
