Skip to content
Start here

Workflows

List all Workflows
GET/accounts/{account_id}/workflows
Get Workflow details
GET/accounts/{account_id}/workflows/{workflow_name}
Create/modify Workflow
PUT/accounts/{account_id}/workflows/{workflow_name}
Deletes a Workflow
DELETE/accounts/{account_id}/workflows/{workflow_name}
ModelsExpand Collapse
WorkflowListResponse object { id, class_name, created_on, 6 more }
id: string
formatuuid
class_name: string
created_on: string
formatdate-time
instances: map[number]
modified_on: string
formatdate-time
name: string
maxLength64
minLength1
script_name: string
triggered_on: string
formatdate-time
schedules: optional array of object { cron, next_instance }
cron: string
next_instance: string
WorkflowGetResponse object { id, class_name, created_on, 6 more }
id: string
formatuuid
class_name: string
created_on: string
formatdate-time
instances: map[number]
modified_on: string
formatdate-time
name: string
maxLength64
minLength1
script_name: string
triggered_on: string
formatdate-time
schedules: optional array of object { cron, next_instance }
cron: string
next_instance: string
WorkflowUpdateResponse object { id, class_name, created_on, 7 more }
id: string
formatuuid
class_name: string
created_on: string
formatdate-time
is_deleted: number
modified_on: string
formatdate-time
name: string
maxLength64
minLength1
script_name: string
terminator_running: number
triggered_on: string
formatdate-time
version_id: string
formatuuid
WorkflowDeleteResponse object { status, success }
status: "ok"
success: boolean

WorkflowsInstances

List of workflow instances
GET/accounts/{account_id}/workflows/{workflow_name}/instances
Get logs and status from instance
GET/accounts/{account_id}/workflows/{workflow_name}/instances/{instance_id}
Create a new workflow instance
POST/accounts/{account_id}/workflows/{workflow_name}/instances
Batch create new Workflow instances
POST/accounts/{account_id}/workflows/{workflow_name}/instances/batch
Get full step output from instance
GET/accounts/{account_id}/workflows/{workflow_name}/instances/{instance_id}/step
ModelsExpand Collapse
InstanceListResponse object { id, created_on, ended_on, 6 more }
id: string
maxLength100
minLength1
created_on: string
formatdate-time
ended_on: string
formatdate-time
modified_on: string
formatdate-time
started_on: string
formatdate-time
status: "queued" or "running" or "paused" or 6 more
One of the following:
"queued"
"running"
"paused"
"errored"
"terminated"
"complete"
"waitingForPause"
"waiting"
"rollingBack"
version_id: string
formatuuid
workflow_id: string
formatuuid
trigger_source: optional "unknown" or "api" or "binding" or 2 more
One of the following:
"unknown"
"api"
"binding"
"event"
"cron"
InstanceGetResponse object { end, error, output, 11 more }
end: string
formatdate-time
error: object { message, name }
message: string
name: string
output: string or number
One of the following:
string
number
params: unknown
queued: string
formatdate-time
rollback: object { error, outcome }
error: object { message, name }
message: string
name: string
outcome: "complete" or "failed"
One of the following:
"complete"
"failed"
start: string
formatdate-time
status: "queued" or "running" or "paused" or 6 more
One of the following:
"queued"
"running"
"paused"
"errored"
"terminated"
"complete"
"waitingForPause"
"waiting"
"rollingBack"
step_count: number
maximum9007199254740991
minimum-9007199254740991
steps: array of object { attempts, config, end, 5 more } or object { end, error, finished, 3 more } or object { trigger, type } or object { end, error, finished, 5 more }
One of the following:
object { attempts, config, end, 5 more }
attempts: array of object { end, error, start, success }
end: string
formatdate-time
error: object { message, name }
message: string
name: string
start: string
formatdate-time
success: boolean
config: object { retries, timeout, sensitive }
retries: object { delay, limit, backoff }
delay: string or number

Specifies the delay duration. The value ‘[dynamic]’ means that a user-supplied function computes the delay.

One of the following:
string
number
limit: number
backoff: optional "constant" or "linear" or "exponential"
One of the following:
"constant"
"linear"
"exponential"
timeout: string or number

Specifies the timeout duration.

One of the following:
string
number
sensitive: optional "output"

When set to ‘output’, step output is redacted from log and step output responses.

