Transcription API for AI agents
Your agent sends an audio or video file and gets back the text with the exact start and end time of every word, speaker labels and ready SRT subtitles. Claude Code, Codex, Cursor or your own code call it over plain HTTPS with one API key, in 100 languages including Hebrew and Arabic.
Paste this into your agent
Works in Claude Code, Codex, Cursor, Windsurf and any agent that can run commands. It points the agent at the machine-readable instructions, so it uses the right model ids and parameters.
Add speech-to-text to this project with the KolWrite API.
Read https://console.kolwrite.com/agent-instructions.md first.
- Key: KOLWRITE_API_KEY (environment variable), sent as the x-api-key header. Never hard-code or log it.
- POST https://app.kolwrite.com/transcribe {"audio_url": "...", "model": "oracle", "output_format": "json"},
then poll GET /transcribe/{jobId} until status is COMPLETED.
- Local files: POST /upload first and use fileUrl as audio_url. For video, extract the audio with ffmpeg.
- result.segments[].words[] has the start and end of every word. For subtitles use output_format "srt"
with "word_timestamps": false.
agent-instructions.md · llms.txt · llms-full.txt · openapi.json
Pin the same line in AGENTS.md or CLAUDE.md and every session reads the same reference.
Quickstart
Three calls: start a job, read it back, then ask for subtitles. Every parameter is listed in the API documentation.
1. Start a job
curl https://app.kolwrite.com/transcribe \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"audio_url": "https://example.com/meeting.m4a",
"model": "oracle",
"language": "he",
"include_diarization": true,
"output_format": "json"}'
{"jobId": "34c63d45-4cb5-473b-bc60-25c175e69c57"}
2. Read the result
curl https://app.kolwrite.com/transcribe/34c63d45-4cb5-473b-bc60-25c175e69c57 \
-H "x-api-key: YOUR_API_KEY"
{
"jobId": "34c63d45-4cb5-473b-bc60-25c175e69c57",
"status": "COMPLETED",
"result": {
"language": "he",
"segments": [
{
"start": 0.5,
"end": 3.2,
"speaker": "Speaker 1",
"text": "שלום, נתחיל את הפגישה.",
"words": [{"start": 0.5, "end": 0.8, "word": "שלום"}]
}
]
}
}
3. Get SRT subtitles for the same file
curl https://app.kolwrite.com/transcribe \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"audio_url": "https://example.com/meeting.m4a",
"model": "oracle",
"language": "he",
"output_format": "srt",
"word_timestamps": false}'
# Poll the same way. "result" is a string:
1
00:00:00,500 --> 00:00:03,200
שלום, נתחיל את הפגישה.
What agents build with it
Each guide has the request, code you can run and the limits to know.
- Edit video with an AI agentThe agent reads a transcript with word timings, picks what to keep and cuts with ffmpeg.
- SRT subtitles from videoOne call for an SRT file and translated subtitles; ffmpeg turns them into WebVTT or burned-in captions.
- Meetings with speaker labelsZoom, Meet and Teams recordings to text for minutes and action items.
- The exact time of every wordClips, jump cuts, highlights and search from word-level timestamps.
- A transcription tool for your agentTool definitions in Anthropic and OpenAI format and a rule for AGENTS.md.
- Podcast and YouTube captionsCaptions, a transcript and chapters from one transcription.
What the API returns
- Word-level start and end times in JSON and SRT.
- Speaker labels from diarization, or one label per physical audio channel.
- Translation into another language on the Oracle models.
- JSON, plain text or SRT, selected per request.
- A webhook when the job finishes, or poll the job yourself.
- Language detected automatically, or set per request.
Benchmarks
Accuracy on Google FLEURS and Mozilla CommonVoice. Higher is better.
Google FLEURS Accuracy (%)
Pricing
Credits per hour of audio, charged per job.
1 credit US$1.20
| Model | Credits/hour |
|---|---|
| Base | 0.40 |
| Oracle Mini | 0.80 |
| Oracle | 1.20 |
| Oracle Pro | 1.40 |
| Oracle Max | 3.00 |
| CoreLegacy | 1.00 |
| EdgeLegacy | 1.20 |
Standard channel speaker separation is included. Overlapping-speech separation is billed at the selected model rate for the greater of the recording duration or the total detected speech time across its physical channels. Neither mode adds a diarization surcharge.
Model Comparison
Model options at a glance.
| Model | Credits/hour | Summary | Best for |
|---|---|---|---|
| Base | 0.40 | Low-cost transcription with word timestamps. | Clear audio and high-volume jobs |
| Oracle Mini | 0.80 | Fast, economical Oracle tier. | Drafts and high-throughput work |
| OracleFlagship | 1.20 | Production transcription and translation. | Balanced quality, speed, and cost |
| Oracle Pro | 1.40 | Higher-quality Oracle tier. | Demanding production audio |
| Oracle Max | 3.00 | Maximum-quality Oracle tier. | Difficult, high-stakes audio |
| CoreLegacy | 1.00 | Fast legacy general-purpose model. | Existing Core integrations |
| EdgeLegacy | 1.20 | Previous-generation high-accuracy model. | Existing Edge integrations |
Get an API key
Create an account, then generate a key on the API Keys page.