Credits and limits
What gets charged, what never does, and the rate ceilings per plan.
What counts as a credit
One video that returns a result is one credit, whatever its length and however many rows come back. Videos over four hours count as two, because they take roughly twice the work. Each response reports what it charged, so you never have to infer it.
What is never charged
A job that succeeds but returns zero rows is charged. The extraction ran; the narration simply did not contain what the schema asked for.
Rate limits
The batch ceiling is enforced: more than 200 URLs in one POST /v1 is refused with batch_too_large. The per-minute figures are the rates each plan is sized for; sustained traffic far beyond them may be throttled, in which case you get 429 with a Retry-After header — honour it rather than looping, see retries and idempotency.
How long results live
A finished result is returned to you exactly once. The first successful read hands over the rows and deletes them and the submitted URL from our side in the same request. Read the job again and you get status: done with a null result, which is not an error — you already have the data.
Everything else about the job — its status, timestamps and character and chunk counts — is kept, which is what the usage and billing screens are built from.