nzpost
Query NZ Post public APIs for parcel tracking, PostShop/parcel-collect/postbox location search, and address/postcode lookup. No authentication required. Use when the task involves tracking an NZ Post
SKILL.mdskills/nzpost/SKILL.md
GitHubNZ Post
Goal
Query NZ Post public APIs for parcel tracking, location search (PostShops, parcel-collect points, postboxes), and address/postcode lookup. No authentication required.
Use this when
- A user wants to know where their NZ Post parcel is
- A user asks if a parcel has been delivered
- A user wants to see the full tracking history for a shipment
- A user has a domestic NZ Post tracking number or an international inbound tracking number routed through NZ Post
- A user asks "where is my package?" with an NZ Post or CourierPost number
- A user wants to find a PostShop, parcel-collect point, or postbox near a location
- A user wants to look up a New Zealand address or postcode
Do not use this for
- DHL, FedEx, UPS, or other non-NZ Post carriers
- NZ Post MyMail/standard letters (untracked items)
- Booking or scheduling courier pickups
- Redirecting or modifying delivery instructions
Preferred workflow
- Run
track <number>for a human-readable status summary and event timeline - Run
locations --near "SUBURB"to find nearby NZ Post facilities - Run
address "QUERY"to look up NZ delivery addresses and postcodes - Add
--jsonto any command for machine-readable output suitable for piping
CLI
Run with:
python3 skills/nzpost/scripts/cli.py <command> [flags]
track
Track one or more parcels by tracking number.
# Human-readable output
python3 skills/nzpost/scripts/cli.py track 00794210392715622565
# Machine-readable JSON
python3 skills/nzpost/scripts/cli.py track 00794210392715622565 --json
# Multiple parcels
python3 skills/nzpost/scripts/cli.py track 00794210392715622565 00000000000000000000 --json
# International UPU format
python3 skills/nzpost/scripts/cli.py track EA123456789NZ --json
locations
Find PostShops, parcel-collect points, and postboxes near a location.
# By place name
python3 skills/nzpost/scripts/cli.py locations --near "Clevedon, Auckland" --limit 5
# By coordinates
python3 skills/nzpost/scripts/cli.py locations --lat -36.8485 --lon 174.7633 --limit 10
# By keyword
python3 skills/nzpost/scripts/cli.py locations --keyword "Auckland CBD" --limit 10
# Filter by type
python3 skills/nzpost/scripts/cli.py locations --near "Auckland CBD" --type postshop
# JSON output
python3 skills/nzpost/scripts/cli.py locations --near "Clevedon" --json
address
Look up NZ delivery addresses and postcodes.
# Human-readable list
python3 skills/nzpost/scripts/cli.py address "Papakura" --limit 10
# JSON output
python3 skills/nzpost/scripts/cli.py address "Papakura" --json
Tracking number formats
NZ Post accepts a wide range of tracking number formats:
- 18 or 20 digit domestic numbers (e.g.
00794210392715622565) - 13-digit domestic short numbers
- UPU international format: 2 letters + 9 digits + 2 letters (e.g.
EA123456789NZ) - Alphanumeric codes (TP, RMA, RMC, SUN, CTC prefixes, etc.)
Output fields (JSON, track)
| Field | Description |
|---|---|
tracking_reference |
The normalised tracking number |
status |
Current delivery status label |
last_updated |
ISO 8601 UTC timestamp of the latest event |
last_depot |
Last known depot name, if available |
event_count |
Total number of tracking events |
events[] |
Full event timeline, oldest first |
events[].date_time |
UTC timestamp |
events[].status |
Short status label |
events[].description |
Longer description (HTML stripped) |
events[].depot_name |
Depot name, if applicable |
events[].run_name |
Courier run or area name, if applicable |
events[].edifact_code |
Internal EDIFACT event code |
Resources
- CLI entrypoint:
scripts/cli.py - API discovery notes:
references/api-notes.md
Notes
- No API key or authentication required
- Tracking endpoint:
tools.nzpost.co.nz/tracking/api/parceltrack/parcels - Locations endpoint:
api.nzpost.co.nz/digital/postshop-locations/v2/locations - Address endpoint:
tools.nzpost.co.nz/legacy/api/suggest(requires Referer header) - Python stdlib only (
urllib,json,re,argparse) - Delivered parcels retain their full tracking history indefinitely