List all Workflows
GET /accounts/{account_id}/workflows
Responses
200 List of all Workflows belonging to a account.
Data is at
body["result"]
[
{
"class_name": "*string*",
"created_on": "*string*",
"id": "*string*",
"instances": {
"complete": "*number*",
"errored": "*number*",
"paused": "*number*",
"queued": "*number*",
"running": "*number*",
"terminated": "*number*",
"waiting": "*number*",
"waitingForPause": "*number*"
},
"modified_on": "*string*",
"name": "*string*",
"script_name": "*string*",
"triggered_on": "*string*"
}
]400 Input Validation Error.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}Create/modify Workflow
PUT /accounts/{account_id}/workflows/{workflow_name}
Responses
200 Create/modify a Workflow based on a deployed script with an existing WorkflowEntrypoint class. Must be done after deploying the corresponding script.
Data is at
body["result"]
{
"class_name": "*string*",
"created_on": "*string*",
"id": "*string*",
"is_deleted": "*number*",
"modified_on": "*string*",
"name": "*string*",
"script_name": "*string*",
"terminator_running": "*number*",
"triggered_on": "*string*",
"version_id": "*string*"
}400 Bad Request.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}Get Workflow details
GET /accounts/{account_id}/workflows/{workflow_name}
Responses
200 Get Workflow details.
Data is at
body["result"]
{
"class_name": "*string*",
"created_on": "*string*",
"id": "*string*",
"instances": {
"complete": "*number*",
"errored": "*number*",
"paused": "*number*",
"queued": "*number*",
"running": "*number*",
"terminated": "*number*",
"waiting": "*number*",
"waitingForPause": "*number*"
},
"modified_on": "*string*",
"name": "*string*",
"script_name": "*string*",
"triggered_on": "*string*"
}400 Workflow has no deployed versions.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}404 Workflow not found.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}Deletes a Workflow
DELETE /accounts/{account_id}/workflows/{workflow_name}
Deletes a Workflow. This only deletes the Workflow and does not delete or modify any Worker associated to this Workflow or bounded to it.
Responses
200 Deletes a Workflow.
Data is at
body["result"]
{
"status": "*string*",
"success": "*boolean*"
}400 Workflow has no deployed versions.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}404 Workflow not found.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}Create a new workflow instance
POST /accounts/{account_id}/workflows/{workflow_name}/instances
Responses
200 Create workflow instance. Body is a JSON parsable string that it's passed into the new instance as the event payload.
Data is at
body["result"]
{
"id": "*string*",
"status": "*string*",
"version_id": "*string*",
"workflow_id": "*string*"
}400 Provided Workflow ID is not valid.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}404 Workflow Name not found.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}List of workflow instances
GET /accounts/{account_id}/workflows/{workflow_name}/instances
Responses
200 List of workflow instances.
Data is at
body["result"]
[
{
"created_on": "*string*",
"ended_on": "*string*",
"id": "*string*",
"modified_on": "*string*",
"started_on": "*string*",
"status": "*string*",
"version_id": "*string*",
"workflow_id": "*string*"
}
]400 Input Validation Error.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}404 Workflow Name not found.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}Batch create new Workflow instances
POST /accounts/{account_id}/workflows/{workflow_name}/instances/batch
Responses
200 Batch create workflow instances. Body is a JSON list that contain all payloads and ids that are passed into the new instance as the event payload.
Data is at
body["result"]
[
{
"id": "*string*",
"status": "*string*",
"version_id": "*string*",
"workflow_id": "*string*"
}
]400 Provided Workflow ID is not valid.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}404 Workflow Name not found.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}Batch terminate instances of a workflow
POST /accounts/{account_id}/workflows/{workflow_name}/instances/batch/terminate
Responses
200 Batch terminate instances of a workflow, via a async job. Body is a JSON list that contain the ids of the instances to terminate.
Data is at
body["result"]
{
"instancesTerminated": "*number*",
"status": "*string*"
}400 Provided Workflow ID is not valid.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}404 Workflow Name not found.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}Get status of the job responsible for terminate all instances of a workflow
GET /accounts/{account_id}/workflows/{workflow_name}/instances/terminate
Responses
200 Get status of the job responsible for terminate all instances of a workflow.
Data is at
body["result"]
{
"status": "*string*"
}400 Input Validation Error.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}404 Workflow Name not found.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}Get logs and status from instance
GET /accounts/{account_id}/workflows/{workflow_name}/instances/{instance_id}
Responses
200 Get all logs and status from the instance.
Data is at
body["result"]
{
"end": "*string*",
"error": {
"message": "*string*",
"name": "*string*"
},
"output": null,
"params": {},
"queued": "*string*",
"start": "*string*",
"status": "*string*",
"steps": [
null
],
"success": "*boolean*",
"trigger": {
"source": "*string*"
},
"versionId": "*string*"
}400 Bad Request.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}404 Instance not found.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}Send event to instance
POST /accounts/{account_id}/workflows/{workflow_name}/instances/{instance_id}/events/{event_type}
Responses
200 Send an event to an instance.
Data is at
body["result"]
{}400 Bad Request.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}404 Workflow not found.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}Change status of instance
PATCH /accounts/{account_id}/workflows/{workflow_name}/instances/{instance_id}/status
Responses
200 Change status of instance - it can be paused, resumed or terminated.
Data is at
body["result"]
{
"status": "*string*",
"timestamp": "*string*"
}400 Bad Request.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}404 Instance not found.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}409 Instance not in a restartable state.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}List deployed Workflow versions
GET /accounts/{account_id}/workflows/{workflow_name}/versions
Responses
200 List deployed workflow versions.
Data is at
body["result"]
[
{
"class_name": "*string*",
"created_on": "*string*",
"has_dag": "*boolean*",
"id": "*string*",
"modified_on": "*string*",
"workflow_id": "*string*"
}
]400 Bad Request.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}Get Workflow version details
GET /accounts/{account_id}/workflows/{workflow_name}/versions/{version_id}
Responses
200 Get specific version details.
Data is at
body["result"]
{
"class_name": "*string*",
"created_on": "*string*",
"has_dag": "*boolean*",
"id": "*string*",
"modified_on": "*string*",
"workflow_id": "*string*"
}400 Bad Request.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}404 Version not found.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}Get Workflow version dag
GET /accounts/{account_id}/workflows/{workflow_name}/versions/{version_id}/dag
Responses
200 Get the parsed DAG for a specific workflow version.
Data is at
body["result"]
{
"class_name": "*string*",
"created_on": "*string*",
"dag": {},
"id": "*string*",
"modified_on": "*string*",
"workflow_id": "*string*"
}404 Version not found.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}Get Workflow version graph
GET /accounts/{account_id}/workflows/{workflow_name}/versions/{version_id}/graph
Responses
200 Get the parsed graph for a specific workflow version.
Data is at
body["result"]
{
"class_name": "*string*",
"created_on": "*string*",
"dag": {},
"id": "*string*",
"modified_on": "*string*",
"workflow_id": "*string*"
}404 Version not found.
{
"errors": [
{
"code": "*number*",
"message": "*string*"
}
],
"messages": [
"*string*"
],
"result": {},
"success": "*boolean*"
}