Developer

API keys

Three steps to your first transcript via the API: create a key, attach it to every call, and start transcribing.

1

Create an API key

Self-serve, from your account. Sign in, get API access, and mint the key — no email, no waiting on us.

What it costs. Calls spend the same balance as the website, by the second of audio: the 5,000-minute pack is $24 ($0.29 per hour of audio) and its credit never expires. Workspace is $19 a month, unlimited, with your own keys. Once you have API access, any pack tops the balance up. Jobs that fail are not charged. All packs

The secret is shown once, at creation. Lose it and the way back is a rotation, not a lookup — we store a salted hash, never the key itself. Something bigger than self-serve, or a volume commitment? Talk to us.

2

Add the key to every request

Pass it as an X-API-Key header. Required on all API calls.

HeaderWhenNotes
X-API-Key: <key>required every request Identifies your app and tier. Keep it out of client-side code — proxy through your backend.
Authorization: Bearer <idToken>optional signed-in users Firebase ID token. Ties the job to the user's account — shows in "Your files", inherits their plan limits.
X-User-Email: you@example.comoptional server-to-server Files the job under a Whipscribe account so the transcript shows in that account's files. Use for server-to-server pipelines when Firebase auth isn't available. Honored when the key belongs to that account (or is an enterprise integration key).
3

Transcribe your first file

POST a URL or upload a file. Poll the job until done. Pull the transcript in any format.

Submit a public audio or video URL:

curl · transcribe a URL
curl -X POST https://whipscribe.com/api/v1/transcribe/url \
  -H "X-API-Key: $WHIPSCRIBE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/audio.mp3","language":"auto"}'

Poll until status is done:

curl · poll job status
# Use job_id from the submit response
curl https://whipscribe.com/api/v1/jobs/$JOB_ID \
  -H "X-API-Key: $WHIPSCRIBE_KEY"

Pull the transcript in the format you want:

curl · get transcript (SRT example)
# formats: txt · json · srt · vtt · docx
curl https://whipscribe.com/api/v1/jobs/$JOB_ID/result?format=srt \
  -H "X-API-Key: $WHIPSCRIBE_KEY"

Full API reference

File uploads, batch jobs, speaker-attributed quotes and summaries, word timestamps, webhooks, idempotency keys, and error codes — all in the docs.

Read the docs →

Common questions

Can I try the API without a key?

No. Every API call needs an X-API-Key, and API access comes with the 5,000-minute pack ($24) or the Workspace plan ($19/month). The website gives a free preview of every recording, so you can judge the transcripts before buying; the pack is enough to run the whole quickstart many times over.

What's the base URL?

https://whipscribe.com/api/v1. CORS is open for GET and POST from browser origins — useful for client-side prototypes. For production, proxy through your backend so the key stays server-side.

How is usage billed?

By the second of audio, when a job finishes: a 30-minute file spends 30 minutes of credit. Jobs that fail don't consume credit. GET /v1/credits returns what is left. When the balance has run out, a finished job comes back "locked": true and downloads answer HTTP 402 transcript_locked with a link to add credit; top up and the same job opens in full. See pricing for packs.

What audio and video formats are supported?

MP3, MP4, M4A, WAV, OGG, FLAC, WEBM, MOV, and most other common formats — ffmpeg under the hood. YouTube URLs, podcast RSS enclosures, and public CDN links are accepted by the URL endpoint.

Is my data used for AI training?

No. Recordings are transcribed on our own servers and are never used for training.

Can I get a higher rate limit or on-prem deployment?

Email contact@whipscribe.com with your volume requirements. We accommodate high-throughput and air-gapped setups.