Speech-to-text as a Bearer token.
Same engine that powers transcribe.so, exposed as a single HTTP endpoint. Speaker diarization and word-level timestamps are first-class output on every transcription. The OpenAPI spec backs the public ChatGPT GPT. The MCP server backs the Claude Custom Connector. One API key, idempotent retries. Plans give you unlimited transcription; pay-as-you-go is billed per minute from your wallet.
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"}'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 pricing, your wallet. Sign in once, stay signed in.
Pricing
Plans include unlimited transcription on our own engine. Pay-as-you-go is billed per minute from your wallet, at the same rates as the dashboard. Every transcription includes word-level timestamps, speaker labels, and AI analysis. No separate API quota, no surprise minimums.
| Pipeline | Per minute | Per hour | Code |
|---|---|---|---|
| Standarddefault · included | $0.0167 | $1.00 | standard |
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: wait, poll, or webhook
Submit, get a transcription id, then block on GET /transcriptions/:id/wait, poll GET /transcriptions/:id, or register an HMAC-signed webhook.
Multilingual + diarization
High-accuracy speech-to-text with speaker labels and timestamped segments, in 52 languages and dialects. Runs on our own infrastructure, the same engine as 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.