Best Speech to Text API for your Agents
Give ears to Claude Code, Codex, Hermes, OpenClaw or anything you build yourself. Send audio, get back JSON your agent can act on: who spoke, when they spoke, and what it all meant.
15 free minutes on every new account. No card.
Works with Claude Code, Codex, Cursor, Hermes, OpenClaw
Priya 0:00 Let's start with the pricing page. Where are we?
Tom 0:06 Copy is done. I need a review before Thursday.
Priya 0:11 I can do Thursday morning. Are we keeping two months free on annual?
Tom 0:17 Yes, that stays.
summary
Pricing page ships Friday. Tom owns the copy, Priya reviews on Thursday.
From the makers of Voibe, the dictation app trusted by 3,000+ professionals at
Simple API for complex workflows
One call returns the transcript, the speakers and the summary. What your agent builds on top of that is the interesting part.
Meeting notes
- 1 A standup recording lands in your bucket
- 2 One call returns who said what, plus a decisions-only summary
- 3 Your agent posts the notes and opens the follow-ups
"prompt": "summarise as decisions and owners"
Support QA
- 1 A support call finishes and the recording is sent
- 2 Speaker labels separate the customer from the rep
- 3 Your agent scores the call and flags the ones to review
"prompt": "list the customer's unresolved complaints"
Podcast production
- 1 An episode is uploaded and a webhook is registered
- 2 The finished transcript arrives at your endpoint with timestamps
- 3 Your agent writes show notes and cuts chapter markers
"prompt": "write show notes with chapter titles"
Sales calls to CRM
- 1 A call recording is sent as soon as the meeting ends
- 2 The summary comes back as action items, not prose
- 3 Your agent writes them onto the deal and schedules the next step
"prompt": "list action items with owners and dates"
Every one of these is the same three endpoints. The only thing that changes is the prompt you send and what your agent does with the response.
If your agent can call a URL, it can listen
One POST, one upload, one JSON response. No SDK to adopt, no runtime to install, no framework to marry.
-
Claude Code
-
Codex
-
Cursor
-
Hermes
-
OpenClaw
No integration to wait for and no connector to install. Point your agent at the docs and it works out the calls your use case needs.
Read https://platform.getvoibe.com/docs and write me a client that
sends a meeting recording to the Voibe API and returns who said
what, with timestamps and a summary. What the transcription API returns
No second call to a summariser, no separate diarization service, no glue code stitching them together.
{
"job_id": "a523721c-…",
"status": "DONE",
"audio_duration_seconds": 205.27,
"diarize": true,
"transcript": [
{ "speaker": "Priya", "start": 0.4, "end": 5.2,
"text": "Let's start with the pricing page. Where are we?" },
{ "speaker": "Tom", "start": 6.1, "end": 10.8,
"text": "Copy is done. I need a review before Thursday." }
],
"transcript_text": "Priya: Let's start with the pricing page…",
"summary": { "text": "Pricing page ships Friday. Tom owns the copy…" },
"error": null
} -
transcriptEvery line with its speaker, start and end time in seconds. Quote the right person, jump to the moment, or route a follow-up to whoever asked for it.
-
transcript_textThe same transcript as one plain string, ready to drop straight into a prompt or an index.
-
summaryA short summary your agent can post, store or reason over without a second model call.
Set it up once. It runs every week.
You do not write the integration. You describe the repeating job to the agent you already use, and it writes the script that calls Voibe on a schedule.
Product manager
using Claude Cowork
Turns a week of customer calls into a themed feedback digest, without listening to any of them.
“Every Friday, send last week's call recordings to the Voibe API and give me the top five themes, with a quote and the customer name for each.”
Developer
using Codex
Keeps a searchable transcript index of every standup and incident call the team records.
“Write a job that posts new recordings from our bucket to the Voibe API, stores the JSON, and indexes transcript_text in Postgres for search.”
Founder
using Hermes
Gets investor and sales calls turned into follow-ups before the day ends.
“When a call recording lands, transcribe it with Voibe and draft the follow-up email listing what I committed to and by when.”
Content creator
using OpenClaw
Turns every new episode into show notes, chapter markers and clip candidates overnight.
“Watch this folder. When a new episode appears, transcribe it with Voibe and give me chapters, show notes and the three best pull quotes with timestamps.”
Each of these is one conversation with an agent, not a project. The agent reads the docs, writes the script and schedules it; you review the output.
Speech to text API pricing
15 free minutes, then buy minutes that never expire. Pay for the audio your agents actually transcribe: no subscription, no seats, no monthly minimum.
$50 $0.27 per hour of audio
11,000 minutes · 183 hours of audio
Best rate
- $10
- $25
- $50
- $100
- $10 for 2,000 minutes , $0.30 per hour of audio
- $25 for 5,250 minutes , $0.29 per hour of audio
- $50 for 11,000 minutes , $0.27 per hour of audio
- $100 for 24,000 minutes , $0.25 per hour of audio
-
Billed per second of audio. A 3 minute 24 second file costs 3.4 minutes.
-
Charged only on DONE. Queued, processing and failed jobs cost nothing.
-
Minutes never expire. One-time payments, used whenever you need them.
-
Free minutes on every new account. Enough to run a real file through before you decide.
Speaker diarization: your agent knows who said what
Set diarize to true and every line comes back attributed to a speaker, with start and end times in seconds. No separate diarization model to run, no extra charge. Set it to false for a plain transcript.
- Meeting agents that track who committed to what
- Support agents that quote the customer, not the rep
- Interview and podcast pipelines
- Anywhere more than one person talks
{ "diarize": true } Async transcription: your agent fires and moves on
Pass a webhook_url when you create the job and we POST the finished payload to your endpoint. No agent loop sits blocked on a poll. Same body as the GET, so one handler covers both paths.
{ "webhook_url": "https://you.dev/ready" } Ask for the shape your agent needs
Pass a prompt and the summary comes back the way your code wants to read it: decisions only, action items, bullet points. Your agent gets usable structure without a second model call. Up to 2000 characters, and it changes the summary only, never the transcript.
{
"diarize": true,
"prompt": "summarise as bullet points, focus on decisions"
} Let your coding agent wire it up
Copy one prompt from the portal into Claude Code, Codex, Cursor or any coding agent, and it writes the client for you. The prompt arrives with your key already filled in, so the integration is done before you have finished reading this.
What developers build with the speech to text API
The API gives you speaker-labelled text, timestamps and a steerable summary. These are the products that fall out of that.
Meeting notetaker
Turn a recording into notes that name who committed to what. Speaker labels do the attribution, the prompt shapes the output into decisions and owners.
Searchable call archive
Index transcript_text for full-text search and keep the timestamps to jump straight to the moment. Filter by speaker to find what one person said across months of calls.
Captions and subtitles
Every line arrives with a start and end time in seconds, which is all an SRT or VTT file needs. Caption a whole video library without touching an editor.
Voice notes to tasks
A walk-and-talk memo becomes structured work. Ask the prompt for action items with owners and dates, then write them straight into your tracker.
Call scoring and coaching
Separate the rep from the customer, then score the call against your own rubric. Review the outliers instead of sampling at random.
A voice interface for your product
Let users talk to your app instead of filling in a form. Send the clip, get back text your agent can route, and skip building speech infrastructure.
None of these needs a different endpoint. The transcript, the speakers and the summary all arrive in one response; the product is what you do with it.
How the speech to text API works
Three endpoints, two steps. Create the job, upload the audio to the signed URL you get back, then poll for the result or let a webhook bring it to you.
- 1
POST /transcripts
Starts a job and returns a signed upload URL.
- 2
GET /transcripts/{job_id}
Returns status, transcript and summary.
- 3
GET /transcripts
Lists your jobs, up to 200 per page.
- Audio goes straight to storage on the signed URL, so large files never travel through an API request.
curl -s -X PUT "$UPLOAD_URL" \
-H "Content-Type: application/octet-stream" \
--data-binary @pricing-meeting.mp3 Zero retention on your audio
The recording is deleted the moment the transcript exists. It is never kept, and never used to train models.
-
Audio is deleted after transcription
The recording is removed once the transcript has been produced. It is not archived and not kept for review.
-
Never used to train models
Nothing you send is fed into model training. Your recordings are yours, and they stay that way.
-
Every read is scoped to your key
A job can only be read by the key that created it. One customer's transcripts are never visible to another.
-
Failed jobs are never charged
You pay only when a job reaches DONE. Queued, processing and failed jobs cost nothing, so a retry costs nothing either.
Your transcripts stay readable through GET /transcripts, so an agent can fetch a result again without re-sending the audio.
Speech to text API FAQ
What is the best speech to text API for AI agents?
The one your agent can call without waiting for an integration. Voibe's API is plain HTTP: one POST to start a job, one upload, one JSON response containing the transcript, speaker labels, timestamps and a summary. There is no SDK to install and no framework to commit to. Point your agent at the docs at platform.getvoibe.com/docs and it works out the calls your use case needs, whether it is Claude Code, Codex, Cursor, Hermes, OpenClaw or something you wrote yourself. Every new account starts with 15 free minutes and no card.
Can my AI agent call the API directly?
Yes. Anything that can make an HTTP request can use it: POST /transcripts to start a job, PUT the audio to the signed URL that comes back, then either poll GET /transcripts/{job_id} or pass a webhook_url and let the result come to you. Authentication is a bearer token in a header.
How do I give a coding agent like Claude Code or Codex audio input?
Two ways, both without waiting on an integration. Point the agent at platform.getvoibe.com/docs and ask it for a client that does what you need, or copy the ready-made prompt from the Voibe portal, which arrives with your API key already filled in. Either way the agent ends up sending a recording and reading back the transcript, speaker labels and summary as JSON.
Does the API identify different speakers?
Yes. Set diarize to true on the create call and every line in the transcript comes back with a speaker label and start and end times in seconds. Speaker diarization is included, not a paid add-on. Set diarize to false if you only want plain text.
Do I have to poll for results?
No. Pass a webhook_url when you create the job and we POST the finished payload to your endpoint as soon as it is ready. The body is identical to GET /transcripts/{job_id}, so one handler covers both. Polling is still available if you prefer it.
Is there a free speech to text API tier?
Every new account starts with 15 free minutes and no card is required. After that you buy minutes in one-time packs. There is no subscription and no monthly minimum.
How am I billed?
Per second of audio. A 3 minute 24 second file costs 3.4 minutes. You are charged only when a job reaches DONE, so queued, processing and failed jobs cost nothing.
Do my minutes expire?
No. Minutes are bought once and stay on your account until you use them. There is no subscription to keep active and nothing expires at the end of a month.
What happens if a job fails?
You are not charged. The job comes back with a status of FAILED and an error field explaining what went wrong in plain words.
Is my audio stored or used to train models?
Audio is deleted after transcription and is never used to train models. API results go to your code, and every read is scoped to your API key, so you only ever see your own jobs.
Can I control how the summary is written?
Yes. Pass a prompt of up to 2000 characters on the create call and the summary follows your instructions on focus, tone, length and format. The prompt changes the summary only, never the transcript.
Can I list my past jobs?
Yes. GET /transcripts returns your jobs with limit and offset paging, up to 200 per page.
How is this different from running Whisper myself?
There is no infrastructure to run, no GPU to keep warm and no scaling to manage. Speaker diarization and the summary come back in the same response as the transcript, rather than needing a second model and glue code. You pay per second of audio transcribed instead of per hour of server time.
Give your agent ears
15 free minutes on every new account. No card.
Or read the docs first at platform.getvoibe.com/docs