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.

GEThttps://sirenapi.orielhaim.com/stats/incidents

Returns a list of newsFlash incidents with real-alert correlation and a summary breakdown

Query Parameters

ParameterTypeDescriptionDefaultRequired
citystringCity name to analyze incidents for-yes
startDateISO 8601Filter incidents from this date onwardsall timeno
endDateISO 8601Filter incidents until this datenowno
originstringFilter by alert origin(s), comma-separated (e.g. gaza,lebanon)all originsno
timeoutMinutesintegerMax minutes after a newsFlash before considering the incident timed-out (1-60)30no
sortenumSort field for the incident listtimestampno
orderenumSort direction: asc or descdescno

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

bash
1GET https://sirenapi.orielhaim.com/stats/incidents?city=אשקלון

Response Structure

Summary

FieldTypeDescription
summary.totalNewsFlashnumberTotal number of newsFlash incidents in the range
summary.withRealAlertsnumberIncidents that were followed by a real alert (missile, drone, etc.)
summary.withoutRealAlertsnumberIncidents with newsFlash only - no real alert followed
summary.realAlertRatenumberPercentage of newsFlash events that had a real alert (0-100, 2 decimal places)

Incident List

FieldTypeDescription
data[].waveIdnumberUnique wave identifier for this newsFlash incident
data[].waveStartTimestringTimestamp when the newsFlash wave started
data[].waveEndTimestring | nullTimestamp of the endAlert, or null if timed out
data[].hadRealAlertbooleanWhether a real alert (missile, drone, etc.) followed within the timeout window
data[].realAlertTypestring | nullType of the real alert if one occurred (e.g. missiles, drones)
data[].realAlertTimestring | nullTimestamp of the first real alert after the newsFlash
data[].timedOutbooleanTrue if no endAlert was received within the timeout window

Example Responses

GET https://sirenapi.orielhaim.com/stats/incidents?city=אשקלון

json
1{
2 "summary": {
3 "totalNewsFlash": 142,
4 "withRealAlerts": 98,
5 "withoutRealAlerts": 44,
6 "realAlertRate": 69.01
7 },
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": false
17 },
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": true
26 }
27 ]
28}