Skip to main content

One path, whatever produced it

A capability that runs a pipeline answers 202 with a jobId. You poll it here regardless of which capability created it.

Branch on status, never on phase

status is a closed set and safe to branch on. phase is the pipeline’s own stage word — useful to show someone, and not stable across releases.
awaiting_review will not advance on its own. Footage edits stop there when the cut list is ready: nothing renders until a person approves it, and the approval happens in the app. Polling forever will not move it.

Collecting the file

artifacts carries URLs pointing at the origin that holds the bytes. Fetch them directly — they are not proxied through the API, which is why a multi-gigabyte render downloads at the origin’s speed rather than an API gateway’s.
A job that fails after being charged is refunded against the same idempotency key it was billed under. You are never charged for an output that does not exist.

A capability may not be servable here

Some operations need the GPU backend. A deployment without one answers capability_unavailable rather than failing mid-render, so check GET /v1/capabilities before building a flow that depends on it.