Cascades API
Run tenant, employment and credit screening decisions through one REST API and MCP server. Start in the sandbox, go live when approved.
Cascades runs decision workflows ("cascades") against an applicant: pull the reports the cascade asks for — credit, criminal, eviction, identity — evaluate the operator's rules, and land on a decision. The API lets your systems trigger those runs, read the outcome, pause for a human reviewer, and receive signed lifecycle events. The MCP server exposes the same surface to coding agents and assistants.
What can I do with the API?
| You want to | Use |
|---|---|
| Start a screening for one applicant | POST /workflows/{id}/trigger |
| Read the decision and per-step outputs | GET /executions/{id} |
| Screen hundreds of applicants at once | POST /workflows/{id}/batches |
| Let a person approve or deny a paused run | POST /executions/{id}/review_decisions |
| Be told when a run finishes | Webhooks |
| Build or edit a cascade from code or an agent | POST /workflows, POST /workflows/generate |
| Download the report and adverse-action PDFs | Artifacts |
How do I integrate, in order?
- Mint a sandbox key at /api-keys. It carries every scope and expires in 90 days. See Keys, scopes and rate limits.
- Subscribe a webhook with
POST /webhook_subscriptionsand store thesigning_secret— it is shown once. - Trigger a run with a unique
Idempotency-Keyand your ownexternal_referenceso you can correlate results. - Poll or wait:
triggeranswers202 Accepted. PollGET /executions/{id}untilstatusis terminal, or wait forexecution.completed. - Handle human review if the cascade has a review node: the run pauses at
awaiting_reviewuntil someone decides. - Go live once your account is approved: switch
execution_modetolive. Until then every run uses synthetic data and never bills.
curl -X POST "https://cascades.crscreditapi.com/api/v1/workflows/27/trigger" \
-H "Authorization: Bearer {{API_KEY}}" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: rv-app-20491" \
-d '{ "payload": { "applicant": { "first_name": "Jordan", "last_name": "Lee" } }, "execution_mode": "test" }'The full walkthrough, with a Node, Python, Ruby and MCP version of every step, is the quickstart.
What does a response look like?
Every success is { "data": …, "meta": { "request_id": … } }; collections add page, per_page, total_count, total_pages and object to meta. Every error is { "error": { "code", "message", "details", "request_id", "doc_url" } }, and doc_url links to the page for that code under Errors. Keep request_id in your logs — support correlates on it.
Where is the reference?
- API reference — every endpoint, generated from the OpenAPI spec.
- Webhook events — the catalog, signing scheme and retry schedule.
- MCP server — install the
@crscreditapi/cascades-mcp-serverpackage into Claude Code, Cursor or VS Code. - Changelog — what changed, newest first.
Docs for agents
Everything on this site is available in a form a coding agent or an LLM can read without scraping HTML:
- /llms.txt — a short index of every page with a one-line description, the place to point an agent first.
- /llms-full.txt — the whole site as one markdown document, for a single-fetch context load.
- /openapi.json (also /openapi.yaml) — the OpenAPI 3.0 spec the reference is generated from, with
operationId,x-scopes,x-asyncandx-webhooks. - Markdown twins — append
.mdto any docs URL (/docs/concepts/executions.md) or sendAccept: text/markdownto get the page as clean markdown with front matter. - /docs/mcp — the MCP server that wraps the API as tools for Claude Code, Cursor, VS Code and other clients, with per-client install pages.