Skip to main content
Start a new execution of a workflow definition within a session.

POST /revisions/:id/data/command (Command: create_execution)

Request Body

workflow takes one of three shapes at a glance: {definition} for the session’s own revision, {blob, revision, definition} for a blob named by id, in whatever organization it belongs to, or {org, blob, revision, definition} fully qualified — see The workflow reference for the full grammar.

Response

execution carries workflow, definition and snapshot, which a create response always sets to "created" — see Get Execution for the full shape. It also carries session_id — the session’s id, whichever of id or alias target.session named it by. The snapshot is taken after the access checks and before the record is written; if the copy fails, the request fails and no execution exists. See The execution snapshot. Limits are fixed at creation. An execution’s limits come from the session’s blob, wherever its definition lives. create_execution resolves workflow.processor_runs_per_execution, workflow.execution_seconds, workflow.code_run_seconds, workflow.code_imports and workflow.session_objects_per_session once, and the execution keeps those values until it ends — see Limits during a run. A schedule’s fire is checked the same way, and a fire that a limit refuses is recorded as refused. Execution identity. An execution must trace to a user: the request needs an identified caller, or the call returns 403. Interactive callers (JWT or API key) and scheduled invocations (via create_schedule) always carry one; the guard fails closed if that identity is ever missing.

Errors

Example

target.session names the session by its alias, nightly-runs; the execution’s session_id is the id that alias resolved to.