Credits and billing
What bills, what never bills, and the receipts your integration can rely on.
The API spends the same credits as the Cliphi app. No seats, no separate API plan.
What bills
| Action | Billing |
|---|---|
| Submit a job | Processing bills per video minute. Credits are reserved at admission and charged when the job completes, exactly once. |
| Render a clip | Billed per second of finished clip. The render response states estimated_credits before the clip exists. |
What never bills
- Moment previews (
preview_page_url): free, unlimited. - Polling job status.
- The keyless
/api/v1/demo. - A render request answered with
status: "already_rendered": the existing clip comes back free.
Duplicate protection
already_running: true on submit means this video already has a job in
flight and nothing new was charged. Resubmitting a video whose job already
FINISHED starts and bills a new job; confirm with your user first.
force_new: true overrides in-flight dedup and always charges; require
explicit user approval.
Receipts and failure honesty
- Every HTTP error body carries
billed; it isfalseon all request errors. - A rendered clip carries
billed_credits: the receipt. - A render that fails mid-pipeline makes no billing claim: billing runs
mid-pipeline, so a post-billing failure is possible. Never tell a user
"nothing was charged" on a failed render; point them at
studio_urlor support.
Last updated on