Speech-to-text as a Bearer token.

Same engine that powers transcribe.so, exposed as a single HTTP endpoint. The OpenAPI spec backs the public ChatGPT GPT. The MCP server backs the Claude Custom Connector. One API key, per-minute pricing, idempotent retries.

New: read the launch post · Cookbook

Send your first request

One POST, get back a transcription id. Drops into a script, a Cloudflare Worker, or n8n.

curl -X POST https://transcribe.so/api/v1/transcriptions \
  -H "Authorization: Bearer tsk_live_REPLACE_ME" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"source":"external_url","url":"https://example.com/podcast.mp3","pipeline_code":"qwen3-asr-flash-filetrans"}'

More languages and platform recipes in the cookbook.

Don't want to write code? Use it from ChatGPT or Claude.

The ChatGPT GPT calls the same OpenAPI spec at /api/v1/openapi.yaml. The Claude Connector mounts the MCP server at https://transcribe.so/mcp. Same engine, same per-minute pricing, your wallet. Sign in once, stay signed in.

Pricing

Same per-minute rates as the dashboard. Billed against your wallet, monthly credit first, then top-up balance. No separate API quota, no surprise minimums.

ModelPer minutePer hourPipeline code
Qwen Flashdefault$0.0240$1.44qwen3-asr-flash-filetrans
GPT-4obest diarization$0.0538$3.23gpt-4o-transcribe-diarize
Voxtral V2cheapest · native diarization$0.0187$1.12voxtral-mini-2602
Voxtral V2word-level timestamps$0.0252$1.51voxtral-mini-2602-words

See full pricing details, free tier, and team plans on the pricing page.

Built for developers

Bearer auth, nothing else

One header. No cookies, no CSRF, no SDK. curl works.

Idempotent retries

Send the same Idempotency-Key twice, get the same response twice. Retries are safe.

Async with polling

Submit, get a transcription id, poll GET /transcriptions/:id until it's done. Webhooks coming next.

Multilingual + diarization

Whisper, Qwen3-ASR-Flash, Voxtral, GPT-4o-transcribe-diarize. Pick the model per request, the same ones you use in the dashboard.

Two upload modes

Presigned S3 PUT for one-shot uploads, resumable tus for large files or flaky networks. Both feed the same POST /transcriptions.

Ready to ship?

Create a key, paste it into your script, and you're transcribing inside a minute. No SDK to install. Bearer auth and you're done.