---
title: "Transcribe audio file with automatic language detection"
method: POST
path: "/api/velma-2-stt-batch"
---

# Transcribe audio file with automatic language detection

`POST /api/velma-2-stt-batch`

Transcribe an audio file and return the full transcript with per-utterance
metadata. Language is detected automatically for each utterance, so different
utterances in the same file may be identified as different languages when
code-switching occurs.

## Response `200`

Transcription completed successfully

- TranscriptionResponse
  - `text` string, required — The transcribed text.
  - `duration_ms` integer, required — Duration of the processed audio in milliseconds.

## Other responses

- `400` — Bad request - The submitted audio was rejected: an unsupported file extension, an empty file, or audio that could not be processed (for example, corrupted data or content that does not match a supported format); or a request parameter value was invalid (for example, `language`).
- `403` — Forbidden - the request is not permitted
- `422` — Unprocessable Entity - a required request field is missing or malformed (for example, the `X-API-Key` header or the `upload_file` part).
- `429` — Too many requests - the request could not be completed due to insufficient credits
- `500` — Internal server error
- `502` — Bad gateway - the request could not be validated or completed

---

[API](https://skmtc.dev/modulate/apis/velma-2-accent-batch-api.md) · [All operations](https://skmtc.dev/modulate/apis/velma-2-accent-batch-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/modulate/velma-2-accent-batch-api/revisions/b4c9ce648efa/schema)
