API reference
Overview
Today's figures for the home screen.
GET /v1/overview
The figures the dashboard's Overview screen shows. "Today" starts at midnight in the time zone you pass.
Query parameters
| Name | Type | Meaning |
|---|---|---|
tz | string | An IANA time zone such as Africa/Accra or Europe/London. Defaults to UTC. An unknown zone returns 400. |
Example
Terminal
curl "$SENTINEL_URL/v1/overview?tz=Africa/Accra" -H "Authorization: Bearer $SENTINEL_KEY"
Response · 200
{
"since": "2026-10-16T00:00:00Z",
"events_today": 1204882,
"events_week_ago": 1136680,
"p99_decision_ms": 184,
"blocked_today": 312,
"reviewed_today": 1288,
"open_alerts": 38,
"near_sla": 3,
"overdue": 2,
"pending_closure": 1,
"velocity": "redis",
"hourly": [
{
"hour": "2026-10-15T15:00:00Z",
"events": 88000,
"alerts": 3
}
],
"top_rules": [
{
"rule": "structuring_below_threshold",
"alerts": 96,
"confirmed": 22
}
]
}
hourly has 24 entries, oldest first. The example shows one.
Fields
| Field | Type | Meaning |
|---|---|---|
since | string, date-time | Start of today |
events_today | integer | Events received since since |
events_week_ago | integer | Events on the same day last week, up to the same time of day |
p99_decision_ms | number | 99th percentile of decision time today. Absent until today has a timed decision. |
blocked_today, reviewed_today | integer | Decisions of each kind today |
open_alerts | integer | Alerts that are open or in_review |
near_sla | integer | Open alerts due within the next hour |
overdue | integer | Open alerts past their due_at |
pending_closure | integer | Alerts waiting for a second person to approve closure |
hourly | array | Events and new alerts per hour, for the last 24 hours |
top_rules | array | The five rules behind the most alerts in the last 7 days. confirmed counts those alerts closed as escalated or reported. |
velocity | string | Where velocity counters come from: redis, or postgres when Redis isn't configured |
Decision time is measured from receiving the event to storing the decision. Decisions made before it was recorded aren't counted.