API reference
Seal desks get an API key. The key sends the same claims the desk sends, and the same objects over MCP. Create it under Settings.
Auth
Send the key as Authorization: Bearer. The key is on Seal only. Base URL is https://ackord.app.
Authorization: Bearer ack_...
Incidents
GET /api/incidents lists named incidents. POST /api/incidents creates one. Fields: customer_email, title, sla_clause.
POST /api/incidents
Content-Type: application/json
{
"customer_email": "[email protected]",
"title": "INC-1234 API latency, 7 Sep 2026",
"sla_clause": "Clause 3.2 - Availability"
}
GET /api/incidents/{id} reads one. POST /api/incidents/{id}/quote writes an SLA quote. Fields: downtime_minutes, monthly_fee or monthly_fee_cents, percent_per_hour. A quote does not issue a credit note.
List claims
GET /api/claims. Optional query status=waiting_ack, settled, or disputed. Default is all.
GET /api/claims?status=waiting_ack
Read one claim
GET /api/claims/{id}
Create a claim
POST /api/claims. Fields: customer_email, incident, sla_clause, and amount or amount_cents. Amount is a decimal string such as 2400.00. amount_cents is an integer.
POST /api/claims
Content-Type: application/json
{
"customer_email": "[email protected]",
"incident": "INC-1234 API latency, 7 Sep 2026",
"sla_clause": "Clause 3.2 - Availability",
"amount": "2400.00"
}
Response
Create returns 201 and the claim, including magic_token so you can open /c/{token}. You may pass incident_id to attach an existing incident. Status labels are Pending, Confirmed, or Disputed. waiting_ack is Pending. settled is Confirmed.
Ledger and audit
GET /api/ledger lists credit-note lines. GET /api/audit?incident_id= lists mailbox, IP, and actions for that incident.
MCP
POST /mcp with the same Bearer key. JSON-RPC methods: initialize, tools/list, tools/call. Tools wrap incidents, SLA quotes, claims, ledger, and audit.
POST /mcp
Authorization: Bearer ack_...
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}
Notes
- The work email on the desk must be verified before a claim can be issued.
- A disputed claim issues no credit.
- Confirmed stays Confirmed. Repeat Confirm does not issue a second credit.
- Contact [email protected] if a call fails.