Developers

API & workflow documentation

Last updated July 9, 2026

A small set of HTTP endpoints takes a statement PDF from upload through to a saved underwriting report. This page documents those endpoints, how to authenticate, and the order in which they’re called.

Authenticate with an API key. Create a key in Settings → API access (shown once at creation) and send it on every request as Authorization: Bearer mk_live_…. API access is included on the Pro and Team plans; keys act at the analyst level — they can upload, analyze, read, and export within their workspace, but never manage billing, members, or other administration. Requests from a plan without API access are rejected with 403 plan_upgrade_required. Signed-in browser sessions can call the same endpoints without a key; each endpoint enforces a minimum workspace role — viewer for reads, analyst for uploads and analysis.

Typical flow

Four calls take a raw PDF to a saved, exportable report. Each step links to its endpoint detail in the tabs above.

1
Upload

Send a PDF to POST /api/uploads and receive a caseId and uploadId for the new job.

2
Process & poll

Trigger parsing with POST /api/uploads/[uploadId]/process if needed, then poll GET /api/uploads/[uploadId]/status until parsing is ready.

3
Analyze

Run the underwriting engine over the parsed data with POST /api/analyze. This spends credits from your balance.

4
Report & export

Read the saved report via GET /api/cases/[caseId]/report, then export through the CSV endpoints.

Responses include an X-Request-Id header for support and log correlation. Error responses use the shape { error, details? } with an appropriate HTTP status.