Documentation
Incident Analysis
Analyze newsFlash incidents for a specific city. For each newsFlash wave, this endpoint determines whether a real alert followed within a configurable timeout window - and whether an endAlert was received. Useful for measuring false-alarm rates and understanding alert patterns per city.
Returns a list of newsFlash incidents with real-alert correlation and a summary breakdown
Query Parameters
| Parameter | Type | Description | Default | Required |
|---|---|---|---|---|
| city | string | City name to analyze incidents for | - | yes |
| startDate | ISO 8601 | Filter incidents from this date onwards | all time | no |
| endDate | ISO 8601 | Filter incidents until this date | now | no |
| origin | string | Filter by alert origin(s), comma-separated (e.g. gaza,lebanon) | all origins | no |
| timeoutMinutes | integer | Max minutes after a newsFlash before considering the incident timed-out (1-60) | 30 | no |
| sort | enum | Sort field for the incident list | timestamp | no |
| order | enum | Sort direction: asc or desc | desc | no |
How It Works
The endpoint groups consecutive alerts into waves a burst of the same alert type within 2 minutes is collapsed into one wave. Each newsFlash wave is then checked for:
Real Alert - Was there a non-newsFlash, non-endAlert wave (e.g. missiles, drones) starting within the timeoutMinutes window after the newsFlash?
End Alert - Was there an endAlert wave within the timeout window? If not, the incident is marked as timedOut.
Example Requests
All incidents for a specific city
1GET https://sirenapi.orielhaim.com/stats/incidents?city=אשקלון
Response Structure
Summary
| Field | Type | Description |
|---|---|---|
| summary.totalNewsFlash | number | Total number of newsFlash incidents in the range |
| summary.withRealAlerts | number | Incidents that were followed by a real alert (missile, drone, etc.) |
| summary.withoutRealAlerts | number | Incidents with newsFlash only - no real alert followed |
| summary.realAlertRate | number | Percentage of newsFlash events that had a real alert (0-100, 2 decimal places) |
Incident List
| Field | Type | Description |
|---|---|---|
| data[].waveId | number | Unique wave identifier for this newsFlash incident |
| data[].waveStartTime | string | Timestamp when the newsFlash wave started |
| data[].waveEndTime | string | null | Timestamp of the endAlert, or null if timed out |
| data[].hadRealAlert | boolean | Whether a real alert (missile, drone, etc.) followed within the timeout window |
| data[].realAlertType | string | null | Type of the real alert if one occurred (e.g. missiles, drones) |
| data[].realAlertTime | string | null | Timestamp of the first real alert after the newsFlash |
| data[].timedOut | boolean | True if no endAlert was received within the timeout window |
Example Responses
GET https://sirenapi.orielhaim.com/stats/incidents?city=אשקלון
1{2 "summary": {3 "totalNewsFlash": 142,4 "withRealAlerts": 98,5 "withoutRealAlerts": 44,6 "realAlertRate": 69.017 },8 "data": [9 {10 "waveId": 312,11 "waveStartTime": "2024-12-15T14:32:00Z",12 "waveEndTime": "2024-12-15T14:45:00Z",13 "hadRealAlert": true,14 "realAlertType": "missiles",15 "realAlertTime": "2024-12-15T14:34:12Z",16 "timedOut": false17 },18 {19 "waveId": 308,20 "waveStartTime": "2024-12-14T09:10:00Z",21 "waveEndTime": null,22 "hadRealAlert": false,23 "realAlertType": null,24 "realAlertTime": null,25 "timedOut": true26 }27 ]28}