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.