Docs

API docs.

Text version

Pricing

$0.01 per completed audio minute

Billable minutes are rounded down to whole audio minutes, with a 1 minute minimum per completed job.

Start

  1. Call POST /v1/transcripts with any audio URL.
  2. Read GET /v1/transcripts/{id}/events until event: done.
  3. When result_ready is true, fetch result_url.

Create transcript

POST /v1/transcripts
Content-Type: application/json

{
  "audio_url": "https://example.com/audio-url"
}

Add Authorization: Bearer <api_key> to get the full transcript.

{
  "id": "tr_123",
  "status": "queued",
  "mode": "preview",
  "status_url": "https://stenobird.com/v1/transcripts/tr_123",
  "events_url": "https://stenobird.com/v1/transcripts/tr_123/events",
  "result_url": "https://stenobird.com/v1/transcripts/tr_123/result",
  "terminal": false,
  "result_ready": false,
  "retry_after_seconds": 2
}

Read events

GET /v1/transcripts/{id}/events

event: transcript
data: {"id":"tr_123","status":"transcribing","stage":"transcribing","text":"Hello and welcome to the show...","chunk_index":0}

event: preview_locked
data: {"id":"tr_123","status":"preview_complete","terminal":true,"result_ready":true,"message":"Preview ended. Add an API key to get the full transcript.","upgrade_url":"https://stenobird.com/pricing"}

event: done
data: {"id":"tr_123","status":"preview_complete","terminal":true,"result_ready":true,"result_url":"https://stenobird.com/v1/transcripts/tr_123/result"}

Agents should wait for event: done. If result_ready is true, fetch result_url. If a result fetch returns 409 transcript_not_ready, wait retry_after_seconds and try again.

Checkout

POST /v1/billing/checkout
Content-Type: application/json

{
  "email": "[email protected]"
}

Send the user to /pricing. After Stripe returns to /success, Stenobird verifies checkout and shows the API key once.

Supported input

Stenobird handles any audio URL that is publicly reachable.

Not accepted:

  • https://example.com/article-without-audio
  • https://example.com/private-audio-requiring-login

Agent skill

Install the bundled skill to let compatible agents submit audio URLs and stream transcript events directly. Compatible agents: Codex, Claude Code, Pi, Hermes, OpenClaw.

curl -fsSL https://stenobird.com/skills/stenobird-transcribe/install.sh | sh

Codex: Use $stenobird-transcribe with this audio:
https://www.dwarkesh.com/p/jensen-huang

Claude Code, Hermes, OpenClaw: /stenobird-transcribe https://www.dwarkesh.com/p/jensen-huang
Pi: /skill:stenobird-transcribe https://www.dwarkesh.com/p/jensen-huang