transcriptfetchGitHubDashboard
API reference

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:

TEXT
https://transcriptfetch.com/api/v2

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.

HTTP
Authorization: Bearer tf_live_YOUR_KEY

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.

StatusMeaning
200Request completed, or a job status was returned.
202Audio transcription was accepted and continues asynchronously.
400The request body or parameters are invalid.
401The API key is missing, invalid, or revoked.
402The account does not have enough credits.
409An idempotency key conflicts with another request.
422The source or requested operation cannot be served.
429The API key exceeded its rate limit.
5xxA 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.

API Reference · TranscriptFetch docs