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 API and any GPT action you build on it. The MCP server backs the ChatGPT plugin and the Claude Custom Connector. One API key, idempotent retries. Paid plans include a set number of transcription hours each month; pay-as-you-go is billed per minute from your wallet. Three ways in: HTTP API, remote MCP server, or the transcribe-so CLI. Works with ChatGPT, Claude.ai, Claude Code, Cursor, Codex, Gemini and any MCP client. See all 22 integrations.
Working from an AI agent? Connect the MCP server with claude mcp add --transport http transcribe https://transcribe.so/mcp, or install the skill, plugin, or CLI at /agent.
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","max_charge_usd":2}'More languages and platform recipes in the cookbook.
Don't want to write code? Use it from ChatGPT or Claude.
The transcribe.so plugin in ChatGPT and the Claude Connector both use the MCP server at https://transcribe.so/mcp. In ChatGPT, install the plugin from ChatGPT's plugin directory, then sign in with your transcribe.so account. Same engine, same pricing, your wallet. Sign in once, stay signed in.
Pricing
Paid plans include a set number of transcription hours each month, shared by the web app, the API and MCP. After them, wait for the reset, turn on extra usage at $1 an hour, or upgrade. 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. Transcription 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.