companies-office-nz · git:20260524.2f8f532 · 2026-05-24 · sha256 5c76807c72e2ef23

companies-office-nz git:20260524.2f8f532A

Immutable. This exact content never changes and is served at /api/v1/blob/5c76807c72e2ef23.

---
name: companies-office-nz
description: Search and inspect New Zealand Companies Register records through read-only public website endpoints. Use when the task involves NZ company lookup by name, company number, or NZBN; company status, incorporation date, entity type; director names and appointment dates; shareholder allocations and percentages; registered addresses; filing history and public documents; or any company governance data not covered by the NZBN Register skill. No login, API key, or account required. Read-only.
---

# Companies Office NZ

## Goal

Query rich public Companies Register data through a deterministic no-login Python CLI. Covers company identity, registered addresses, current and historical directors, shareholder allocations, and the complete filing/document history.

## Use this when

- A user asks to find an NZ company by name, number, or NZBN
- A workflow needs director names, appointment dates, or residential cities
- A user wants shareholder allocations and ownership percentages
- A workflow needs the full filing history or document list for a company
- A user asks about a company's registered office, address for service, or contact details from the register
- A task requires company number, incorporation date, status, or entity type

## Do not use this for

- Private or suppressed register data
- Authenticated actions: director appointments, shareholder updates, annual return filing
- Paid company extract purchase (CompanyExtract fee document)
- PPSR / Personal Property Securities Register — this is a separate register at ppsr.companiesoffice.govt.nz
- GST numbers, industry classifications, trading names, or Australian Business Numbers — use `nzbn-register` for these
- Non-company entities (trusts, partnerships, incorporated societies) — limited support
- Bulk scraping or full-register replication

## Preferred workflow

1. `search <name>` to find the company number
2. `entity <number>` for summary + addresses
3. `directors <number>` and `shareholders <number>` for governance data
4. `documents <number>` for filing history
5. Or use `full <number>` to get everything in one call
6. Use `--json` for agent chaining; `--output md` for reports

## CLI

Run with:

```bash
python3 skills/companies-office-nz/scripts/cli.py <command> [flags]
```

### Commands

**`search <query> [--limit N] [--start N] [--json] [--output md]`**

Search by company name, company number, or NZBN text.

```bash
python3 skills/companies-office-nz/scripts/cli.py search "Holt Group"
python3 skills/companies-office-nz/scripts/cli.py search "xero" --limit 5 --json
python3 skills/companies-office-nz/scripts/cli.py search 1830488 --json
```

**`entity <company_number> [--nzbn <nzbn>] [--json] [--output md]`**

Company summary and addresses. Pass `--nzbn` to look up by NZBN.

```bash
python3 skills/companies-office-nz/scripts/cli.py entity 1830488
python3 skills/companies-office-nz/scripts/cli.py entity --nzbn 9429034042984 --json
```

**`directors <company_number> [--json] [--output md]`**

Current and historical directors, appointment dates, residential addresses (public).

```bash
python3 skills/companies-office-nz/scripts/cli.py directors 1830488
python3 skills/companies-office-nz/scripts/cli.py directors 973228 --json
```

**`shareholders <company_number> [--json] [--output md]`**

Shareholder allocations, percentages, holder names and addresses.

```bash
python3 skills/companies-office-nz/scripts/cli.py shareholders 1830488
python3 skills/companies-office-nz/scripts/cli.py shareholders 9400535 --json
```

**`documents <company_number> [--limit N] [--start N] [--json] [--output md]`**

Filing history and document list. Includes document URLs for public attachments.

```bash
python3 skills/companies-office-nz/scripts/cli.py documents 1830488 --limit 20
python3 skills/companies-office-nz/scripts/cli.py documents 973228 --json
```

**`full <company_number> [--doc-limit N] [--json] [--output md]`**

All of the above in one call: entity summary + directors + shareholders + recent documents.

```bash
python3 skills/companies-office-nz/scripts/cli.py full 973228
python3 skills/companies-office-nz/scripts/cli.py full 1830488 --doc-limit 20 --json
python3 skills/companies-office-nz/scripts/cli.py full 1830488 --output md
```

## Resources

- CLI entrypoint: `scripts/cli.py`
- Live smoke test: `scripts/smoke_test.py`
- API and stability notes: `references/api-notes.md`

## Related skills

- `nzbn-register` — NZBN Register: trading names, GST numbers, industry classifications, ABN, and broader entity identity for all NZ entity types. Complement this skill when you need GST or trading name data.
- `nz-pricewatch` — not related, different domain

## Notes

- No API key, OAuth token, username, password, or browser session required
- Director and shareholder data is HTML-parsed from the public register pages (the equivalent JSON service endpoints require an authenticated session)
- Director residential addresses are shown as registered on the public register — some may be suppressed by the company
- Listed companies (extensive shareholding flag) show only the top shareholder parcels; contact the company for a full register
- Charges and security interests (PPSR) are on a separate register; this skill does not cover them
- NZBN field is not returned by the entity detail endpoint — it is available in search results; use `search <nzbn>` to resolve
- Documents with a `drmKey` have a public download URL included in output; others are listed without a URL
- Keep queries small and respectful; this is an unofficial use of the website's own proxy