MAI-Transcribe-2 on OpenRouter: wav, base64, transcript JSON
OpenRouter exposes microsoft/mai-transcribe-2 at POST /api/v1/audio/transcriptions with base64 audio and returns JSON with transcript and usage.

OpenRouter's page for microsoft/mai-transcribe-2 shows a dedicated endpoint, POST https://openrouter.ai/api/v1/audio/transcriptions, that takes the model id and the audio as base64 with its format, and returns JSON with the transcript and usage. The page lists WAV as the processed audio format. A verbose response can add language, duration and timing when the upstream provider supports it.
Microsoft's own page lists 60 languages, diarisation, timestamps and keyword biasing for the model, plus a streaming variant. Facts here were read on 2026-10-13 from both pages.
| Item | Value | Source |
|---|---|---|
| Endpoint | POST /api/v1/audio/transcriptions | OpenRouter |
| Audio input | Base64 plus its format; WAV listed | OpenRouter |
| Default response | JSON with transcript and usage | OpenRouter |
| Failed generations | Not charged | OpenRouter |
| Languages | 60 | Microsoft AI |
| Features | Diarisation, timestamps, keyword biasing | Microsoft AI |
How do I get WAV from a video?
Sume's audio detach returns sample-exact wav (pcm_s16le) from a hosted video, and sample_rate: 16000 with channels: "mono" is the speech-to-text shape. Detach once, download the file, then encode it for the transcription call. The detach source cap is 1800 seconds and the output cap is 900 seconds, so cut longer audio with range.
What if I only want captions?
You do not need a separate transcript. Sume's POST /v1/video-captions runs speech-to-text itself on a public HTTPS video and burns the captions; a flat job estimate covers clips up to 60 seconds (see the rate card). Send script_text to keep your spelling of product names, or words if you already hold timed words from another transcriber. Send only one of script_text, words, cues and segments.
curl -X POST https://api.sume.com/v1/video-captions \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: caption-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/clean.mp4",
"style": "slam",
"script_text": "Say hello to the Sume developer platform."
}'Sources
Related posts
More in Developers
- MAI-Voice-2.1 on OpenRouter: audio/speech call, mp3 or pcm
OpenRouter serves microsoft/mai-voice-2.1 at POST /api/v1/audio/speech and returns raw audio bytes, mp3 or pcm. Here is the call and how Sume jobs differ.
- Decision-1 returns 429: back off, then fail closed before Sume
Microsoft says retry a Decision-1 429 with exponential backoff. Cap the retries, then route the brief to review so a throttled gate never renders.
- Decision-1, then Haiku 5.5, then a person: a three-tier gate
Add an abstention option to a Decision-1 choice, escalate unsure briefs to Claude Haiku 5.5, and keep people for the rest, before any paid Sume call.
- Decision-1 picks a video model; check it against Sume's catalog
Let a choice question pick among three model ids, then validate the pick against GET /v1/videos/models and fall back to sume/auto when it is missing.
Written by Sume