Skip to main content
Use STT Batch to transcribe long recordings or many files asynchronously. Flow: create a job → start it → poll until it finishes → download transcripts
(or receive them on a webhook).

How it works

Important: creating a job does not start transcription. You must call /start.

Interactive API reference

Each endpoint has a Try it playground. Paste your X-API-Key-ID and run live requests from the docs. Webhook payload examples: Webhooks — samples for job.completed, job.failed, and job.cancelled.

Before you begin

  1. An API key from the Gnani APIs dashboard
  2. Audio with real speech in a supported format
  3. A supported language code
Base URL
Auth — send on every Batch API request:
Tone-only / silent audio is accepted into a job but fails later with Empty transcript after 3 retries.

How do I get the transcript text?

GET /jobs/{job_id} and GET /jobs/{job_id}/files do not return full_transcript.

Quickstart (live-verified)

1. Create

2. Start

3. Poll until COMPLETED

4. Get transcript_url, then download text


Configuration

Inverse Text Normalization (ITN) is not supported for STT Batch.

Limits


Supported languages


Supported audio formats

.wav · .mp3 · .mp4 · .flac · .ogg · .opus · .m4a · .aac · .webm · .amr

Job statuses


Webhooks

Pass callback_url at create time to receive a POST when the job reaches a terminal state. The transcripts array includes full per-file transcript JSON (with full_transcript), so webhook users usually do not need /files + transcript_url. Treat webhooks as best-effort. Polling remains the source of truth.

Sample webhook payload — job.completed

Sample webhook payload — job.failed

Sample webhook payload — job.cancelled


Common mistakes


Support

Docs feedback: Batch STT docs feedback Last verified: 28 Jul 2026 against https://api.vachana.ai
Live-checked: Create → Start → Poll → Files → Transcript download, List, Cancel, and error codes 401 / 400 / 404 / 409.