Executions API

Query workflow execution history, inspect individual execution results, cancel running executions, and export logs for compliance reporting.

SDK token authentication

These endpoints can be authenticated with SDK tokens (Authorization: Bearer sdk_...). Each token has a configurable RBAC role that determines what it can access. Create tokens in Settings → Observability SDK.

List Executions

GET
/api/executions/team/:teamId

List all executions for a team

Path Parameters

ParameterTypeDescription
teamIdUUIDThe team to list executions for

Query Parameters

ParameterTypeRequiredDescription
pageintegerNoPage number (default: 0)
sizeintegerNoPage size (default: 20)
statusstringNoFilter by status: SUCCESS, FAILED, RUNNING, CANCELLED
workflowIdUUIDNoFilter by specific workflow
fromISO 8601NoStart date for filtering
toISO 8601NoEnd date for filtering

Response

200 OK
{
  "content": [
    {
      "id": "uuid",
      "workflowId": "uuid",
      "workflowName": "Order Processing",
      "status": "SUCCESS",
      "startedAt": "2026-02-17T10:30:00.000Z",
      "finishedAt": "2026-02-17T10:30:02.350Z",
      "durationMs": 2350,
      "triggerType": "WEBHOOK",
      "nodeCount": 8,
      "errorMessage": null
    }
  ],
  "totalElements": 156,
  "totalPages": 8,
  "number": 0,
  "size": 20
}

Get Execution Details

GET
/api/executions/:id

Get detailed execution results including per-node data

Path Parameters

ParameterTypeDescription
idUUIDThe execution ID

Response

The response includes the execution summary plus a nodeExecutions array containing the input, output, status, and timing for each node that ran. Top-level inputData and outputData fields contain the overall workflow input/output.

200 OK
{
  "id": "uuid",
  "workflowId": "uuid",
  "workflowName": "Order Processing",
  "workflowVersion": 3,
  "status": "SUCCESS",
  "trigger": "WEBHOOK",
  "inputData": { "body": { "orderId": 42 } },
  "outputData": { "result": "processed" },
  "errorMessage": null,
  "createdAt": "2026-02-17T10:30:00.000Z",
  "startedAt": "2026-02-17T10:30:00.050Z",
  "completedAt": "2026-02-17T10:30:02.350Z",
  "durationMs": 2300,
  "nodeExecutions": [
    {
      "id": "uuid",
      "nodeId": "uuid",
      "nodeName": "Webhook Trigger",
      "nodeType": "WEBHOOK_TRIGGER",
      "status": "SUCCESS",
      "startedAt": "2026-02-17T10:30:00.050Z",
      "completedAt": "2026-02-17T10:30:00.120Z",
      "durationMs": 70,
      "inputData": { "body": { "orderId": 42 } },
      "outputData": { "orderId": 42, "customer": "Acme Corp" },
      "errorMessage": null,
      "retryCount": 0
    },
    {
      "id": "uuid",
      "nodeId": "uuid",
      "nodeName": "Validate Order",
      "nodeType": "IF_ELSE",
      "status": "SUCCESS",
      "startedAt": "2026-02-17T10:30:00.125Z",
      "completedAt": "2026-02-17T10:30:00.130Z",
      "durationMs": 5,
      "inputData": { "orderId": 42, "customer": "Acme Corp" },
      "outputData": { "branch": "true", "orderId": 42 },
      "errorMessage": null,
      "retryCount": 0
    }
  ]
}

Debugging failed executions

When an execution has status: "FAILED", check the errorMessage field on both the top-level execution and individual node executions to pinpoint which node caused the failure.

List Executions by Workflow

GET
/api/executions?workflowId=:workflowId

List executions for a specific workflow

Query Parameters

ParameterTypeRequiredDescription
workflowIdUUIDYesThe workflow to list executions for
pageintegerNoPage number (default: 0)
sizeintegerNoPage size (default: 20)

The response format is the same as List Executions. The caller must have view access to the workflow.

Cancel Execution

POST
/api/executions/:id/cancel

Cancel a running or pending execution

Path Parameters

ParameterTypeDescription
idUUIDThe execution ID to cancel

Response

200 OK
(empty body)

Permissions

Cancelling an execution requires execute permission on the parent workflow. Only executions with RUNNING or PENDING status can be cancelled.

Export Executions

GET
/api/executions/team/:teamId/export

Export execution logs as CSV or JSON for compliance reporting

Path Parameters

ParameterTypeDescription
teamIdUUIDThe team to export executions for

Query Parameters

ParameterTypeRequiredDescription
formatstringNoExport format: csv (default) or json
daysintegerNoNumber of days to include (default: 30)

Response

Returns a file download. The CSV format is denormalized with one row per node execution for easy analysis. The JSON format nests node executions within their parent execution.

CSV columns
execution_id, workflow_id, workflow_name, status, trigger,
started_at, completed_at, duration_ms, node_id, node_type,
node_name, node_status, node_started_at, node_completed_at,
node_duration_ms, node_error
JSON format
[
  {
    "executionId": "uuid",
    "workflowId": "uuid",
    "workflowName": "Order Processing",
    "status": "SUCCESS",
    "trigger": "WEBHOOK",
    "startedAt": "2026-02-17T10:30:00.000Z",
    "completedAt": "2026-02-17T10:30:02.350Z",
    "durationMs": 2350,
    "nodeExecutions": [
      {
        "nodeId": "uuid",
        "nodeType": "WEBHOOK_TRIGGER",
        "nodeName": "Webhook Trigger",
        "status": "SUCCESS",
        "startedAt": "2026-02-17T10:30:00.000Z",
        "completedAt": "2026-02-17T10:30:00.120Z",
        "durationMs": 120,
        "error": null
      }
    ]
  }
]

Sensitive data masking

Exported data has PII and credential values automatically redacted. Self-hosted deployments can configure masking behavior via the admin settings panel.

Execution Statuses

StatusDescription
PENDINGThe execution is queued and waiting to start
RUNNINGThe execution is currently in progress
SUCCESSAll nodes completed without errors
FAILEDOne or more nodes encountered an error
CANCELLEDThe execution was manually cancelled or timed out

Error Codes

StatusMeaning
403User does not have access to this team
404Execution not found