git:20261008.c801bf3 to git:20261008.b380d3c

3 added, 0 removed. Audit A to A.

---
name: fenz-incidents-nz
description: "Query official Fire and Emergency New Zealand operational reports and annual incident datasets by place, type and period."
license: MIT
compatibility: "Requires Python 3.10+ and network access for live data"
metadata:
thecolab.category: "emergency"
thecolab.source_owner: "Fire and Emergency New Zealand"
thecolab.source_type: "official"
thecolab.auth: "none"
thecolab.access_mode: "html-readonly"
thecolab.data_class: "public"
thecolab.writes: "false"
thecolab.browser: "false"
thecolab.risk: "medium"
thecolab.cache_ttl: "24h"
thecolab.schema_version: "1"
thecolab.skill_type: "html-readonly"
thecolab.pack: "nz-public-data"
thecolab.source_url: "https://www.fireandemergency.nz/incidents-and-news/incident-reports/"
thecolab.allowed_domains: "www.fireandemergency.nz"
thecolab.last_verified: "2026-10-08"
thecolab.health: "healthy"
thecolab.maintainer: "@adam91holt"
---
# FENZ Incidents NZ
Use the read-only Python CLI to retrieve and filter records exposed by the official first-party source.
Every command supports `--json`, bounded requests, stable exit codes, source URLs and retrieval timestamps.
## Commands
```bash
# list recent incident resources
python3 scripts/cli.py recent --json
# search incident resources
python3 scripts/cli.py search QUERY --json
# filter by region
python3 scripts/cli.py region NAME --json
# filter by incident type
python3 scripts/cli.py type NAME --json
# find an incident identifier
python3 scripts/cli.py incident ID --json
# discover annual statistical data
python3 scripts/cli.py annual --year VALUE --json
# discover regional trend resources
python3 scripts/cli.py trend --region VALUE --json
```
Add `--limit N` (1–100) to bound any command. Human output is the default.
Operational commands default to **yesterday in Pacific/Auckland**, across North, Central and
South. Use `--day Wednesday` to choose a published weekday from the rolling seven-day archive,
and `--report-region north|central|south|all` to bound requests. FENZ requires both `day` and
numeric `region` URL parameters; the unparameterised incidents URL is not a feed.
If `--day` is today's NZ weekday, the source returns today's **partial** feed, not last week's.
Blank optional fields are retained with `incomplete_fields`; only incident number and time are required.
An upstream/schema failure in any requested region fails the whole command (no partial result).
Results are sorted newest first within the selected day. `region NAME` filters published
locations; `--report-region` selects FENZ's broad operational region.
+ For Auckland, use `region Auckland --report-region north --json` to bound retrieval to the
+ published North report. `meta.report_day` and `meta.report_regions` record the requested slice.
## Coverage and interpretation
- Do not expose details beyond those FENZ publishes.
- Preliminary operational labels are not final classifications.
- Absence from the public feed does not prove no incident occurred.
- No notification or dispatch function is provided.
- FENZ says this ICAD extract is incomplete and unsuitable for statistical analysis; use annual
datasets for statistics. A selected day is not an exhaustive search of the seven-day archive.
- Direct requests can be blocked by Incapsula. A blocked response is reported explicitly and
cannot count as a successful live assertion.
- JSON uses `meta` provenance and a `results` array; errors add `error: {code, type, message}`.
- JSON envelopes and records carry `source_url`, `publisher`, `licence`, `retrieved_at`, and
source-stated `latest_data`. Website material defaults to CC BY-NC-ND 4.0; check dataset terms.
The CLI parses FENZ's labelled seven-day incident records and marks them preliminary. `annual`
discovers an official financial-year download and aggregates its tab-delimited exposure rows by
regional council and incident type. `trend` applies the same aggregation across published years.
Every annual result retains dataset URL, metadata context, financial year and row-unit caveats.
## Resources
- `scripts/cli.py` — canonical command entrypoint
- `scripts/test_contract.py` — deterministic repository contract audit
- `scripts/smoke_test.py` — parser fixture and bounded live probe
- `tests/fixtures/incidents.html`, `annual-resources.html` and `annual.tsv` — source fixtures
- `tests/fixtures/incomplete-synthetic.html` — synthetic blank-Location regression shaped like F4557313
+ - `tests/fixtures/auckland-synthetic.html` — synthetic Auckland filter and report-scope regression
- `tests/fixtures/incidents-live-visible.txt` — two real published records, captured as visible
text; `blocked-live.html` — the direct HTTP challenge response
- `references/source-profile.json` — command schema, source allowlist and warnings
- `references/source-notes.md` — feasibility, provenance and source limits