NZ Address Geocode + Fault Lookup (LINZ/GEM) avatar

NZ Address Geocode + Fault Lookup (LINZ/GEM)

Under maintenance

Pricing

from $0.10 / 1,000 geocode results

Go to Apify Store
NZ Address Geocode + Fault Lookup (LINZ/GEM)

NZ Address Geocode + Fault Lookup (LINZ/GEM)

Under maintenance

One call, JSON out. Geocode messy NZ addresses, attach the nearest active fault, run lists in bulk. Linear LINZ geocoding under the hood, GEM fault lookup attached when you ask for it. No glue code, no manual suburb disambiguation, no licence archaeology.

Pricing

from $0.10 / 1,000 geocode results

Rating

0.0

(0)

Developer

Josh Chamberlin

Josh Chamberlin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

NZ Property & Address Master

Geocode messy NZ addresses and bundle property-level context — including nearest active fault — into a single normalised JSON snapshot.

Public-data Actor for the New Zealand property stack. Single call, JSON out, attribution strings included in every result.

What it does

Three operations:

OperationInputOutput
geocodemessy NZ address stringcanonical address + lat/lon + territorial authority + confidence
snapshotaddress or parcel_idgeocode + nearest active fault (name, slip type, distance)
bulklist of addresseslist of geocodes (fast path, no hazards)

Geocode quality

The geocoder returns a match_status so you know what you're getting:

  • exact — input substring of LINZ canonical (capped confidence 0.99)
  • partial — leading number match (capped confidence 0.94)
  • fuzzy — token AND with anchor-gated fallback (capped confidence 0.6)
  • no_match — refuses rather than confidently returns a wrong address

Conservative on purpose: a "no_match" beat a confidently-wrong Napier coords for "327 Bluff Road, Bluff".

Hazards overlay (snapshot only)

For each geocoded property, the Actor computes the haversine distance to the nearest known active fault trace from the GEM Foundation Global Active Faults Database. Returns:

  • Fault name (e.g. "Wellington-Hutt Valley 4")
  • Catalog ID (e.g. NZ_291)
  • Slip type (e.g. "Dextral-Normal")
  • Distance in kilometres
  • Full CC BY-SA 4.0 attribution strings (Styron & Pagani 2020, Litchfield et al. 2014 NZ component)

Search radius configurable via fault_search_km (default 100 km, max 1000 km). Set include_hazards: false to skip the GEM lookup on a hot path.

Data sources (free + official)

All sources are New Zealand public data with permissive licences:

  • LINZ Data Service — Street Address dataset (layer 123113), NZ Property Titles (layer 50804). CC BY 4.0, attribution required. LINZ-API key required as Actor secret.
  • GEM Foundation Global Active Faults Database — GeoJSON download, NZ traces from Litchfield et al. 2014. CC BY-SA 4.0, attribution strings included in every output row.

The Actor does not scrape, does not access paywalled data, does not store customer input.

Sample request / response

Input

{
"operation": "snapshot",
"address": "1 Molesworth Street, Wellington, 6011",
"include_hazards": true,
"fault_search_km": 100
}

Output (one row)

{
"input_address": "1 Molesworth Street, Wellington, 6011",
"canonical_address": "101 Molesworth Street, Thorndon, Wellington",
"lat": "-41.2740910167",
"lon": "174.77771315",
"match_status": "partial",
"ta": "Wellington City",
"region": "Wellington",
"confidence": "0.73",
"source": "LINZ",
"attribution": "Contains data sourced from Land Information New Zealand under Creative Commons Attribution 4.0 International (CC BY 4.0).",
"nearest_fault_name": "Wellington Hutt Valley 4",
"nearest_fault_catalog_id": "NZ_291",
"nearest_fault_slip_type": "Dextral-Normal",
"nearest_fault_distance_km": "0.057",
"nearest_fault_source": "GEM Global Active Faults Database (CC BY-SA 4.0)",
"hazards_attribution_primary": "GEM Foundation Global Active Faults Database (CC BY-SA 4.0), doi:10.1177/8755293020944182",
"hazards_attribution_nz": "NZ traces: Litchfield et al. 2014, doi:10.1080/00288306.2013.854256"
}

Pricing

Per-result via Apify Pay-Per-Event. Head-on price comparison with Google:

OperationThis ActorGoogle directNotes
Single geocode$0.0001 / result ($0.10/1k)Geocoding API: $5/1k. Address Validation: ~$8–10/1k50× below Google's direct API; ~7× below OSM-backed alternatives
Address + nearest fault + canonical + attribution$0.015 / result ($15/1k)$5 + separate fault lookup = much moreBundle is the value; one call replaces three
Bulk (geocode only)$0.0005 / result ($0.50/1k)Maps Batch Geocoding: $10/1kBulk skips hazards for cost reasons

Subscriptions are not offered yet — Apify is retiring the rental model on 2026-10-01 and Apify Pay-Per-Event is now the only path. Re-evaluate after first paid month.

Configuration

Required: LINZ_API_KEY set as a secret environment variable on the Actor. Free at https://data.linz.govt.nz/.

The GEM data is downloaded at Actor startup and cached to /tmp for 14 days. No second API key required.

Local dev

# One-time setup
cd actors/nz-property-master
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
# Run locally (no Apify infrastructure)
cp .env.example .env # fill in LINZ_API_KEY
APIFY_LOCAL=true python -m src.main --input '{"address": "1 Molesworth Street, Wellington, 6011"}'

Tests

source .venv/bin/activate
python -m pytest tests/ -v # 33/33 passing locally

The test suite covers geocoder match classification, anchor extraction, GNS/GEM cache hit/miss expiry, haversine + cross-track distance math, and Pydantic model round-trip.

Compliance

  • Public data only — LINZ (CC BY 4.0) + GEM Global Active Faults Database (CC BY-SA 4.0)
  • No PII collected, no third-party scraping, no auth-walled data
  • Attribution strings included in every output row
  • ~10 requests/sec sustained — bulk jobs throttle automatically

Changelog

  • 0.10.21 — Hazards overlay (GEM Global Active Faults) wired into snapshot operation. Attribution strings included. 33/33 pytest passing.
  • 0.10.18 — Geocoder fixes: anchor-gated fuzzy, match_status field, conservative no_match. False-positive regression tests added.
  • 0.10.17 — Real LINZ WFS integration, three-strategy matcher.
  • 0.10.16 — Phase 1 complete: stub geocode + snapshot + bulk operations.
  • 0.11 (planned) — Listing copy finalised (Variant B / Tier B). Pricing tier locked. Ready for Claude Code review of code + plan.