HTTP contract
Call Laydebug from websites without an SDK.
Base URL: your API origin. All report procedures are POST JSON to /trpc/{path} with body { "json": <input> }.
Header: x-laydebug-key: <raw project API key> (or Authorization: Bearer <key>).
health.check
GET or POST /trpc/health.check — public.
reports.prepareStateUpload
{ "json": { "byteLength": 4096 } }Returns uploadId, objectPath, short-lived url, expiresAt. PUT the SQLite bytes to url.
reports.bug
{
"json": {
"message": "Checkout crashed",
"kind": "crash",
"route": "/checkout",
"shareLocalState": false
}
}When shareLocalState is true, localState must include objectPath, sha256, and byteLength from the upload step. Paths must match laydebug-state/{projectId}/{uploadId}/snapshot.db.