API Reference
The contract for every TranscriptFetch endpoint: where to send requests, how to authenticate, what responses mean, and which tools are available for your stack.
Overview
TranscriptFetch is a JSON REST API for turning public video and audio sources into searchable text. The universal transcript endpoints accept YouTube, TikTok, Instagram, podcast episode links, RSS feeds, and direct media files. Channel, playlist, and search discovery are YouTube-only.
The reference is organized into three endpoint scopes:
- All supported sources — fetch one transcript, poll an audio-transcription job, or submit a batch.
- YouTube only — list channel uploads, resolve playlists, and search for videos.
- Usage & service — validate a key, check credit usage, and monitor API health.
See the endpoint reference for parameters and examples, or use the request builder to create a request interactively.
Base URL
All v2 endpoint paths are relative to:
For example, the transcript route is POST https://transcriptfetch.com/api/v2/transcripts/video. The API version is part of the URL; breaking changes ship under a new version rather than silently changing v2. The previous version, /api/v1, is still fully supported alongside it (see versioning).
Authentication
Authenticated endpoints expect an API key as a bearer token. Keep the key on your server and load it from an environment variable rather than exposing it in browser code or committing it to Git.
Create and rotate keys in the dashboard. The public health endpoint is the only reference endpoint that does not require authentication.
Requests and responses
Send request bodies as JSON with Content-Type: application/json. Successful API responses use a JSON envelope with ok, request_id, data, and usage. The X-Request-Id response header carries the same request identifier for logs and support.
Most transcript requests finish synchronously with 200 OK. Work that requires longer audio transcription can return 202 Accepted with a job_id and poll_url; polling the job is free. See AI transcription for the complete synchronous, polling, and webhook flow.
| Status | Meaning |
|---|---|
200 | Request completed, or a job status was returned. |
202 | Audio transcription was accepted and continues asynchronously. |
400 | The request body or parameters are invalid. |
401 | The API key is missing, invalid, or revoked. |
402 | The account does not have enough credits. |
409 | An idempotency key conflicts with another request. |
422 | The source or requested operation cannot be served. |
429 | The API key exceeded its rate limit. |
5xx | A service or upstream dependency failed; consult the error code before retrying. |
Every failure carries the same error block: code (a stable string), number (a stable integer whose thousands digit is the family: 1 request, 2 account, 3 input, 4 content, 5 transient, 9 ours), message, and docs, plus at most one of retry_with, details, issues. Branch on code or number; 5xxx means retry with backoff. Use the error reference for the full list rather than branching on message text.
SDKs and integrations
The same API key and response contract work through the Node SDK, Python SDK, MCP server, and the OpenAPI-backed Postman collection. SDKs reduce request boilerplate; they do not change billing, endpoint behavior, or response semantics.