Analytics
Query monitoring performance for a team, project, or endpoint.
Analytics routes require analytics:read.
Routes
| Method and URL | Result |
|---|---|
GET /api/public/v2/analytics | Team totals, health, series, and project comparison. |
GET /api/public/v2/projects/:projectID/analytics | Project totals, series, incidents, and endpoint comparison. |
GET /api/public/v2/endpoints/:endpointID/analytics | Endpoint totals, current state, incidents, and series. |
These requests have no payload.
Select a time range
Use one preset window:
1h6h24h7d30d90d
The default is 24h. You can replace window with both from and to as RFC 3339 timestamps.
buckets accepts 1 through 200. The default is 48.
curl \
-H "Authorization: Bearer $SIFTR_DEVELOPER_TOKEN" \
"https://siftr-backend.jdqc.dev/api/public/v2/analytics?window=7d&buckets=84"Scheduled, unsuppressed checks contribute to analytics. Manual checks do not change the aggregates.
Stazus calculates p95 latency from at most the 10,000 most recent successful, scheduled, unsuppressed checks in the selected range. Counts, uptime, average, minimum, and maximum use all applicable checks in the range.
Team response
{
"data": {
"team_id": 7,
"window": {
"from": "2026-08-22T09:00:00Z",
"to": "2026-08-23T09:00:00Z",
"bucket_seconds": 1800
},
"health": {
"enabled_endpoints": 12,
"healthy_endpoints": 10,
"failing_endpoints": 1,
"unchecked_endpoints": 1
},
"totals": {
"checks": 17280,
"failures": 7,
"uptime_percent": 99.9595,
"avg_latency_ms": 142.7,
"min_latency_ms": 61,
"max_latency_ms": 2104,
"p95_latency_ms": 311
},
"incidents": {
"total": 2,
"open": 1
},
"series": [
{
"bucket_start": "2026-08-22T09:00:00Z",
"checks": 360,
"failures": 0,
"uptime_percent": 100,
"avg_latency_ms": 138.2
}
],
"projects": []
}
}uptime_percent and latency values are null when the selected range has no applicable checks. Treat null as no data, not zero.
Project response
Project analytics uses the same window, totals, incidents, and series fields. It also returns an endpoints comparison array.
Each endpoint row contains:
endpoint_idnameenabledchecksfailuresuptime_percentavg_latency_msuplast_check_at
Endpoint response
Endpoint analytics uses the same aggregate fields. It also returns current:
{
"up": true,
"last_check_at": "2026-08-23T08:59:00Z",
"last_status_code": 200,
"last_latency_ms": 119,
"consecutive_failures": 0
}Last updated on