Transcription is live again: 60 free minutes a month, Pro is $19/mo. Other tools are coming back. Students: lecture notes still live at VocalScribe.
The Kai The Scribe API lets an agent or script transcribe audio and video on your account. Create a key on the transcribe page, send it as a Bearer token to POST /api/v1/transcribe/ with a file or a public URL, and get back plain text plus a speaker-labelled version.
The API uses the same Deepgram pipeline, the same minutes, and the same plan as the transcribe page. Nothing about your account changes when a key is used, except that the minutes it transcribes count against your month.
kts_live_ and is shown once. Only a SHA-256 hash is stored, so a lost key cannot be recovered: revoke it and make another.Each account can hold up to 5 active keys. Revoke a key from the same card; requests with a revoked key get 401 from then on. Keys are for people who own the account and the agents they run. Do not paste a key into a public repository or a shared prompt.
Every request to /api/v1/ carries the key in the Authorization header:
Authorization: Bearer kts_live_...A missing, malformed, unknown, or revoked key returns 401 with a JSON error string.
Transcribes one recording. Send either a multipart file or a JSON body with a URL.
| Field | Where | Meaning |
|---|---|---|
file | multipart/form-data | An audio or video file (MP3, WAV, M4A, MP4, MOV, WEBM). Direct uploads are capped at 4.5 MB by the host; larger files must use url. |
url | application/json | A direct, public http(s) link to the media file. Page links from YouTube, Zoom, or Google Drive do not work. No size cap beyond the 60 second processing limit. |
language | either | BCP-47 code such as en or es. Omit or send auto to detect. |
diarize | either | true to label speakers. Off by default. |
By URL, with speaker labels:
curl -s -X POST https://www.kaithescribe.com/api/v1/transcribe/ \
-H "Authorization: Bearer $KTS_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/episode.mp3", "diarize": true}'By file upload, under 4.5 MB:
curl -s -X POST https://www.kaithescribe.com/api/v1/transcribe/ \
-H "Authorization: Bearer $KTS_KEY" \
-F "file=@interview.m4a" -F "diarize=true" -F "language=en"{
"transcript": "Hi, Sam. Hi, Alex. Ready? Yes.",
"formattedTranscript": "Speaker 1: Hi, Sam.\n\nSpeaker 2: Hi, Alex.\n\nSpeaker 1: Ready?\n\nSpeaker 2: Yes.",
"words": [{ "word": "Hi,", "start": 0.08, "end": 0.32, "confidence": 0.99, "speaker": 0 }],
"durationSeconds": 3.4,
"language": "en",
"persisted": true
}Speaker 1: ... paragraphs when diarize was on and speakers were found. Identical to transcript otherwise. Use this one for people.speaker index when diarized.| Status | Meaning |
|---|---|
| 400 | No file, bad URL, or invalid JSON. The error string says which. |
| 401 | Missing, malformed, unknown, or revoked key. |
| 402 | The free 60 minutes for this month are used. The body carries upgradeUrl, minutesUsedThisMonth, and minutesAllowance. The key owner starts Pro at that URL. |
| 413 | The upload is over the 4.5 MB direct-upload cap. Host the file and send {"url": ...} instead. |
| 415 | The body is neither multipart/form-data nor application/json. |
| 429 | More than 30 requests in the current hour for this key. resetAt and a Retry-After header say when to try again. |
| 502 | The speech engine rejected the file (unreadable media, unreachable URL). The error string carries its message. |
| 503 | Transcription or API keys are not configured on this deployment. |
Returns the key owner's plan and minutes so an agent can decide before it uploads.
curl -s https://www.kaithescribe.com/api/v1/me/ \
-H "Authorization: Bearer $KTS_KEY"{
"email": "you@example.com",
"plan": "free",
"status": "none",
"minutesUsedThisMonth": 12,
"minutesAllowance": 60,
"minutesRemaining": 48,
"rateLimitPerHour": 30,
"keyPrefix": "kts_live_Ab3dEf9h"
}minutesAllowance and minutesRemaining are null on Pro, which means unlimited. minutesUsedThisMonth is null when usage cannot be read.
The API has no separate price. Free accounts get 60 minutes a month across the page and the API. Pro is $19 a month for unlimited minutes, billed by Stripe and cancelled any time from the billing portal. The key owner upgrades on the pricing section; an agent cannot buy Pro with a key.
A ready-made skill file describes this API in the shape most agent harnesses read: kaithescribe-transcribe.skill (a zip with SKILL.md inside) or the plain SKILL.md. The site's agent card and llms.txt point here too.