Skip to main content
Chain up to five chat, image or video steps in one asynchronous job. Reference earlier outputs with {{stepId.field}}, for example to write a scene, illustrate it, then animate the image.

Create a pipeline

The response returns a pipeline id and its initial state. Poll it:
Register a webhook instead of polling and you receive pipeline.completed when the job finishes.

Steps

Steps run sequentially, so a template may only reference an earlier step. Referencing a later step, an unknown field, or {{x.output}} on an image step is rejected at validation time with a message naming the offending step, before anything is billed.

Billing

The whole pipeline is reserved up front — the sum of each step’s ordinary standalone price — before any provider work begins. Steps settle as they complete, and anything unsettled is refunded automatically if the pipeline fails. You are never charged for steps that did not run.

Durability

Pipeline state is stored server-side, so execution survives a dropped connection or a serverless timeout. Polling the job or letting the sweeper run will continue a pipeline whose original driver died — you do not need to retry or rebuild state on your side.