> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.formantai.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.formantai.com/_mcp/server.

# Transcription

> Submit audio files for asynchronous transcription.

Use the transcription API to upload an audio file and poll for the completed transcript.

## Submit a job

```http
POST /v1/transcription/jobs
```

```bash
curl -X POST "https://api.voice.formantai.com/v1/transcription/jobs" \
  -H "Authorization: Bearer $FORMANT_API_KEY" \
  -F "audio=@call.wav" \
  -F "languages=hi-IN,en-IN" \
  -F "diarize=true" \
  -F "format=standard"
```

| Form field  | Type    | Required | Description                                                      |
| ----------- | ------- | -------- | ---------------------------------------------------------------- |
| `audio`     | file    | Yes      | Audio file to transcribe.                                        |
| `languages` | string  | No       | Comma-separated language codes, or `unknown` for auto-detection. |
| `diarize`   | boolean | No       | Include speaker segments when supported.                         |
| `format`    | string  | No       | `standard` or `code_mixed`.                                      |

```json
{
  "id": "job_abc123",
  "engine": "sarvam",
  "status": "pending"
}
```

## Poll a job

```http
GET /v1/transcription/jobs/{job_id}
```

```bash
curl "https://api.voice.formantai.com/v1/transcription/jobs/job_abc123" \
  -H "Authorization: Bearer $FORMANT_API_KEY"
```

```json
{
  "id": "job_abc123",
  "engine": "sarvam",
  "status": "completed",
  "text": "नमस्ते, मैं राहुल बोल रहा हूं.",
  "language": "hi-IN",
  "utterances": [
    {
      "speaker": "speaker_0",
      "text": "नमस्ते, मैं राहुल बोल रहा हूं.",
      "start": 0.2,
      "end": 2.8
    }
  ]
}
```

## Supported language examples

The API supports English and multiple Indic language codes, including:

`hi-IN`, `bn-IN`, `kn-IN`, `ml-IN`, `mr-IN`, `pa-IN`, `ta-IN`, `te-IN`, `en-IN`, `gu-IN`, `as-IN`, `ur-IN`, and `unknown`.

## Format modes

| Format       | Use when                                               |
| ------------ | ------------------------------------------------------ |
| `standard`   | You want normal transcription output.                  |
| `code_mixed` | Audio may switch between English and Indian languages. |