end: string
formatdate-time
name: string
output: string
start: string
formatdate-time
success: boolean
type: "step" or "rollback"
One of the following:
"step"
"rollback"
object { end, error, finished, 3 more }
end: string
formatdate-time
error: object { message, name }
message: string
name: string
finished: boolean
name: string
start: string
formatdate-time
type: "sleep"
object { trigger, type }
trigger: object { source }
source: string
type: "termination"
object { end, error, finished, 5 more }
end: string
formatdate-time
error: object { message, name }
message: string
name: string
finished: boolean
name: string
start: string
formatdate-time
type: "waitForEvent"
event_type: optional string
output: optional string
success: boolean
trigger: object { source }
source: "unknown" or "api" or "binding" or 2 more
One of the following:
"unknown"
"api"
"binding"
"event"
"cron"
versionId: string
formatuuid
schedule: optional object { cron, scheduledTime }
cron: string
scheduledTime: number
InstanceCreateResponse object { id, status, version_id, 2 more }
id: string
maxLength100
minLength1
status: "queued" or "running" or "paused" or 6 more
One of the following:
"queued"
"running"
"paused"
"errored"
"terminated"
"complete"
"waitingForPause"
"waiting"
"rollingBack"
version_id: string
formatuuid
workflow_id: string
formatuuid
trigger_source: optional "unknown" or "api" or "binding" or 2 more
One of the following:
"unknown"
"api"
"binding"
"event"
"cron"
InstanceBulkResponse object { id, status, version_id, 2 more }
id: string
maxLength100
minLength1
status: "queued" or "running" or "paused" or 6 more
One of the following:
"queued"
"running"
"paused"
"errored"
"terminated"
"complete"
"waitingForPause"
"waiting"
"rollingBack"
version_id: string
formatuuid
workflow_id: string
formatuuid
trigger_source: optional "unknown" or "api" or "binding" or 2 more
One of the following:
"unknown"
"api"
"binding"
"event"
"cron"
InstanceStepResponse object { error, status, event_type, output }
error: object { message, name }

Error details when status=‘errored’; null otherwise.

message: string
name: string
status: "queued" or "running" or "paused" or 6 more
One of the following:
"queued"
"running"
"paused"
"errored"
"terminated"
"complete"
"waitingForPause"
"waiting"
"rollingBack"
event_type: optional string

The event type the step is waiting on, as supplied to step.waitForEvent. Only present when type=‘waitForEvent’.

output: optional unknown

Contains the full step output or waitForEvent payload without truncation. Uses ‘[REDACTED]’ for sensitive outputs. Contains a value when status=‘complete’. May contain a ReadableStream when step.do returns one; the response serves stream outputs as application/octet-stream rather than JSON.

WorkflowsInstancesStatus

Change status of instance
PATCH/accounts/{account_id}/workflows/{workflow_name}/instances/{instance_id}/status
ModelsExpand Collapse
StatusEditResponse object { status, timestamp }
status: "queued" or "running" or "paused" or 6 more
One of the following:
"queued"
"running"
"paused"
"errored"
"terminated"
"complete"
"waitingForPause"
"waiting"
"rollingBack"
timestamp: string

Accepts ISO 8601 with no timezone offsets and in UTC.

formatdate-time

WorkflowsInstancesEvents

Send event to instance
POST/accounts/{account_id}/workflows/{workflow_name}/instances/{instance_id}/events/{event_type}
ModelsExpand Collapse
EventCreateResponse object { instanceId, timestamp }
instanceId: string
timestamp: string

Accepts ISO 8601 with no timezone offsets and in UTC.

formatdate-time

WorkflowsVersions

List deployed Workflow versions
GET/accounts/{account_id}/workflows/{workflow_name}/versions
Get Workflow version details
GET/accounts/{account_id}/workflows/{workflow_name}/versions/{version_id}
Get Workflow version graph
GET/accounts/{account_id}/workflows/{workflow_name}/versions/{version_id}/graph
ModelsExpand Collapse
VersionListResponse object { id, class_name, created_on, 7 more }
id: string
formatuuid
class_name: string
created_on: string
formatdate-time
has_dag: boolean
language: "javascript" or "python"

The programming language of the workflow implementation.

One of the following:
"javascript"
"python"
modified_on: string
formatdate-time
workflow_id: string
formatuuid
concurrency: optional object { limit }
limit: optional number

Maximum number of instances of this workflow that can run concurrently. Additional instances are queued and started as running instances complete. Must not exceed the account concurrency limit.

maximum9007199254740991
minimum1
default_retention: optional object { error_retention, success_retention }
error_retention: optional number

Default error retention in milliseconds.

maximum9007199254740991
minimum-9007199254740991
success_retention: optional number

Default success retention in milliseconds.

maximum9007199254740991
minimum-9007199254740991
limits: optional object { steps }
steps: optional number
maximum9007199254740991
minimum1
VersionGetResponse object { id, class_name, created_on, 7 more }
id: string
formatuuid
class_name: string
created_on: string
formatdate-time
has_dag: boolean
language: "javascript" or "python"

The programming language of the workflow implementation.

One of the following:
"javascript"
"python"
modified_on: string
formatdate-time
workflow_id: string
formatuuid
concurrency: optional object { limit }
limit: optional number

Maximum number of instances of this workflow that can run concurrently. Additional instances are queued and started as running instances complete. Must not exceed the account concurrency limit.

