Shipeasy
Flags experimentsApiOperations

List tracked errors

Returns a single page of tracked production errors as a bare JSON array (no pagination envelope), ordered by lastSeenAt desc. Filter with status,…

Returns a single page of tracked production errors as a bare JSON array (no pagination envelope), ordered by lastSeenAt desc. Filter with status, free-text-search with q, and cap the page with limit.

Tracked errors are never filed by hand — an ingestion path (worker log drain / the see() SDK reporter) folds each occurrence into a row keyed by fingerprint, bumping count and lastSeenAt. This surface only reads them and (via PATCH) flips their status.

Use case

Snapshot the project's open issues for a triage dashboard, or drive a CI gate that fails the build when any open error of kind: uncaught exists in prod.

GET
/api/admin/errors

Authorization

bearerSdkKey
AuthorizationBearer <token>

Pass an admin SDK key as Authorization: Bearer sdk_admin_…. Mint via POST /api/admin/keys with type: "admin".

In: header

Query Parameters

status?string

Filter by triage state. all (the default) returns every status.

Default"all"
Value in"open" | "resolved" | "ignored" | "all"
q?string

Case-insensitive substring match against message, errorType, and subject.

Lengthlength <= 200
limit?integer

Maximum number of rows to return (1–500). Defaults to 200.

Default200
Range1 <= value <= 500

Header Parameters

X-Project-Id?string

Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://shipeasy.ai/api/admin/errors"
[
  {
    "id": "err_01j7w7m9q4hxbf6npe6s9zr3vc",
    "projectId": "e976b15e-2f0d-4c6e-9b1a-3a7c1f2d8e90",
    "fingerprint": "9c1f4f1f2c0c4a5fa1c2b6d3e7c8e3a1",
    "causedByFingerprint": null,
    "message": "Cannot read properties of undefined (reading 'id')",
    "errorType": "TypeError",
    "stack": "TypeError: Cannot read properties of undefined (reading 'id')\n    at GateEditor (/app/gates/[id]/page.tsx:42:18)",
    "source": "shipeasy",
    "url": "https://app.example.com/dashboard/gat_01j7/edit",
    "seenUrls": "[\"https://app.example.com/dashboard/#/edit\"]",
    "subject": "gate editor",
    "outcome": "crash on load",
    "side": "client",
    "env": "prod",
    "kind": "uncaught",
    "lastExtrasJson": "{\"gateId\":\"gat_01j7\"}",
    "sdkVersion": "6.0.0",
    "count": 137,
    "status": "open",
    "firstSeenAt": "2026-06-20T08:11:02.000Z",
    "lastSeenAt": "2026-06-28T14:55:31.000Z",
    "createdAt": "2026-06-20T08:11:02.000Z",
    "updatedAt": "2026-06-28T14:55:31.000Z"
  }
]
{
  "error": "Malformed request (bad JSON, missing project scope).",
  "code": "BAD_REQUEST"
}
{
  "error": "Missing or invalid admin SDK key.",
  "code": "UNAUTHORIZED"
}

{
  "error": "Key is valid but not allowed to act on this project.",
  "code": "FORBIDDEN"
}

{
  "error": "The resource does not exist or is not visible to the caller.",
  "code": "NOT_FOUND"
}

{
  "error": "A resource with this name already exists in the project.",
  "code": "ALREADY_EXISTS"
}

{
  "error": "The request body failed structural (schema) validation.",
  "code": "VALIDATION"
}

Was this page helpful?
✎ Edit this page