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: object { complete, errored, paused, 6 more }
complete: optional number
errored: optional number
paused: optional number
queued: optional number
rollingBack: optional number
running: optional number
terminated: optional number
waiting: optional number
waitingForPause: optional 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: object { complete, errored, paused, 6 more }
complete: optional number
errored: optional number
paused: optional number
queued: optional number
rollingBack: optional number
running: optional number
terminated: optional number
waiting: optional number
waitingForPause: optional 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
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, 4 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.

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, 4 more }
end: string
formatdate-time
error: object { message, name }
message: string
name: string
finished: boolean
name: string
start: string
formatdate-time
type: "waitForEvent"
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, 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"
output: optional unknown

Full step output or waitForEvent payload without truncation. Sensitive outputs are returned as ‘[REDACTED]’. Populated when status=‘complete’. May be a ReadableStream when the step returned one from step.do; stream outputs are served 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 = unknown

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, 5 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
limits: optional object { steps }
steps: optional number
minimum1
VersionGetResponse object { id, class_name, created_on, 5 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
limits: optional object { steps }
steps: optional number
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