Basic Notify/Watch/Replay
Uses the shared generic schema from Practical Examples.
This page is the quickest way to understand the normal API flow.
You first publish (notify), then observe live updates (watch), then read
history (replay).
If you are onboarding a new environment, start here before trying filters or
admin operations.
Read the examples in order.
1) Notify
Notify requires every identifier key declared in the schema. The required flag
has no effect on notify (every key must be present and every value must pass
handler validation); it only affects watch and replay, where keys marked
required: false may be omitted and are treated as wildcards. The shared schema
declares five keys (region, run_time, severity, anomaly, polygon),
so all five appear below.
curl -sS -X POST "http://127.0.0.1:8000/api/v1/notification" \
-H "Content-Type: application/json" \
-d '{
"event_type":"extreme_event",
"identifier":{
"region":"north",
"run_time":"1200",
"severity":"4",
"anomaly":"42.5",
"polygon":[[52.5,13.4],[52.6,13.5],[52.5,13.6],[52.4,13.5],[52.5,13.4]]
},
"payload":{"note":"initial forecast"}
}'
Expected: HTTP 200. Omitting any of the five identifier keys returns 400
with code: INVALID_NOTIFICATION_REQUEST.
2) Watch (Live Only)
curl -N -X POST "http://127.0.0.1:8000/api/v1/watch" \
-H "Content-Type: application/json" \
-d '{
"event_type":"extreme_event",
"identifier":{
"region":"north",
"run_time":"1200",
"severity":"4",
"anomaly":"42.5"
}
}'
Expected:
- HTTP
200 - SSE starts with
connection_established - only new matching notifications arrive
3) Replay (Historical)
curl -N -X POST "http://127.0.0.1:8000/api/v1/replay" \
-H "Content-Type: application/json" \
-d '{
"event_type":"extreme_event",
"identifier":{
"region":"north",
"run_time":"1200",
"severity":"4",
"anomaly":"42.5"
},
"from_id":"1"
}'
Expected:
- HTTP
200 - SSE emits
replay_started, replay events,replay_completed, then closes