List workflows
GET
/api/v1/workflows
workflows:read
MCP:
cascades_list_workflows
Workflows owned by the account behind the token, newest first.
Hidden single-report runner workflows are excluded. Requires
workflows:read.
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[active] |
boolean |
Only active ( |
filter[use_case] |
string |
Exact match, e.g. |
filter[trigger_type] |
stringmanual event scheduled |
Exact match. Not validated: a value outside the list returns an empty list, not an error. |
Responses
-
200 Workflow list
application/json-
dataarray of Workflow-
idinteger required -
objectstring required -
codestring, nullable Short human-readable code assigned by Cascades. -
namestring required -
activeboolean required `true` = activated and triggerable in live mode. Drafts (`false`) can still be triggered in test mode. -
trigger_typestring required One ofmanualeventscheduled -
use_casestring, nullable -
created_atstring (date-time) -
updated_atstring (date-time)
-
-
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": 27, "object": "workflow", "code": "TSS-27", "name": "Tenant Screening Standard", "active": true, "trigger_type": "manual", "use_case": "tenant_screening", "created_at": "2026-08-01T10:00:00Z", "updated_at": "2026-09-01T09:30:00Z" } ], "meta": { "page": 1, "per_page": 25, "total_count": 1, "total_pages": 1, "object": "workflow", "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" } } -
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" } }