# OpenRouter APIs — Mistral: Voxtral Mini Transcribe (mistralai/voxtral-mini-transcribe)

Guide for calling every confirmed OpenRouter API that serves `mistralai/voxtral-mini-transcribe`.

Model page: https://openrouter.ai/mistralai/voxtral-mini-transcribe
Create an API key: https://openrouter.ai/settings/keys

## EU in-region routing

`mistralai/voxtral-mini-transcribe` is available through EU in-region routing. Requests sent to eu.openrouter.ai are decrypted in the EU and routed only to shared provider endpoints in Europe (the EU/EEA, the UK, and Switzerland).

- Providers in Europe: Mistral
- Prices in Europe:
  - Mistral: $0.000055/second
- Base URL: https://eu.openrouter.ai/api/v1
- Plan: requires Business or Enterprise. Self-serve on Business: no contract, no monthly minimum. https://openrouter.ai/business/eu
- Fails closed: if no shared provider endpoint in Europe is available, the request errors instead of leaving the region. Requests served by your own BYOK key go to your deployment’s region, which you control.

Docs: https://openrouter.ai/docs/guides/features/in-region-routing

## Authentication

Send this header with every request:

- Authorization: Bearer $OPENROUTER_API_KEY

## Speech-to-Text API

Transcribe audio with `mistralai/voxtral-mini-transcribe` 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-mini-transcribe)

- model: string (required) — `"mistralai/voxtral-mini-transcribe"`
- input_audio: object (required) — `{ "data": "<base64 bytes>", "format": "wav" }`

### 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-mini-transcribe",
    "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-mini-transcribe/llms.txt
