# OpenRouter APIs — Mistral: Voxtral Small 24B 2507 STT (mistralai/voxtral-small-24b-2507-stt)

Guide for calling every confirmed OpenRouter API that serves `mistralai/voxtral-small-24b-2507-stt`.

Model page: https://openrouter.ai/mistralai/voxtral-small-24b-2507-stt
Create an API key: https://openrouter.ai/settings/keys

## Authentication

Send this header with every request:

- Authorization: Bearer $OPENROUTER_API_KEY

## Speech-to-Text API

Transcribe audio with `mistralai/voxtral-small-24b-2507-stt` through OpenRouter's Speech-to-Text API.

Docs: https://openrouter.ai/docs/api/api-reference/stt/create-transcription

### Endpoint

POST https://openrouter.ai/api/v1/audio/transcriptions

Headers:
- Content-Type: application/json

### Request fields (mistralai/voxtral-small-24b-2507-stt)

- model: string (required) — `"mistralai/voxtral-small-24b-2507-stt"`
- input_audio: object (required) — `{ "data": "<base64 bytes>", "format": "wav" }`
- response_format: optional — advertised for this model
- temperature: optional — advertised for this model

### Response

The default response is JSON containing the transcript and usage:

```json
{
  "text": "Hello, this is a transcription.",
  "usage": { "seconds": 9.2, "total_tokens": 113, "cost": 0.000508 }
}
```

`response_format: "verbose_json"` can additionally return language, duration, segments, and
word timestamps when the routed provider supports them.

### Examples

#### Transcribe an audio file

```bash
# Base64-encode your audio file
AUDIO_BASE64=$(base64 < audio.wav | tr -d '\
')

curl https://openrouter.ai/api/v1/audio/transcriptions \-H "Content-Type: application/json" \-H "Authorization: Bearer $OPENROUTER_API_KEY" \-d '{
    "model": "mistralai/voxtral-small-24b-2507-stt",
    "input_audio": {
      "data": "'"$AUDIO_BASE64"'",
      "format": "wav"
    }
  }'
```

### Error differences

- 400 — malformed audio input or an audio option the routed provider does not support
- 502 — the upstream audio operation failed

## Errors

Failures return `{"error": {"code": <number>, "message": <string>}}` with the HTTP status:

- 400 — malformed request or an unsupported parameter
- 401 — missing or invalid API key
- 402 — insufficient credits
- 403 — spend limit reached, key disabled, or access blocked
- 404 — unknown model or no provider can serve the request
- 429 — rate limited; retry with backoff
- 502 — the operation failed upstream; failed generations are not billed

---

Canonical version of this document: https://openrouter.ai/mistralai/voxtral-small-24b-2507-stt/llms.txt
