Skip to content

Workflows

A Workflow is a generation pipeline you build as a node graph in the Runway app and publish as a private endpoint on Runway Dev. One request runs every step — a language model writing prompts, image and video models, editing steps like stitching clips or adding audio — and returns the outputs you chose to expose.

A Workflow is a graph of nodes, and each node does one thing:

  • Input nodes hold the text, images, video, or audio the pipeline starts from.
  • Model nodes each run one image, video, or audio model.
  • LLM nodes run a language model that writes or rewrites text, usually prompts for later nodes.
  • Utility nodes handle the steps in between, such as extracting a frame, stitching clips, adding audio, or parsing JSON into separate values.

You connect a node’s output to an input of the same type (text, image, video, or audio) on the next node. When you publish the Workflow as an endpoint, you choose which inputs and outputs it exposes.

Each publish creates a version with its own ID. Calling POST /v1/workflows/{id} with that ID starts an invocation, one run of the graph, which you poll until it finishes.

A published version keeps the graph it was published with. Editing the Workflow in the Runway app doesn’t change it; publishing again creates a new version with a new ID, so your integration moves only when you change the ID it calls.

Use a Workflow when a pipeline has several steps that are specific to your product, or when people who don’t write code need to tune it. Use a Recipe when Runway already offers the asset you need as a prebuilt endpoint, a Model Router when you make single generation calls and want the model chosen per request, and a base model when one step on one model is enough.

A Workflow runs the same steps on every request; a graph has no conditions or loops. If whether a step runs depends on an earlier result, call the steps, or several Workflows, from your own code.

One request per pipeline

Send the inputs once and read the outputs from one invocation, instead of chaining and waiting on each generation in your code.

Built and tested visually

Run nodes one at a time in the Runway app until the output is right, then publish. No code is needed to change the pipeline.

Versioned endpoints

Each publish gets its own ID, so you decide when your integration moves to a new version.

Per-node errors

If one step fails, the invocation reports which node failed and why, alongside the outputs that did finish.