Dashboard
Query aggregated telemetry stats, timeseries, top hosts, and paginated events.
Dashboard
Dashboard endpoints provide aggregated views of your telemetry data. These power the Checkrd dashboard UI and are available for programmatic access.
Get Stats
GET /v1/dashboard/statsAuth: JWT (viewer+)
| Parameter | Type | Required | Description |
|---|---|---|---|
hours | integer | No | Lookback window (default 24, max 720). |
bash
curl "https://api.checkrd.io/v1/dashboard/stats?hours=24" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"Response 200 OK
json
{
"total_agents": 12,
"total_events": 45230,
"unique_hosts": 8,
"denied_requests": 127,
"error_rate": 0.028,
"p99_latency_ms": 342.5
}Get Agent Stats
GET /v1/dashboard/agentsAuth: JWT (viewer+)
| Parameter | Type | Required | Description |
|---|---|---|---|
hours | integer | No | Lookback window (default 24, max 720). |
bash
curl "https://api.checkrd.io/v1/dashboard/agents?hours=24" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"Response 200 OK
json
[
{
"agent_id": "01916a3e-...",
"agent_name": "sales-agent",
"events": 12500,
"denied_requests": 34,
"error_rate": 0.015,
"p99_latency_ms": 289.0
}
]Get Top Hosts
GET /v1/dashboard/hostsAuth: JWT (viewer+)
| Parameter | Type | Required | Description |
|---|---|---|---|
hours | integer | No | Lookback window (default 24, max 720). |
limit | integer | No | Number of hosts to return (default 10, max 50). |
bash
curl "https://api.checkrd.io/v1/dashboard/hosts?hours=24&limit=5" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"Response 200 OK
json
[
{ "host": "api.salesforce.com", "request_count": 8420, "error_rate": 0.012 },
{ "host": "api.stripe.com", "request_count": 3100, "error_rate": 0.005 },
{ "host": "api.openai.com", "request_count": 2800, "error_rate": 0.031 }
]Get Timeseries
GET /v1/dashboard/timeseriesAuth: JWT (viewer+)
| Parameter | Type | Required | Description |
|---|---|---|---|
hours | integer | No | Lookback window (default 24, max 720). |
bash
curl "https://api.checkrd.io/v1/dashboard/timeseries?hours=24" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"Response 200 OK
json
[
{
"timestamp": "2026-04-12T08:00:00Z",
"bucket_width_seconds": 3600,
"events": 1250,
"errors": 15,
"denied": 8
}
]List Events
GET /v1/dashboard/eventsAuth: JWT (viewer+)
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Results per page (default 20, max 100). |
cursor | string | No | Opaque pagination cursor. |
agent_id | UUID | No | Filter by agent. |
method | string | No | Filter by HTTP method. |
host | string | No | Filter by target host. |
status_code | integer | No | Filter by response status code. |
policy_result | string | No | Filter by allowed, denied, or error. |
from | ISO 8601 | No | Start of time range. |
to | ISO 8601 | No | End of time range. |
trace_id | string | No | Filter by W3C trace ID (32 hex chars). |
bash
curl "https://api.checkrd.io/v1/dashboard/events?agent_id=01916a3e-...&policy_result=denied&limit=10" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"Response 200 OK
json
{
"data": [
{
"request_id": "req_abc123",
"agent_id": "01916a3e-...",
"timestamp": "2026-04-12T09:15:00Z",
"method": "DELETE",
"host": "api.stripe.com",
"path": "/v1/customers/{id}",
"status_code": null,
"latency_ms": null,
"policy_result": "denied",
"deny_reason": "block-all-deletes"
}
],
"has_more": false,
"next_cursor": null
}Denied requests have null for status_code and latency_ms because the request was blocked before reaching the external API.