Skip to content

Start building

Jump toWorkflow runs
All endpoints

Workflow runs

Follow workflow runs step by step, read their content and cancel them.

get/v1/workflow_runs

List workflow runs

Needs run.view

Runs, newest first. Sorts by created_at, started_at, state, trigger_type, total_steps, duration and workflow (its name); q searches workflow names or finds a pasted run ID. Filters, each repeatable: workflow_id, state, trigger_type, alias (live, staging, draft), is_test (true, false) and created_by, who started it (usr_… or sa_…; a trigger or a schedule is an automation and has none), plus the created time range; facets count each of them. Each run names who started it (created_by).

Query parameters

  • workflow_idstring[]
  • workspace_idstring[]
  • statestring[]
  • trigger_typestring[]
  • aliasstring[]
  • is_teststring[]
  • created_bystring[]
  • limitinteger

    Rows per page, 1 to 200.

    Default50at least 1at most 200
  • cursorstring
  • qstring

    Search: rows whose name (or the list's other searchable text) contains this, any case.

    at most 200 characters
  • orderstring

    Sort field; a leading - sorts down. Each list names the fields it sorts by.

    at most 64 charactersmatches ^-?[a-z_]+$
  • includestring[]

    total_count (counted up to 10,000) and facets (a count per filter value).

    One oftotal_countfacets
  • created_afterstring

    Only rows created at or after this time (RFC 3339).

    date-time
  • created_beforestring

    Only rows created at or before this time (RFC 3339).

    date-time
  • updated_afterstring

    Only rows last changed at or after this time (RFC 3339).

    date-time
  • updated_beforestring

    Only rows last changed at or before this time (RFC 3339).

    date-time

Response200

  • objectstring
    list
  • dataWorkflowRun[]
    24 fields
    • idstring
    • objectstring
      workflow_run
    • aliasstring
    • cancel_requestedboolean
    • created_atstring or null
    • draft_revisioninteger or null
    • ended_atstring or null
    • error_classstring or null
    • error_codestring or null
    • is_testboolean
    • row_versioninteger
    • started_atstring or null
    • statestring
      One ofqueuedrunningwaiting_approvalwaiting_inputwaiting_eventwaiting_timerblocked_on_keyblocked_on_connectioncompletedfailedcancelledstopped_by_limitfailed_to_start
    • state_reasonstring or null
    • total_stepsinteger
    • trigger_typestring
    • updated_atstring or null
    • versioninteger or null
    • workflow_idstring
    • workflow_version_idstring or null
    • workspace_idstring
    • created_byActorRef or null

      Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

      5 fields
      • idstring or null
      • kindstring
        One ofuserapi_keyservice_accountworkloadend_usersystem
      • namestring or null
      • avatar_versionstring or null
      • emailstring or null
    • stepsWorkflowStep[] or null
      15 fields
      • idstring
      • attemptsinteger
      • data_classstring
      • error_classstring or null
      • error_codestring or null
      • finished_atstring or null
      • iterationstring
      • node_idstring
      • node_typestring
      • portstring or null
      • started_atstring or null
      • statusstring
        One ofrunningwaitingcompletedfailedcancelledreusedmanual
      • child_run_idstring or null
      • child_run_kindstring or null
      • cost_micro_usdinteger
        Default0
    • total_cost_micro_usdinteger
      Default0
  • has_moreboolean
  • next_cursorstring or null
  • facetsmap<string, map<string, integer>> or null
  • peoplemap<string, ActorRef> or null
    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null
  • total_countinteger or null
  • total_count_exactboolean or null

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl "https://api.mydeepagents.com/v1/workflow_runs?limit=20" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "list",
  "data": [
    {
      "id": "wfr_01jcvk7x45pq07bh867msccyhv",
      "object": "workflow_run",
      "alias": "live",
      "cancel_requested": true,
      "created_at": "2026-11-10T09:30:00.000Z",
      "created_by": {
        "kind": "user",
        "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
        "name": "Ada Lovelace",
        "email": "ada@example.com"
      },
      "draft_revision": 2,
      "ended_at": null,
      "error_class": "error class",
      "error_code": null,
      "is_test": false,
      "row_version": 4,
      "started_at": "2026-11-10T09:30:00.000Z",
      "state": "queued",
      "state_reason": null,
      "steps": [
        {
          "id": "id",
          "attempts": 2,
          "child_run_id": "run_01jcr77659p6hws1zjqkthay73",
          "child_run_kind": "child run kind",
          "cost_micro_usd": 0,
          "data_class": "data class",
          "error_class": "error class",
          "error_code": null,
          "finished_at": "2026-11-10T09:30:00.000Z",
          "iteration": "iteration",
          "node_id": "node id",
          "node_type": "node type",
          "port": "port",
          "started_at": "2026-11-10T09:30:00.000Z",
          "status": "running"
        }
      ],
      "total_cost_micro_usd": 0,
      "total_steps": 2,
      "trigger_type": "trigger type",
      "updated_at": "2026-11-10T09:30:00.000Z",
      "version": 3,
      "workflow_id": "wf_01jctgae7hqqg3qxjfrgs9t89k",
      "workflow_version_id": "wfv_01jcmxemhpq07bh8677tfsgx59",
      "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total_count": 1
}
get/v1/workflow_runs/{workflow_run_id}

Get workflow run

Needs run.view

The run and its steps: node, status, port, attempts, timing, error code, and who started it. The canvas paints node states from this; poll it every 2 s while running, every 10 s while waiting, and stop at a final state.

Path parameters

  • workflow_run_idstringRequired

Response200

  • idstring
  • objectstring
    workflow_run
  • aliasstring
  • cancel_requestedboolean
  • created_atstring or null
  • draft_revisioninteger or null
  • ended_atstring or null
  • error_classstring or null
  • error_codestring or null
  • is_testboolean
  • row_versioninteger
  • started_atstring or null
  • statestring
    One ofqueuedrunningwaiting_approvalwaiting_inputwaiting_eventwaiting_timerblocked_on_keyblocked_on_connectioncompletedfailedcancelledstopped_by_limitfailed_to_start
  • state_reasonstring or null
  • total_stepsinteger
  • trigger_typestring
  • updated_atstring or null
  • versioninteger or null
  • workflow_idstring
  • workflow_version_idstring or null
  • workspace_idstring
  • created_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null
  • stepsWorkflowStep[] or null
    15 fields
    • idstring
    • attemptsinteger
    • data_classstring
    • error_classstring or null
    • error_codestring or null
    • finished_atstring or null
    • iterationstring
    • node_idstring
    • node_typestring
    • portstring or null
    • started_atstring or null
    • statusstring
      One ofrunningwaitingcompletedfailedcancelledreusedmanual
    • child_run_idstring or null
    • child_run_kindstring or null
    • cost_micro_usdinteger
      Default0
  • total_cost_micro_usdinteger
    Default0

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl "https://api.mydeepagents.com/v1/workflow_runs/wfr_01jcvk7x45pq07bh867msccyhv" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "id": "wfr_01jcvk7x45pq07bh867msccyhv",
  "object": "workflow_run",
  "alias": "live",
  "cancel_requested": true,
  "created_at": "2026-11-10T09:30:00.000Z",
  "created_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "draft_revision": 2,
  "ended_at": null,
  "error_class": "error class",
  "error_code": null,
  "is_test": false,
  "row_version": 4,
  "started_at": "2026-11-10T09:30:00.000Z",
  "state": "queued",
  "state_reason": null,
  "steps": [
    {
      "id": "id",
      "attempts": 2,
      "child_run_id": "run_01jcr77659p6hws1zjqkthay73",
      "child_run_kind": "child run kind",
      "cost_micro_usd": 0,
      "data_class": "data class",
      "error_class": "error class",
      "error_code": null,
      "finished_at": "2026-11-10T09:30:00.000Z",
      "iteration": "iteration",
      "node_id": "node id",
      "node_type": "node type",
      "port": "port",
      "started_at": "2026-11-10T09:30:00.000Z",
      "status": "running"
    }
  ],
  "total_cost_micro_usd": 0,
  "total_steps": 2,
  "trigger_type": "trigger type",
  "updated_at": "2026-11-10T09:30:00.000Z",
  "version": 3,
  "workflow_id": "wf_01jctgae7hqqg3qxjfrgs9t89k",
  "workflow_version_id": "wfv_01jcmxemhpq07bh8677tfsgx59",
  "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
}
post/v1/workflow_runs/{workflow_run_id}/cancel

Cancel workflow run

Needs run.cancel

Record the request, commit, then cancel the Temporal run. Activities in flight see it at their next heartbeat; their effects are not undone. Asking again resends the cancel. When Temporal has no such run (its history was lost, or it closed without telling us) nothing would ever settle the row, so it is cancelled here.

Path parameters

  • workflow_run_idstringRequired

Response202

  • idstring
  • objectstring
    workflow_run
  • aliasstring
  • cancel_requestedboolean
  • created_atstring or null
  • draft_revisioninteger or null
  • ended_atstring or null
  • error_classstring or null
  • error_codestring or null
  • is_testboolean
  • row_versioninteger
  • started_atstring or null
  • statestring
    One ofqueuedrunningwaiting_approvalwaiting_inputwaiting_eventwaiting_timerblocked_on_keyblocked_on_connectioncompletedfailedcancelledstopped_by_limitfailed_to_start
  • state_reasonstring or null
  • total_stepsinteger
  • trigger_typestring
  • updated_atstring or null
  • versioninteger or null
  • workflow_idstring
  • workflow_version_idstring or null
  • workspace_idstring
  • created_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null
  • stepsWorkflowStep[] or null
    15 fields
    • idstring
    • attemptsinteger
    • data_classstring
    • error_classstring or null
    • error_codestring or null
    • finished_atstring or null
    • iterationstring
    • node_idstring
    • node_typestring
    • portstring or null
    • started_atstring or null
    • statusstring
      One ofrunningwaitingcompletedfailedcancelledreusedmanual
    • child_run_idstring or null
    • child_run_kindstring or null
    • cost_micro_usdinteger
      Default0
  • total_cost_micro_usdinteger
    Default0

Status codes

  • 202Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X POST "https://api.mydeepagents.com/v1/workflow_runs/wfr_01jcvk7x45pq07bh867msccyhv/cancel" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 202
JSON
{
  "id": "wfr_01jcvk7x45pq07bh867msccyhv",
  "object": "workflow_run",
  "alias": "live",
  "cancel_requested": true,
  "created_at": "2026-11-10T09:30:00.000Z",
  "created_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "draft_revision": 2,
  "ended_at": null,
  "error_class": "error class",
  "error_code": null,
  "is_test": false,
  "row_version": 4,
  "started_at": "2026-11-10T09:30:00.000Z",
  "state": "queued",
  "state_reason": null,
  "steps": [
    {
      "id": "id",
      "attempts": 2,
      "child_run_id": "run_01jcr77659p6hws1zjqkthay73",
      "child_run_kind": "child run kind",
      "cost_micro_usd": 0,
      "data_class": "data class",
      "error_class": "error class",
      "error_code": null,
      "finished_at": "2026-11-10T09:30:00.000Z",
      "iteration": "iteration",
      "node_id": "node id",
      "node_type": "node type",
      "port": "port",
      "started_at": "2026-11-10T09:30:00.000Z",
      "status": "running"
    }
  ],
  "total_cost_micro_usd": 0,
  "total_steps": 2,
  "trigger_type": "trigger type",
  "updated_at": "2026-11-10T09:30:00.000Z",
  "version": 3,
  "workflow_id": "wf_01jctgae7hqqg3qxjfrgs9t89k",
  "workflow_version_id": "wfv_01jcmxemhpq07bh8677tfsgx59",
  "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
}
get/v1/workflow_runs/{workflow_run_id}/content

Get workflow run content

Needs run.view_content

Path parameters

  • workflow_run_idstringRequired

Response200

  • objectstring
    workflow_run_content
  • errorany
  • inputany
  • outputany
  • run_idstring

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl "https://api.mydeepagents.com/v1/workflow_runs/wfr_01jcvk7x45pq07bh867msccyhv/content" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "workflow_run_content",
  "error": {},
  "input": {},
  "output": {},
  "run_id": "run_01jcr77659p6hws1zjqkthay73"
}
get/v1/workflow_runs/{workflow_run_id}/steps/{step_id}/content

Get workflow step content

Needs run.view_content

Path parameters

  • workflow_run_idstringRequired
  • step_idstringRequired

Response200

  • objectstring
    workflow_step_content
  • errorany
  • inputany
  • outputany
  • step_idstring

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl "https://api.mydeepagents.com/v1/workflow_runs/wfr_01jcvk7x45pq07bh867msccyhv/steps/stp_01jcd1xva0syesnk2rhpkya2et/content" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "workflow_step_content",
  "error": {},
  "input": {},
  "output": {},
  "step_id": "stp_01jcd1xva0syesnk2rhpkya2et"
}

Build with us

Ready for your first call?

Early access is open. Tell us what you want your agents to do, and we will help you get your first key.