get_diagnostics
const url = 'https://app.everruns.com/api/v1/reports/admin/diagnostics';const options = {method: 'GET'};
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://app.everruns.com/api/v1/reports/admin/diagnosticsReturn diagnostics for the reporting subsystem (operator view).
Responses
Section titled “ Responses ”Reporting diagnostics
Point-in-time health snapshot of the reporting layer — projector
freshness plus outbox processing health. Returned from
GET /v1/reports/admin/diagnostics.
object
Server-side wall-clock timestamp when this snapshot was assembled (RFC 3339). Use as the “as-of” for any displayed lag metrics.
Reporting outbox health — counts of pending/processing/failed/ completed rows plus a sample of the most recent failures.
object
Outbox rows that have completed processing successfully.
Outbox rows that have failed (exceeded retry limit).
Sample of the most recent failed rows for operator inspection.
One failed reporting-outbox row, surfaced in
ReportingOutboxDiagnostics.failed_rows so operators can triage
projector failures without dropping to SQL.
object
Number of processing attempts made before this row was marked failed.
Outbox row UUID.
Most recent error message from a processing attempt.
Owning organization’s internal numeric id.
Source-specific row identifier (event id, session id, etc.).
Discriminator for the outbox source (event, session, llm_generation, usage_ledger).
Timestamp when this row was last updated (RFC 3339).
Timestamp of the oldest pending row (RFC 3339). None if no rows are pending.
Outbox rows waiting to be claimed by a projector.
Outbox rows currently being processed.
Per-dataset projector freshness. One entry per active reporting dataset; missing datasets mean the projector hasn’t produced any rows yet.
Per-dataset projector freshness telemetry. One entry per active dataset the reporting projector is materializing.
object
Dataset name (matches ReportQuery.dataset).
Gap between latest_projected_at and the diagnostic’s
generated_at, in milliseconds. None when freshness can’t be
determined.
Wall-clock timestamp of the newest fact the projector has
materialized for this dataset (RFC 3339). None if the projector
hasn’t produced any rows yet.
Example generated
{ "generated_at": "2026-04-15T12:00:00Z", "outbox": { "completed": 1, "failed": 1, "failed_rows": [ { "attempts": 1, "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "last_error": "example", "org_id": 1, "source_id": "example", "source_type": "example", "updated_at": "2026-04-15T12:00:00Z" } ], "oldest_pending_at": "2026-04-15T12:00:00Z", "pending": 1, "processing": 1 }, "projector_lag": [ { "dataset": "example", "freshness_lag_ms": 1, "latest_projected_at": "2026-04-15T12:00:00Z" } ]}Forbidden
Standard error response.
Wire shape is RFC 9457 Problem Details:
every error response includes title and status, and may include
detail, code, allowed_actions, retry_after_seconds, instance,
and type. The content type is rewritten to application/problem+json
by [problem_json_content_type].
object
Recovery actions the caller can take next.
Agent-actionable link describing a follow-up the caller can take. Used in two contexts:
- Error recovery —
ErrorResponse.allowed_actionscarriesrels likeretry,retry-later,unarchive,get-existingso the agent knows the right next call after a 4xx/429. - Entity hypermedia —
WithUrls<T>.allowed_actionscarries state-awarerels likecancel,events,self,updateon the entity itself so the agent can follow links instead of reconstructing routes from prose.
The shape is intentionally identical across both contexts; the closed
rel vocabulary documented in specs/api-conventions.md distinguishes
them.
object
Short, agent-readable hint (e.g. “Shorten ‘name’ to <= 200 chars.”, “Cancel the active turn for this session.”).
Absolute (preferred) or relative URL the caller may invoke
directly. Always present on entity hypermedia actions
(WithUrls<T>.allowed_actions); optional on error-recovery
actions (ErrorResponse.allowed_actions) where the matching
operation_id is enough and the URI is implicit from the failed
call.
HTTP method to use against href. Required for entity hypermedia
actions; usually omitted on error-recovery actions where the same
operation is retried with its original method.
OpenAPI operationId the caller should invoke. Lets an MCP client
resolve the call without parsing href.
Link relation describing the action. Closed vocabulary documented
in specs/api-conventions.md — examples: self, cancel, pause,
resume, events, retry, retry-later, unarchive,
get-existing, delete, update.
OpenAPI $ref to the request-body schema, when the action takes one
(e.g. #/components/schemas/UpdateSessionRequest). Lets a tool-calling
agent fetch the input shape without scanning the whole spec.
Stable, machine-readable error code (snake_case).
Human-readable explanation specific to this occurrence.
Request URI for this occurrence.
Seconds the caller should wait before retrying (429 / transient 503).
HTTP status code; mirrors the response status line.
Short, human-readable summary of the problem (e.g. “Not Found”).
RFC 9457 problem type URI. Optional; identifies the problem class.
Example
{ "allowed_actions": [ { "method": "POST" } ], "code": "session_not_found", "detail": "Session session_01933b5a000070008000000000000001 not found in org org_01933b5a000070008000000000000001.", "instance": "/v1/sessions/session_01933b5a000070008000000000000001", "retry_after_seconds": 30, "status": 404, "title": "Session not found", "type": "https://docs.everruns.com/errors/session_not_found"}