API reference

River gauges

Water level readings and BoM flood classifications from state water monitoring networks. Base URL https://emergencyapi.com/api/v1.

GET/gauges

River gauge stations with live flood status

Returns river gauge stations with their latest water level, the Bureau of Meteorology flood classification thresholds for each gauge, and a derived floodClass (below_minor, minor, moderate, major, or unclassified) computed from the latest reading against the published thresholds. Water-level readings are in metres relative to each gauge's local datum (each gauge carries its own unit, since some report in AHD). readingStatus flags stale data (bom-kiwis sourced stations are a 1-2 day archive, stale horizon 72 hours; bcc-telemetry are event-driven council ALERT loggers, stale horizon 48 hours; telemetry sources 24 hours). Defaults to water-level gauges; pass variable=rainfall for observed rainfall gauges, which report incremental millimetres and carry no flood classification. Status reporting, not flood prediction.

Parameters

NameInRequiredTypeDescription
variablequeryNostringMeasured variable. Defaults to water_level; rainfall returns observed rain gauges (millimetres, incremental, no flood class).
statequeryNostringLowercase state code (nsw, vic, qld, sa, wa, tas, nt, act)
floodClassqueryNostringFilter to gauges at or above this class (>= semantics: minor matches moderate and major too). Water-level only; cannot combine with variable=rainfall.
lgaqueryNostringABS LGA code (the same LGA_2022 vocabulary as the declarations API)
sourcequeryNostringPolling source (hydstra-nsw, hydstra-vic, hydstra-qld, aquarius-sa, aquarius-tas, aquarius-nt, bom-kiwis, bcc-telemetry)
bboxqueryNostringBounding box minLng,minLat,maxLng,maxLat (within Australia)
limitqueryNointegerMax results per page (1-500, default 100)
cursorqueryNostringPagination cursor from meta.nextCursor

Responses

StatusDescription
200Gauge stations with latest readings and flood status
401Missing or invalid API key
Request
curl "https://emergencyapi.com/api/v1/gauges?state=nsw&lga=17750" \
  -H "Authorization: Bearer YOUR_API_KEY"
GET/gauges/{id}

One gauge with a 6-hour recent window

Returns a single gauge station plus its trailing 6 hours of raw readings (enough to see the current trend). Deeper history is the tier-gated /gauges/{id}/readings endpoint.

Parameters

NameInRequiredTypeDescription
idpathYesstringGauge id from /gauges (e.g. hydstra-nsw-410001)

Responses

StatusDescription
200The gauge and its recent readings
404No active gauge with that id
Request
curl "https://emergencyapi.com/api/v1/gauges/{id}" \
  -H "Authorization: Bearer YOUR_API_KEY"
GET/gauges/{id}/readings

Gauge reading history (paid tier)

Historical water level readings for one gauge. Free tier is blocked (the free surface is current readings on /gauges and the 6-hour window on /gauges/{id}). Starter tier limited to 1 year lookback, Developer and Business to 5 years, Pro and Enterprise unlimited. Retention ladder: raw 30 days, hourly rollups 90 days, daily forever — plus full-resolution raw inside flood-event windows kept forever. interval=auto picks the finest granularity available for the requested window.

Parameters

NameInRequiredTypeDescription
idpathYesstring
afterqueryNostringStart of range (ISO 8601, inclusive). Tier-limited.
beforequeryNostringEnd of range (ISO 8601, exclusive). Defaults to now.
intervalqueryNostringraw, hourly, daily, or auto (default)
abovequeryNostringOnly readings at/above this published flood classification for the gauge
limitqueryNointeger
cursorqueryNostringPagination cursor from meta.nextCursor (ISO timestamp keyset)

Responses

StatusDescription
200Readings for the gauge, newest first
403Free tier blocked or depth limit exceeded
Request
curl "https://emergencyapi.com/api/v1/gauges/{id}/readings" \
  -H "Authorization: Bearer YOUR_API_KEY"
GET/gauges/summary

Flood status counts by state or LGA

Counts of gauges at or above minor/moderate/major flood classification, grouped by state or LGA, plus the full list of at-or-above-minor stations (capped at 500). STALE GUARD: only readings within the staleness horizon enter class counts — a days-old reading above minor is counted as stale, never as a current flood signal.

Parameters

NameInRequiredTypeDescription
variablequeryNostringMeasured variable. Defaults to water_level (rain gauges carry no flood class, so they are excluded from the counts by default).
groupByqueryNostringstate (default) or lga (requires the state parameter)
statequeryNostring

Responses

StatusDescription
200Flood status summary
Request
curl "https://emergencyapi.com/api/v1/gauges/summary?state=sa" \
  -H "Authorization: Bearer YOUR_API_KEY"