Skip to main content

Execution API

ExecutionClient monitors and controls workflow executions — list, get, stop, retry, and manage tags.

This client is for run history and operational control, not workflow definition changes. Pair it with WorkflowClient when you need both deployment and runtime visibility.

Access

const execution = client.executions();

Methods

Common Tasks

  • inspect recent failures
  • fetch a single execution with payload data included
  • stop running executions in bulk
  • retry failed executions after updating the related workflow

list(params?)

List executions with optional filters.

const { data, nextCursor } = await client.executions().list({
limit: 25,
status: 'error',
workflowId: 'wf-123',
projectId: 'proj-1',
includeData: true,
redactExecutionData: false,
});

get(id, params?)

Get an execution by ID.

const execution = await client.executions().get(123, {
includeData: true,
redactExecutionData: false,
});

delete(id)

Delete an execution.

const deleted = await client.executions().delete(123);

retry(id, data?)

Retry a failed execution.

const retried = await client.executions().retry(123, {
loadWorkflow: true,
});

stop(id)

Stop a running execution.

const stopped = await client.executions().stop(123);

stopMany(data)

Stop multiple executions matching filters.

const { stopped } = await client.executions().stopMany({
status: ['running', 'queued', 'waiting'],
workflowId: 'wf-123',
startedAfter: '2024-01-01T00:00:00Z',
startedBefore: '2024-01-02T00:00:00Z',
});

getTags(id) / updateTags(id, tags)

Get or update tags on an execution.

const tags = await client.executions().getTags(123);
const updatedTags = await client.executions().updateTags(123, [
{ id: 'tag-1' },
]);

ExecutionResource

Use getResource() or listResources() to get a bound ExecutionResource instance.

const resource = await client.executions().getResource(123, {
includeData: true,
redactExecutionData: false,
});

listResources() preserves the includeData and redactExecutionData params you pass in, so each returned ExecutionResource will re-fetch with the same shape when you call refresh().

Properties

PropertyTypeDescription
idnumberExecution ID
statusstringExecution status (e.g. success, error, running)

Methods

MethodReturnsDescription
refresh()thisRe-fetch execution from the API (preserves original includeData/redactExecutionData)
delete()ExecutionDelete the execution
retry(data?)thisRetry the execution
stop()thisStop a running execution
getTags()Tag[]List tags on the execution
updateTags(tags)Tag[]Replace tags on the execution

Snapshot management

refresh(), retry(), and stop() call replaceSnapshot() under the hood.

Typical Flow

const execution = client.executions();

const { data: failed } = await execution.list({ status: 'error', limit: 20 });

for (const run of failed) {
await execution.retry(run.id, { loadWorkflow: true });
}

Typical Flow with Resource

const runs = await client.executions().listResources({ status: 'error', limit: 20 });

for (const run of runs.data) {
await run.retry({ loadWorkflow: true });
await run.refresh();
console.log(run.data.status);
}