API reference

Error codes & outcomes

Request-level failures return a canonical error object with a machine-readable code. Per-video results inside a batch carry an outcome instead, and only successful ones are billed.

Canonical error codes

codeHTTPMeaning
unauthorized401Missing or invalid API key.
invalid_request400Body failed validation - see error.issues.
insufficient_credits402Not enough credits for the request.
rate_limited429Per-key rate limit exceeded. Retry after backoff.
idempotency_conflict409Idempotency-Key reused with a different body, or a request with that key is still in flight.
unsupported_platform422The URL has no captions and is not on a platform AI transcription supports (YouTube, TikTok, Instagram, X, Facebook, or a direct media file).
upstream_unavailable502The transcript service was unreachable. Safe to retry.
internal_error500Unexpected server error.

HTTP status codes

StatusNameMeaning
400Bad RequestInvalid body, missing/unknown endpoint, bad value, or limit out of range. Check the issues array in the response.
401UnauthorizedMissing, malformed, revoked, or unknown API key.
402Payment RequiredNot enough credits to complete the request. Top up or upgrade your plan.
409ConflictIdempotency-Key reused with a different body, or a request with that key is still in flight.
429Too Many RequestsPer-key rate limit exceeded. Wait the number of seconds in Retry-After and retry.
502Bad GatewayThe transcript service was unreachable. Safe to retry with backoff.

Per-video outcomes

outcomeChargedMeaning
ok1 creditTranscript (or video list) returned successfully.
no_transcriptFreeThe video exists but has no available transcript/captions.
blockedFreeThe upstream request was blocked. Retry later.
errorFreeAn unexpected error occurred fetching the source.
A 200 can still carry a non-success outcome. Inside a batch, each video reports its own outcome, only ok outcomes are billed, everything else is free.
Next →MCP server
Error codes · TranscriptFetch docs