API reference
River gauges
Water level readings and BoM flood classifications from state water monitoring networks. Base URL https://emergencyapi.com/api/v1.
/gaugesRiver 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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
variable | query | No | string | Measured variable. Defaults to water_level; rainfall returns observed rain gauges (millimetres, incremental, no flood class). |
state | query | No | string | Lowercase state code (nsw, vic, qld, sa, wa, tas, nt, act) |
floodClass | query | No | string | Filter to gauges at or above this class (>= semantics: minor matches moderate and major too). Water-level only; cannot combine with variable=rainfall. |
lga | query | No | string | ABS LGA code (the same LGA_2022 vocabulary as the declarations API) |
source | query | No | string | Polling source (hydstra-nsw, hydstra-vic, hydstra-qld, aquarius-sa, aquarius-tas, aquarius-nt, bom-kiwis, bcc-telemetry) |
bbox | query | No | string | Bounding box minLng,minLat,maxLng,maxLat (within Australia) |
limit | query | No | integer | Max results per page (1-500, default 100) |
cursor | query | No | string | Pagination cursor from meta.nextCursor |
Responses
| Status | Description |
|---|---|
200 | Gauge stations with latest readings and flood status |
401 | Missing or invalid API key |
curl "https://emergencyapi.com/api/v1/gauges?state=nsw&lga=17750" \ -H "Authorization: Bearer YOUR_API_KEY"
/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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | Yes | string | Gauge id from /gauges (e.g. hydstra-nsw-410001) |
Responses
| Status | Description |
|---|---|
200 | The gauge and its recent readings |
404 | No active gauge with that id |
curl "https://emergencyapi.com/api/v1/gauges/{id}" \
-H "Authorization: Bearer YOUR_API_KEY"/gauges/{id}/readingsGauge 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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | Yes | string | |
after | query | No | string | Start of range (ISO 8601, inclusive). Tier-limited. |
before | query | No | string | End of range (ISO 8601, exclusive). Defaults to now. |
interval | query | No | string | raw, hourly, daily, or auto (default) |
above | query | No | string | Only readings at/above this published flood classification for the gauge |
limit | query | No | integer | |
cursor | query | No | string | Pagination cursor from meta.nextCursor (ISO timestamp keyset) |
Responses
| Status | Description |
|---|---|
200 | Readings for the gauge, newest first |
403 | Free tier blocked or depth limit exceeded |
curl "https://emergencyapi.com/api/v1/gauges/{id}/readings" \
-H "Authorization: Bearer YOUR_API_KEY"/gauges/summaryFlood 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
| Name | In | Required | Type | Description |
|---|---|---|---|---|
variable | query | No | string | Measured variable. Defaults to water_level (rain gauges carry no flood class, so they are excluded from the counts by default). |
groupBy | query | No | string | state (default) or lga (requires the state parameter) |
state | query | No | string |
Responses
| Status | Description |
|---|---|
200 | Flood status summary |
curl "https://emergencyapi.com/api/v1/gauges/summary?state=sa" \ -H "Authorization: Bearer YOUR_API_KEY"