gwrc-hilltop-nz · git:20260722.b372689 · 2026-07-22 · sha256 503ad1365c2db228
gwrc-hilltop-nz git:20260722.b372689A
Immutable. This exact content never changes and is served at /api/v1/blob/503ad1365c2db228.
--- name: gwrc-hilltop-nz description: "Query Greater Wellington Regional Council Hilltop environmental monitoring time series through a lightweight no-login CLI: rainfall gauges, river and stream levels and flows, monitoring site lists with coordinates, and per-site measurement catalogues. Use when the task involves Wellington-region rainfall totals, current river levels, flood-watch context, or Hilltop time-series data. Read-only; no authentication required." license: MIT compatibility: "Requires Python 3.10+ and network access for live data" metadata: thecolab.category: "environment" thecolab.source_owner: "Greater Wellington Regional Council" thecolab.source_type: "official" thecolab.auth: "none" thecolab.access_mode: "public-api" thecolab.data_class: "public" thecolab.writes: "false" thecolab.browser: "false" thecolab.risk: "low" thecolab.cache_ttl: "24h" thecolab.schema_version: "1" thecolab.skill_type: "public-api" thecolab.pack: "nz-public-data" thecolab.source_url: "https://hilltop.gw.govt.nz/data.hts" thecolab.allowed_domains: "hilltop.gw.govt.nz,data.hbrc.govt.nz,hydro.marlborough.govt.nz,hilltop.nrc.govt.nz,envdata.tasman.govt.nz" thecolab.last_verified: "2026-07-22" thecolab.health: "healthy" thecolab.maintainer: "@adam91holt" --- # GWRC Hilltop NZ ## Goal Query Greater Wellington Regional Council's public Hilltop environmental monitoring server for rainfall gauge totals and river/stream levels and flows — the core severe-weather situational data for the Wellington region — through a deterministic read-only CLI with human and JSON output. ## Use this when - A task needs current or recent Wellington-region river or stream levels/flows - A task needs rainfall totals across the region's gauges over a recent window - A task needs GWRC monitoring site locations or the measurements a site offers - A workflow needs machine-readable Hilltop time-series data from a verified council server in the built-in registry; GWRC is the default ## Do not use this for - Official flood or severe weather warnings — gauge data is raw and provisional; warnings come from MetService and civil defence channels - River water quality (use `lawa-nz`), tides (use `nz-tides-surf`), or forecasts - Any write, subscription, or alerting action ## Commands ```bash python3 skills/gwrc-hilltop-nz/scripts/cli.py sites --search "hutt river" --limit 10 python3 skills/gwrc-hilltop-nz/scripts/cli.py sites --measurement Flow --json python3 skills/gwrc-hilltop-nz/scripts/cli.py measurements --site "Hutt River at Taita Gorge" python3 skills/gwrc-hilltop-nz/scripts/cli.py latest --site "Hutt River at Taita Gorge" --measurement Flow --json python3 skills/gwrc-hilltop-nz/scripts/cli.py rainfall --hours 24 --limit 20 --json python3 skills/gwrc-hilltop-nz/scripts/cli.py rivers --hours 24 --search hutt --json python3 skills/gwrc-hilltop-nz/scripts/cli.py collections ``` - `sites [--measurement NAME] [--search TEXT] [--limit N] [--json]` — monitoring sites with lat/long - `measurements --site NAME [--json]` — data sources, labels, copy-pastable `request as` names, units, and date spans at one site - `latest --site NAME --measurement NAME [--exact-request-as] [--window-hours N] [--json]` — most recent observation; a plain label resolves to the freshest matching series. Use `--exact-request-as` to force literal `request as` selection when a value such as `Stage` also collides with a display label. - `rainfall [--hours N] [--search TEXT] [--limit N] [--json]` — per-gauge totals over the window, wettest first - `rivers [--hours N] [--search TEXT] [--limit N] [--json]` — latest level/flow per site with min/max and rising/falling/steady trend - `collections [--json]` — Hilltop collection names - `councils [--json]` — verified council Hilltop servers in the registry All data commands accept `--council gwrc|hbrc|marlborough|northland|tasman`. Arbitrary endpoints are deliberately rejected; new official council servers must be verified and added to the registry and declared-domain metadata. Collection names differ per council: `rainfall`/`rivers` default to GWRC's collections — for another council run `collections --council <key>` and pass `--collection NAME`. ## Notes - No API key or login. Data is CC BY 4.0 — attribute "Greater Wellington Regional Council". - Gauges log every ~5–15 minutes but upload every 2–3 hours: treat "latest" as up to a few hours behind reality, and never as a substitute for official warnings. - Timestamps are NZ local time exactly as published by the server. - Sites can expose duplicate labels such as `Stage` under multiple data sources. `measurements` prints each exact `request as` value; `latest --measurement Stage` selects the matching series with the newest advertised `to` timestamp and reports both `requested_measurement` and `resolved_measurement` in JSON. Add `--exact-request-as` to select a literal `request as` value when it also matches a display label. - `rainfall` and `rivers` exclude decommissioned gauges that still answer with years-old data, and report how many were excluded; `latest` flags such readings with `stale: true` and their age in hours. - Keep windows narrow (`--hours` defaults to 24, max 168) — collection queries fan out across ~100 sites server-side. ## Resources - CLI entrypoint: `scripts/cli.py` - Contract test: `scripts/test_contract.py`; smoke test: `scripts/smoke_test.py` - Endpoint discovery, latency, and licence detail: `references/source-notes.md`