Bearer-authenticated, tenant-scoped, idempotent on writes. All responses are JSON. Cursor pagination on lists.
All requests require a Bearer token scoped to a tenant.
curl https://api.lexora.app/v1/applications \ -H "Authorization: Bearer lex_live_••••••••" \ -H "X-Tenant-Id: tn_harrowlaw"
/v1/applicationsList applications scoped to the requesting tenant.
Example response
{
"data": [
{
"id": "app_01H…",
"status": "lender_bidding",
"amount_cad": 12500
}
],
"next_cursor": null
}/v1/applicationsCreate a new financing application.
Body
{
"client_id": "u_…",
"case_type": "Impaired Driving",
"amount_cad": 12500,
"charge_summary": "…"
}Example response
{
"id": "app_01H…",
"status": "submitted",
"ai_score": null
}/v1/applications/:idRetrieve a single application.
Example response
{
"id": "app_01H…",
"risk_tier": "B",
"ai_score": 82
}/v1/applications/:idUpdate mutable fields.
Body
{
"amount_cad": 14000
}Example response
{
"ok": true
}/v1/applications/:idSoft-delete an application (admin only).
Example response
{
"ok": true
}/v1/applications/:id/bidsList bids on an application.
Example response
{
"ok": true
}/v1/applications/:id/bidsPlace a bid (lender only).
Body
{
"rate_bps": 1050,
"term_months": 18,
"notes": "…"
}Example response
{
"ok": true
}/v1/bids/:id/acceptAccept a bid (firm only).
Example response
{
"application": {
"status": "awarded"
},
"loan": {
"id": "loan_…"
}
}/v1/bids/:id/withdrawWithdraw a bid (lender only).
Example response
{
"ok": true
}/v1/loansList loans scoped to the requesting tenant.
Example response
{
"ok": true
}/v1/loans/:id/scheduleAmortization schedule.
Example response
{
"ok": true
}/v1/loans/:id/paymentsRecord a payment.
Body
{
"amount_cad": 580,
"method": "preauth"
}Example response
{
"ok": true
}/v1/ai/intakeL01 — Conversational intake turn.
Body
{
"session_id": "…",
"message": "…"
}Example response
{
"ok": true
}/v1/ai/classifyL02 — Classify charge into Criminal Code section.
Body
{
"text": "…"
}Example response
{
"section": "320.14",
"confidence": 0.94
}/v1/ai/scoreL04 — Risk score for an application.
Body
{
"application_id": "app_…"
}Example response
{
"ai_score": 82,
"risk_tier": "B"
}/v1/ai/draft-retainerL06 — Generate retainer draft from packet.
Example response
{
"ok": true
}/v1/ai/explainL07 — Plain-language explanation of clauses.
Example response
{
"ok": true
}/v1/tenantsList tenants (admin only).
Example response
{
"ok": true
}/v1/tenantsCreate a tenant.
Body
{
"name": "Bay Street Defense",
"type": "firm",
"plan": "Scale"
}Example response
{
"ok": true
}/v1/auditQuery the audit log.
Example response
{
"ok": true
}/v1/ai/healthPer-layer health, latency, and success rate.
Example response
{
"ok": true
}Subscribe to events; we deliver signed JSON with at-least-once semantics.
application.status_changedbid.createdbid.acceptedloan.disbursedloan.payment_receivedretainer.signedcompliance.flag_raisedaudit.event{
"id": "evt_01HX2K…",
"type": "loan.disbursed",
"created_at": "2026-06-25T14:01:22Z",
"tenant_id": "tn_harrowlaw",
"data": { "loan_id": "loan_01HX2…", "amount_cad": 12500 }
}