Skip to content

Errors

Errors use a consistent envelope with a machine-readable code and a non-2xx HTTP status:

{
"error": {
"code": "not_found",
"message": "video not found",
"request_id": "req_01JZX4M8Q2TE9W"
}
}

Some errors also carry a hint field with a suggested fix. Always log error.request_id — quote it in support requests and we can trace the exact call.

Error codes

StatusCodeWhen
400invalid_url, invalid_handle, invalid_queryMissing or malformed url, handle, or query
400unsupported_platform_urlThe URL belongs to a different platform than the endpoint
400invalid_limitlimit is not an integer in the allowed range
400upstream_spend_ceilingThe request would exceed the per-request cost ceiling — lower limit
401missing_api_key / invalid_api_keyNo Authorization: Bearer header, or the key is wrong or revoked
402out_of_creditsCredit balance too low for the call
404not_foundContent is private, deleted, has no transcript, or the URL resolves to nothing
409job_not_readyAsync job results requested before the job finished
429rate_limitedPlan requests-per-minute exceeded — back off and retry
500internal_errorUnexpected error on our side — safe to retry
502upstream_failureTransient fetch failure — safe to retry
504upstream_timeoutThe source took too long to respond — safe to retry

Retry guidance

import httpx, time
for attempt in range(5):
r = httpx.get(url, headers=headers, timeout=120)
if r.status_code == 429 or r.status_code >= 500:
time.sleep(2 ** attempt * 2) # 2, 4, 8, 16, 32 seconds
continue
break

Retry 429 and 5xx with exponential backoff. Don’t retry 400, 401, 402 or 404 — the request itself needs to change.

Failed calls that return an error are not charged, and empty results are free up to 25 a day per account (after that, an empty result costs 1 credit).

A failed call from a valid key still appears in your usage log with its status code, its error code and credits_charged: 0 — on the dashboard’s Logs page or from GET /v1/usage — so a request that keeps failing is visible there even when nothing was billed.

Next: Rate limits · Output formats