Read app errors
const url = 'https://qinto-api.blotout.io/teams/7b8d1a52-6c1e-4b6f-9a30-2f8a54d1c3e9/domains/3f2a9c81-5d47-4e0b-8c66-91b2a7f04d15/app-errors?start=2026-08-22T00%3A00%3A00.000Z&end=2026-08-29T00%3A00%3A00.000Z&timeZone=Europe%2FLjubljana&appSlug=facebook-capi&appInstallId=8d7c6b5a-4938-4271-a605-9e8f7a6b5c4d&category=delivery&limit=50&cursorAt=2026-08-28T23%3A59%3A59.000Z&cursorId=9e8d7c6b-5a49-4382-b716-0f9e8d7c6b5a';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://qinto-api.blotout.io/teams/7b8d1a52-6c1e-4b6f-9a30-2f8a54d1c3e9/domains/3f2a9c81-5d47-4e0b-8c66-91b2a7f04d15/app-errors?start=2026-08-22T00%3A00%3A00.000Z&end=2026-08-29T00%3A00%3A00.000Z&timeZone=Europe%2FLjubljana&appSlug=facebook-capi&appInstallId=8d7c6b5a-4938-4271-a605-9e8f7a6b5c4d&category=delivery&limit=50&cursorAt=2026-08-28T23%3A59%3A59.000Z&cursorId=9e8d7c6b-5a49-4382-b716-0f9e8d7c6b5a' \ --header 'Authorization: Bearer <token>'Lists the failures the site’s apps reported over a time range, newest first, each with the app’s own description of what it was doing.
How it works
Page with cursorAt and cursorId from the previous response’s nextCursor; a null cursor means the last page. state says how the read ended, and only ok carries records.
Required permissions
domain:realtime_logger:readon all domains, or on the addressed domain when its id is in the route
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Unique id (UUID) of the team that owns the addressed resources, as shown in the team settings on the Blotout platform.
Example
7b8d1a52-6c1e-4b6f-9a30-2f8a54d1c3e9Unique id (UUID) of the team that owns the addressed resources, as shown in the team settings on the Blotout platform.
Unique id (UUID) of the site, as returned by the site operations.
Example
3f2a9c81-5d47-4e0b-8c66-91b2a7f04d15Unique id (UUID) of the site, as returned by the site operations.
Query Parameters
Section titled “Query Parameters”Start of the half-open range, as an ISO 8601 instant.
Example
2026-08-22T00:00:00.000ZStart of the half-open range, as an ISO 8601 instant.
End of the half-open range, exclusive, as an ISO 8601 instant.
Example
2026-08-29T00:00:00.000ZEnd of the half-open range, exclusive, as an ISO 8601 instant.
IANA timezone the buckets are cut in, so a day boundary is the reader’s own.
Example
Europe/LjubljanaIANA timezone the buckets are cut in, so a day boundary is the reader’s own.
Report on one app only.
Example
facebook-capiReport on one app only.
Report on one installation only.
Example
8d7c6b5a-4938-4271-a605-9e8f7a6b5c4dReport on one installation only.
Report on one error category only.
Example
deliveryReport on one error category only.
How many records to return, 1–100.
Example
50How many records to return, 1–100.
Continue after this record’s instant, from a previous response’s cursor.
Example
2026-08-28T23:59:59.000ZContinue after this record’s instant, from a previous response’s cursor.
Continue after this record’s id, from a previous response’s cursor. Send it with cursorAt.
Example
9e8d7c6b-5a49-4382-b716-0f9e8d7c6b5aContinue after this record’s id, from a previous response’s cursor. Send it with cursorAt.
Responses
Section titled “Responses”The failures, or why there are none.
object
How the read ended. no_dataset means the site has recorded nothing yet, too_broad that the selection must be narrowed, and unavailable / rate_limited that the provider refused; only ok carries data.
The page of failures, newest first; empty unless state is ok.
One failure an app reported on this site.
object
When the app failed, as an ISO 8601 UTC timestamp.
Id of this record; pair it with at to page.
The app that failed.
The app’s display name.
The installation that failed.
That installation’s label.
The app version that was serving.
What kind of work failed.
The operation the app was running.
What the app was doing, in its own words.
The app’s own context for the failure.
The failure itself.
Where the next page starts, or null on the last one.
object
Pass as cursorAt.
Pass as cursorId.
Example
{ "state": "ok", "records": [ { "at": "2026-08-28T10:04:31.000Z", "rowId": "af31c0d2", "appSlug": "facebook-capi", "appName": "Facebook CAPI", "appInstallId": "8d7c6b5a-4938-4271-a605-9e8f7a6b5c4d", "installLabel": "Facebook (EU)", "appVersion": "1.4.1", "category": "delivery", "action": "onEvent", "description": "send purchase", "payload": "{\"orderId\":\"1234\"}", "error": "HTTP 429 from graph.facebook.com" } ], "nextCursor": { "at": "2026-08-28T23:59:59.000Z", "id": "af31c0d2" }}invalid_params — A path parameter failed validation (for example a malformed UUID); details pinpoints the offending parameter.
object
Machine-readable error slug; switch on this value rather than on the HTTP status alone.
Field-level validation errors: a tree keyed by input property, each node carrying an errors array of human-readable messages. Render it to help the caller correct the request.
object
Example
{ "error": "invalid_params", "details": { "errors": [], "properties": { "teamId": { "errors": [ "Invalid UUID" ] } } }}unauthenticated — The Authorization: Bearer token is missing, malformed, or no longer valid. Generate a team API token or obtain a new OAuth access token.
object
Machine-readable error slug; switch on this value rather than on the HTTP status alone.
Example
{ "error": "unauthenticated"}forbidden — The bearer credential lacks the required permission or belongs to another team, or its user lacks the organization role a developer operation needs. Update its policies, use a credential bound to the addressed team, or ask an organization owner for the role; message states the reason when one is known.
object
Machine-readable error slug; switch on this value rather than on the HTTP status alone.
Human-readable reason for this specific failure, intended for display — do not parse it programmatically.
Example
{ "error": "forbidden", "message": "The Cloudflare API token is invalid or expired."}internal — Unexpected server error. Nothing is guaranteed to have been persisted; idempotent operations are safe to retry.
object
Machine-readable error slug; switch on this value rather than on the HTTP status alone.
Example
{ "error": "internal"}