Laydebug

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.

On this page