Start here

Get your first transcript

Create an API key, send one request, and understand the response.

Retrieve existing captions or transcribe accessible audio, then use the timestamped text in your application.

Create your API key

Create an account with no card required. Your account includes 50 free credits each month. Open Manage API keys, create a key, and store it in a server-side environment variable. Never expose it in browser code or commit it to source control.

export TRANSCRIPTFETCH_API_KEY=tf_live_YOUR_KEY

Authenticate your requests

Authenticated endpoints expect your API key as a bearer token. The official SDKs read it from the environment variable above; when using cURL, send it in the Authorization header.

Base URL: https://transcriptfetch.com/api/v2

Authorization: Bearer $TRANSCRIPTFETCH_API_KEY

Send your first request

With your key stored server-side, send a supported URL or video ID to /transcripts/video. A completed response includes timestamped segments and a usage record.

Using an SDK? Install the package first: Node.js setup · Python setup

curl https://transcriptfetch.com/api/v2/transcripts/video \
  -H "Authorization: Bearer $TRANSCRIPTFETCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"video":"dQw4w9WgXcQ"}'

Understand the response

Read the timestamped transcript from data.segments. The usage object reports the charge and your remaining balance. Keep request_id when troubleshooting or contacting support.

200 response
{
  "ok": true,
  "request_id": "req_…",
  "data": {
    "kind": "transcript",
    "video_id": "dQw4w9WgXcQ",
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "platform": "youtube",
    "title": "Example video",
    "channel": "Example Channel",
    "duration": 212,
    "language": "en",
    "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/mqdefault.jpg",
    "source": "captions",
    "segments": [
      { "start": 0, "duration": 3.5, "text": "We're no strangers to love" }
    ]
  },
  "usage": { "credits_spent": 1, "balance": 49, "bytes": 14233 }
}

Choose your next step

Supported sources

Accepted URL formats and platform-specific capabilities.

AI transcription

Caption fallback, audio pricing, polling, and callbacks.

Request builder

Build a real request and generate cURL, Node, or Python.

Handle errors

Know what failed, whether to retry, and what is billed.