maximum9007199254740991
minimum1
default_retention: optional object { error_retention, success_retention }
error_retention: optional number

Default error retention in milliseconds.

maximum9007199254740991
minimum-9007199254740991
success_retention: optional number

Default success retention in milliseconds.

maximum9007199254740991
minimum-9007199254740991
limits: optional object { steps }
steps: optional number
maximum9007199254740991
minimum1
VersionGraphResponse object { id, class_name, created_on, 3 more }
id: string
formatuuid
class_name: string
created_on: string
formatdate-time
graph: object { version, workflow }

Versioned workflow graph payload.

version: number
workflow: object { class_name, functions, nodes, payload }

A parsed workflow entrypoint with its step graph.

class_name: string
functions: map[object { name, nodes, type } ]
name: string
nodes: array of unknown

Child nodes (recursive).

type: "function_def"
nodes: array of object { duration, name, type, 2 more } or object { config, name, nodes, 3 more } or object { name, options, type, 3 more } or 11 more
One of the following:
object { duration, name, type, 2 more }
duration: number or string

Duration as milliseconds (number) or human-readable string.

One of the following:
number
string
name: string
type: "step_sleep"
resolves: optional number
starts: optional number
object { config, name, nodes, 3 more }
config: object { retries, timeout }

Configuration for a step (retries and timeout).

retries: object { backoff, delay, limit }

Retry policy for a step.

backoff: "constant" or "linear" or "exponential"

Backoff strategy for step retries.

One of the following:
"constant"
"linear"
"exponential"
delay: number or string

Duration as milliseconds (number) or human-readable string.

One of the following:
number
string
limit: number
timeout: number or string

Duration as milliseconds (number) or human-readable string.

One of the following:
number
string
name: string
nodes: array of unknown

Child nodes (recursive).

type: "step_do"
resolves: optional number
starts: optional number
object { name, options, type, 3 more }
name: string
options: object { event_type, timeout }

Options for a waitForEvent step.

event_type: string
timeout: number or string

Duration as milliseconds (number) or human-readable string.

One of the following:
number
string
type: "step_wait_for_event"
payload: optional object { type } or object { fields, type }

Shape descriptor for JSON payloads.

One of the following:
Type object { type }
type: "unknown"
object { fields, type }
fields: map[unknown]

Nested JsonShape fields (recursive structure).

type: "object"
resolves: optional number
starts: optional number
object { name, timestamp, type, 2 more }
name: string
timestamp: string
type: "step_sleep_until"
resolves: optional number
starts: optional number
object { nodes, type }
nodes: array of unknown

Child nodes (recursive).

type: "loop"
object { kind, nodes, type }
kind: "all" or "any" or "all_settled" or "race"

Parallel execution strategy.

One of the following:
"all"
"any"
"all_settled"
"race"
nodes: array of unknown

Child nodes (recursive).

type: "parallel"
object { catch_block, finally_block, try_block, type }
catch_block: object { nodes, type }
nodes: array of unknown

Child nodes (recursive).

type: "block"
finally_block: object { nodes, type }
nodes: array of unknown

Child nodes (recursive).

type: "block"
try_block: object { nodes, type }
nodes: array of unknown

Child nodes (recursive).

type: "block"
type: "try"
object { nodes, type }
nodes: array of unknown

Child nodes (recursive).

type: "block"
object { branches, type }
branches: array of object { condition, nodes }
condition: string
nodes: array of unknown

Child nodes (recursive).

type: "if"
object { branches, discriminant, type }
branches: array of object { condition, nodes }
condition: string
nodes: array of unknown

Child nodes (recursive).

discriminant: string
type: "switch"
object { class_name, functions, nodes, 2 more }
class_name: string
functions: map[object { name, nodes, type } ]
name: string
nodes: array of unknown

Child nodes (recursive).

type: "function_def"
nodes: array of unknown

Child nodes (recursive).

type: "start"
payload: optional object { type } or object { fields, type }

Shape descriptor for JSON payloads.

One of the following:
Type object { type }
type: "unknown"
object { fields, type }
fields: map[unknown]

Nested JsonShape fields (recursive structure).

type: "object"
object { name, type, resolves, starts }
name: string
type: "function_call"
resolves: optional number
starts: optional number
object { name, nodes, type }
name: string
nodes: array of unknown

Child nodes (recursive).

type: "function_def"
object { kind, type }
kind: "break" or "return"

Break or return from a loop.

One of the following:
"break"
"return"
type: "break"
payload: optional object { type } or object { fields, type }

Shape descriptor for JSON payloads.

One of the following:
Type object { type }
type: "unknown"
object { fields, type }
fields: map[unknown]

Nested JsonShape fields (recursive structure).

type: "object"
modified_on: string
formatdate-time
workflow_id: string
formatuuid