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