List child executions of a batch
GET
/api/v1/batches/{id}/executions
executions:read
Child rows ordered by row_index. Tokens with executions:read:full
additionally receive applicant_name and applicant_email.
Requires executions:read.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired |
integer |
Batch id. Scoped to the calling api_client; a foreign id returns |
Query parameters
| Name | Type | Description |
|---|---|---|
page |
integer |
1-based page number. Example:1
|
per_page |
integer |
Items per page. Values above 100 are clamped to 100. Example:25
|
filter[status] |
string |
CSV of execution statuses |
Responses
-
200 Child execution list (row_index ordered)
application/json-
dataarray of BatchExecutionRow-
idinteger -
objectstring -
batch_execution_idinteger -
workflow_idinteger -
row_indexinteger 0-based position in the submitted `rows` array. -
statusstring Lifecycle of an execution. `queued` (batch rows not yet dispatched), `pending`, `running` and `waiting` (paused on a Wait node or adverse-action waiting period) are in flight; `awaiting_review` is paused on human review; `completed`, `failed`, `cancelled` and `skipped` are terminal. One ofqueuedpendingrunningwaitingawaiting_reviewcompletedfailedcancelledskipped -
retry_countinteger -
external_referencestring, nullable -
needs_human_reviewboolean -
started_atstring (date-time), nullable -
completed_atstring (date-time), nullable -
created_atstring (date-time) -
applicant_namestring, nullable Only with `executions:read:full`. -
applicant_emailstring, nullable Only with `executions:read:full`.
-
-
metaMetaSchema: PaginatedMeta
-
request_idstring required Correlation id for this request. Also sent as the `X-Request-Id` response header; quote it when contacting support. -
pageinteger required -
per_pageinteger required -
total_countinteger required -
total_pagesinteger required -
objectstring required The object type of every item in `data`.
-
200 example{ "data": [ { "id": 1, "object": "execution", "batch_execution_id": 1, "workflow_id": 1, "row_index": 1, "status": "queued", "retry_count": 1, "external_reference": "string", "needs_human_review": true, "review_status": "none", "started_at": "2026-05-08T18:41:05Z", "completed_at": "2026-05-08T18:41:05Z", "created_at": "2026-05-08T18:41:05Z", "applicant_name": "string", "applicant_email": "string" } ], "meta": { "request_id": "7d4c2f48-9a1b-4c3d-8e2f-1a2b3c4d5e6f", "page": 1, "per_page": 25, "total_count": 142, "total_pages": 6, "object": "execution" } } -
-
401 Missing, malformed, expired or revoked bearer token. The
WWW-Authenticateheader carries the RFC 6750 challenge.application/json401 example{ "error": { "code": "unauthorized", "message": "A valid bearer token is required.", "details": [], "request_id": "7d4c2f48-9a1b-4c3d-8e2f-1a2b3c4d5e6f", "doc_url": "https://cascades.crscreditapi.com/docs/api/errors/unauthorized" } } -
403 Token does not hold the required scope.
detailslists the scope(s) that were checked.application/json403 example{ "error": { "code": "insufficient_scope", "message": "This token does not have the required scope.", "details": [ { "field": "scope", "message": "executions:write" } ], "request_id": "7d4c2f48-9a1b-4c3d-8e2f-1a2b3c4d5e6f", "doc_url": "https://cascades.crscreditapi.com/docs/api/errors/insufficient_scope" } } -
404 Resource does not exist or belongs to another tenant / api_client
application/json404 example{ "error": { "code": "not_found", "message": "The requested resource was not found.", "details": [], "request_id": "7d4c2f48-9a1b-4c3d-8e2f-1a2b3c4d5e6f", "doc_url": "https://cascades.crscreditapi.com/docs/api/errors/not_found" } } -
422 Request body or params failed validation
application/json422 example{ "error": { "code": "validation_failed", "message": "The request could not be processed.", "details": [ { "field": "execution_mode", "message": "must be test or live" } ], "request_id": "7d4c2f48-9a1b-4c3d-8e2f-1a2b3c4d5e6f", "doc_url": "https://cascades.crscreditapi.com/docs/api/errors/validation_failed" } } -
429 Rate limit exceeded (60 req/min per IP on
/api/v1, 600 req/hour per token prefix, or 300 req/5 min per IP globally). The body is the standard error envelope andRetry-Aftergives the seconds until the window resets.application/json429 example{ "error": { "code": "rate_limited", "message": "Rate limit exceeded. Retry later.", "details": [], "request_id": "7d4c2f48-9a1b-4c3d-8e2f-1a2b3c4d5e6f", "doc_url": "https://cascades.crscreditapi.com/docs/api/errors/rate_limited" } }