API & workflow documentation
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.
Send a PDF to POST /api/uploads and receive a caseId and uploadId for the new job.
Trigger parsing with POST /api/uploads/[uploadId]/process if needed, then poll GET /api/uploads/[uploadId]/status until parsing is ready.
Run the underwriting engine over the parsed data with POST /api/analyze. This spends credits from your balance.
Read the saved report via GET /api/cases/[caseId]/report, then export through the CSV endpoints.
X-Request-Id header for support and log correlation. Error responses use the shape { error, details? } with an appropriate HTTP status.