Incidents
Occupancy incidents are mirrored from Spark devices into EASI 4.0. Query the fleet as a whole — you usually know when something happened, not which device saw it.
List
GET /v1.0/incidents/
Newest first. Response shape:
{
"incidents": [ { "id": "…", "spark_id": "…", "is_open": true, … } ],
"total_count": 120,
"page": 1,
"per_page": 50
}
Query parameters
| Name | Meaning |
|---|---|
spark_id |
Limit to one device UUID |
camera_id, zone_id |
Device-local camera / zone integers |
object_label |
Detected class label (for example person) |
open |
true for ongoing incidents, false for ended ones |
started_after, started_before |
ISO-8601 datetimes |
page, per_page |
Pagination; per_page max 200 |
Filter catalog
GET /v1.0/incidents/filters/
Returns the cameras, zones, devices, and labels that actually appear in your incident rows — useful for building dropdowns without offering empty choices.
Camera and zone names are snapshotted at detection time. A later rename does
not rewrite history.
Statistics
GET /v1.0/stats/incidents/
Pre-rolled occupancy counts for charts. Do not scan the incident list to draw a trend — this endpoint already sums hour and day buckets.
| Name | Meaning |
|---|---|
interval |
hour, day, or month. Defaults from the window length. |
start, end |
ISO-8601 window. Defaults to the last 7 days. |
spark_id, camera_id, zone_id, object_label |
Same filters as the incident list |
open_count_live is the only live figure (intervals still in
progress). Everything else is as of the newest rollup bucket in
as_of.