Skip to main content
Every error response is a JSON body with an error field. The error value is sometimes a machine-readable slug (e.g. "no_credits", "limit_reached") and sometimes a human-readable sentence — see the table below for which is which. Status codes are consistent across all four platform endpoints.

Status codes

404 vs 502: a 502 means the upstream HTTP request itself failed (network error, upstream 5xx, etc.). A 404 means the upstream returned 200 but flagged the video as not retrievable (deleted, private, no captions). Treat both as “this video can’t be transcribed today” — but only 502 is worth retrying.

Retry guidance

Retry only on 429 and 502. Use exponential backoff with jitter, and cap retries at 3–5 attempts. Don’t retry on other 4xx codes — the request itself is wrong, retrying won’t fix it.
A common pattern:

Reporting issues

If you hit a status code that doesn’t match the table above, or you see persistent 5xx errors on a URL you believe should work, email hello@transcriptmagic.com with the URL and approximate timestamp — we’ll investigate.