Bulk approve / deny / assign_to_me
POST
/api/v1/executions/review_bulk_actions
executions:write
Async
Always asynchronous. Approve/deny enqueue the resume per execution
(enqueued counts them). Cap of 25 ids per request. Ids that do not
resolve in the caller's scope are reported as not_found in
skipped so existence is not leaked. Requires executions:write.
Request body
The action to apply and the executions to apply it to.
-
execution_idsarray of integer required -
bulk_actionstring required One ofapprovedenyassign_to_me -
notestring
Example request
{
"execution_ids": [
1842,
1843,
1844,
1845,
1846
],
"bulk_action": "approve",
"note": "Manual review batch 2026-09-09 — OFAC and credit clean."
}Responses
-
202 Bulk action processed
application/json-
dataBulkReviewResultSchema: BulkReviewResult
-
objectstring -
appliedinteger -
enqueuedinteger -
skippedarray of object-
idinteger -
reasonstring One ofnot_awaiting_reviewreview_not_pendingassigned_elsewherelive_mode_forbiddenalready_assignednot_found
-
-
-
metaMetaSchema: Meta
-
request_idstring required Correlation id for this request. Also sent as the `X-Request-Id` response header; quote it when contacting support.
-
202 example{ "data": { "object": "bulk_review_result", "applied": 4, "enqueued": 4, "skipped": [ { "id": 1846, "reason": "not_found" } ] }, "meta": { "request_id": "7d4c2f48-9a1b-4c3d-8e2f-1a2b3c4d5e6f" } } -
-
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" } } -
422
validation_failed— unknownbulk_action, emptyexecution_ids, or more than 25 idsapplication/json422 example{ "error": { "code": "validation_failed", "message": "Bulk action exceeds the per-request maximum.", "details": [ { "field": "execution_ids", "message": "max 25 ids per request" } ], "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" } }