List executions
/v1/workflows/{id}/executionsSecret key — sk_… or sk_test_… · Base URL https://api.volanea.com
Enrolments in one workflow, newest first — each with the contact's email, where it currently sits in the graph, and what it is waiting on. Filter with status and cap with limit.
This is the log to read when a workflow "did nothing". An empty list means nothing ever enrolled, which is a trigger problem — check POST /v1/events's triggered and skipped arrays. A list of waiting rows means enrolment worked and the contacts are sitting on a delay or an event that has not arrived, which is a graph problem. The two look identical from the outside and have nothing in common as fixes.
Path parameters
idstringrequiredWorkflow id.
Query parameters
limitintegerstatusstringactivewaitingcompletedexitedfailedcancelled
Response
Executions, newest first.
dataobject[]requiredidstringrequiredcontactIdstringrequiredcontactEmailstring | nullstatusenumrequiredactivewaitingcompletedexitedfailedcancelledcurrentNodeIdstring | nullwakeAtstring | nullwaitEventNamestring | nullenteredAtdate-timerequiredcompletedAtstring | null
Errors
Every failure returns the standard envelope — branch on `code`, never on the wording of `error`.
401Missing or invalid API key.404Not found.422Request validation failed (code `validation_error`, 422).
Request
curl https://api.volanea.com/v1/workflows/id_123/executions?limit=50&status=active \
-H "Authorization: Bearer sk_..."Response
200 · application/json
{
"success": true,
"data": {
"data": [
{
"id": "<id>",
"contactId": "con_5e90",
"contactEmail": "<contactEmail>",
"status": "active",
"currentNodeId": "<currentNodeId>",
"wakeAt": "2026-01-01T09:00:00.000Z",
"waitEventName": "<waitEventName>",
"enteredAt": "2026-01-01T09:00:00.000Z",
"completedAt": "2026-01-01T09:00:00.000Z"
}
]
}
}92 endpoints · OpenAPI document