# NZ Companies Register Scraper (`crawlerbros/nz-companies-register-scraper`) Actor

Search the New Zealand Companies Register by name, keyword, or NZBN, or look up an exact company by company number. Get entity type, status, incorporation date, registered office address, and directors.

- **URL**: https://apify.com/crawlerbros/nz-companies-register-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Developer tools, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## NZ Companies Register Scraper

Search the **New Zealand Companies Register** — the official Companies Office
business registry. Search by company name, keyword, or NZBN, look up an exact
company by its company number, or run an advanced search filtered by entity
type, entity status, registered address, or incorporation date range. Get
entity type, status (and status history), incorporation date, registered
office address, and directors — straight from the official register. No
login, no API key, no proxy required.

### What this actor does

- **Three modes:** `search` (name/keyword/NZBN), `byCompanyNumber` (exact
  lookup), `advanced` (entity type + status + address + postal code +
  incorporation date range — every filter the register's own Advanced Search
  panel exposes)
- **Full company profile:** entity type, entity status, previous statuses with
  date ranges, incorporation date, constitution-filed flag, ultimate holding
  company, registered office address, directors (name + address)
- **Fast bulk mode:** disable director enrichment to get just the register
  summary row (name, NZBN, company number, type, status, address, incorporation
  date) for large exports
- **Empty fields are omitted** — a field only appears when the register
  actually published that data for the company

### Output per company

- `companyNumber` — NZ Companies Office company number
- `entityName`
- `nzbn` — New Zealand Business Number
- `entityType` — e.g. `NZ Limited Company`, `Overseas Non-ASIC Company`
- `entityStatus` — e.g. `Registered`, `Removed`, `External Administration`
- `previousStatuses[]` — `{ status, from, to }` per historical status change
- `incorporationDate` — ISO date
- `constitutionFiled` — boolean
- `ultimateHoldingCompany`
- `registeredOfficeAddress`
- `directors[]` — `{ name, address, appointmentDate }`, the company's full
  current director list from its dedicated directors page
- `formerDirectors[]` — `{ name, address, appointmentDate, ceasedDate }`, most
  recent 10 past directors (when the register shows director history)
- `profileUrl` — canonical register page
- `recordType: "company"`, `scrapedAt`

When director enrichment is disabled, only `entityName`, `nzbn`,
`companyNumber`, `entityType`, `entityStatus`, `registeredOfficeAddress`,
`incorporationDate`, and `profileUrl` are returned (no detail-page fetch).

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `search` | `search` / `byCompanyNumber` / `advanced` |
| `searchQuery` | string | `air new zealand` | Name, keyword, company number, or NZBN (mode=search, mode=advanced) |
| `companyNumbers` | array | – | Exact company numbers to look up (mode=byCompanyNumber) |
| `entityType` | string | `ALL` | Restrict to an entity type (mode=advanced) |
| `entityStatus` | string | `ALL` | Restrict to an entity status (mode=advanced) |
| `addressKeyword` | string | – | Address keyword filter (mode=advanced) |
| `postalCode` | string | – | NZ postal code filter (mode=advanced) |
| `incorporationDateFrom` / `incorporationDateTo` | string | – | Date range, `DD/MM/YYYY` (mode=advanced) |
| `fetchDirectors` | boolean | `false` | Fetch each company's detail page for directors and extra fields |
| `maxItems` | int | `20` | Hard cap (1–1000) |

### Examples

#### Example: name search

```json
{
  "mode": "search",
  "searchQuery": "air new zealand",
  "maxItems": 20
}
````

#### Example: exact company number lookup

```json
{
  "mode": "byCompanyNumber",
  "companyNumbers": ["510446", "103495"]
}
```

#### Example: advanced search — active limited companies incorporated 2020-2023

```json
{
  "mode": "advanced",
  "searchQuery": "air",
  "entityType": "LTD",
  "entityStatus": "REGISTERED",
  "incorporationDateFrom": "01/01/2020",
  "incorporationDateTo": "31/12/2023",
  "maxItems": 100
}
```

#### Example: fast bulk export with directors

```json
{
  "mode": "search",
  "searchQuery": "smith",
  "fetchDirectors": true,
  "maxItems": 200
}
```

### Use cases

- **Due diligence & KYC** — verify a NZ company's registration status, NZBN,
  and directors before engaging or onboarding
- **Compliance monitoring** — track entity status changes (e.g. moves to
  external administration) for a portfolio of companies
- **Business development** — build prospect lists filtered by entity type,
  status, or incorporation date
- **Legal & recruiting research** — look up directors and their registered
  addresses for a company
- **Market research** — bulk-export companies by keyword or industry-related
  name pattern
- **Corporate structure research** — trace ultimate holding companies

### FAQ

**What is the data source?**
The New Zealand Companies Register, operated by the New Zealand Companies
Office (companies-register.companiesoffice.govt.nz /
app.companiesoffice.govt.nz). This actor is not affiliated with or endorsed
by the New Zealand Companies Office.

**Is a login or API key required?**
No. The Companies Register's public search and company profile pages are
fully public.

**Why do some companies have no `directors` field?**
Director enrichment is disabled by default for speed (`fetchDirectors:
false`); enable it to fetch the full detail page per company. Some entity
types (e.g. certain overseas companies) also do not list NZ directors on the
public register.

**Why is `directors` sometimes a subset of a company's total board?**
The register's summary page shows a preview (e.g. "Showing 2 of 5
directors"); this actor returns exactly what's shown there without an
additional paginated fetch to the full director sub-page.

**What does `previousStatuses` cover?**
Only the status history shown on the register's own detail page (a limited
history, not necessarily every change since incorporation).

**How fresh is the data?**
Every run fetches live pages directly from the Companies Register — there is
no caching.

**Does `advanced` mode require a search query?**
Yes — `searchQuery` is required for `search` and `advanced` modes; only
`byCompanyNumber` mode looks up records without a text query.

### Data Source / Limitations

- Shareholder details, filing/document history, and full annual return data
  require a registered Companies Office login and are out of scope for this
  public-data actor.
- The register itself caps any single query at 1000 results; narrow your
  `searchQuery` or add `advanced` filters to see more specific results.
- Director address data reflects what the company has filed with the
  register and may not be current.

# Actor input Schema

## `mode` (type: `string`):

What to search.

## `searchQuery` (type: `string`):

(mode=search, mode=advanced) Company name, keyword, company number, or NZBN.

## `companyNumbers` (type: `array`):

(mode=byCompanyNumber) Exact NZ company numbers to look up.

## `entityType` (type: `string`):

(mode=advanced) Restrict to a specific entity type.

## `entityStatus` (type: `string`):

(mode=advanced) Restrict to a specific entity status.

## `addressKeyword` (type: `string`):

(mode=advanced) Keyword to match within the registered office / address for rate.

## `postalCode` (type: `string`):

(mode=advanced) Restrict to a specific NZ postal code.

## `incorporationDateFrom` (type: `string`):

(mode=advanced) Earliest incorporation date, format DD/MM/YYYY (e.g. 01/01/2020).

## `incorporationDateTo` (type: `string`):

(mode=advanced) Latest incorporation date, format DD/MM/YYYY (e.g. 31/12/2023).

## `fetchDirectors` (type: `boolean`):

Fetch each company's detail page (and full directors sub-page) for the complete current + former directors list with appointment/ceased dates, ultimate holding company, previous statuses, and constitution-filed flag. Disable for faster bulk exports that only need the register summary row.

## `maxItems` (type: `integer`):

Hard cap on emitted company records.

## Actor input object example

```json
{
  "mode": "search",
  "searchQuery": "air new zealand",
  "companyNumbers": [
    "510446"
  ],
  "entityType": "ALL",
  "entityStatus": "ALL",
  "fetchDirectors": false,
  "maxItems": 20
}
```

# Actor output Schema

## `companies` (type: `string`):

Dataset containing all scraped company records.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "search",
    "searchQuery": "air new zealand",
    "companyNumbers": [
        "510446"
    ],
    "entityType": "ALL",
    "entityStatus": "ALL",
    "fetchDirectors": false,
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/nz-companies-register-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "search",
    "searchQuery": "air new zealand",
    "companyNumbers": ["510446"],
    "entityType": "ALL",
    "entityStatus": "ALL",
    "fetchDirectors": False,
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/nz-companies-register-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "search",
  "searchQuery": "air new zealand",
  "companyNumbers": [
    "510446"
  ],
  "entityType": "ALL",
  "entityStatus": "ALL",
  "fetchDirectors": false,
  "maxItems": 20
}' |
apify call crawlerbros/nz-companies-register-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/nz-companies-register-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "NZ Companies Register Scraper",
        "description": "Search the New Zealand Companies Register by name, keyword, or NZBN, or look up an exact company by company number. Get entity type, status, incorporation date, registered office address, and directors.",
        "version": "1.0",
        "x-build-id": "OkKSH1OkofuqZw5ZR"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~nz-companies-register-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-nz-companies-register-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~nz-companies-register-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-nz-companies-register-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~nz-companies-register-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-nz-companies-register-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "byCompanyNumber",
                            "advanced"
                        ],
                        "type": "string",
                        "description": "What to search.",
                        "default": "search"
                    },
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "(mode=search, mode=advanced) Company name, keyword, company number, or NZBN.",
                        "default": "air new zealand"
                    },
                    "companyNumbers": {
                        "title": "Company numbers",
                        "type": "array",
                        "description": "(mode=byCompanyNumber) Exact NZ company numbers to look up.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "entityType": {
                        "title": "Entity type",
                        "enum": [
                            "ALL",
                            "LTD",
                            "UNLTD",
                            "COOP",
                            "ASIC",
                            "NON_ASIC"
                        ],
                        "type": "string",
                        "description": "(mode=advanced) Restrict to a specific entity type.",
                        "default": "ALL"
                    },
                    "entityStatus": {
                        "title": "Entity status",
                        "enum": [
                            "ALL",
                            "REGISTERED",
                            "EXTERNAL_ADMINISTRATION",
                            "REMOVED"
                        ],
                        "type": "string",
                        "description": "(mode=advanced) Restrict to a specific entity status.",
                        "default": "ALL"
                    },
                    "addressKeyword": {
                        "title": "Address keyword",
                        "type": "string",
                        "description": "(mode=advanced) Keyword to match within the registered office / address for rate."
                    },
                    "postalCode": {
                        "title": "Postal code",
                        "type": "string",
                        "description": "(mode=advanced) Restrict to a specific NZ postal code."
                    },
                    "incorporationDateFrom": {
                        "title": "Incorporation date from",
                        "type": "string",
                        "description": "(mode=advanced) Earliest incorporation date, format DD/MM/YYYY (e.g. 01/01/2020)."
                    },
                    "incorporationDateTo": {
                        "title": "Incorporation date to",
                        "type": "string",
                        "description": "(mode=advanced) Latest incorporation date, format DD/MM/YYYY (e.g. 31/12/2023)."
                    },
                    "fetchDirectors": {
                        "title": "Fetch directors & extra detail",
                        "type": "boolean",
                        "description": "Fetch each company's detail page (and full directors sub-page) for the complete current + former directors list with appointment/ceased dates, ultimate holding company, previous statuses, and constitution-filed flag. Disable for faster bulk exports that only need the register summary row.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Hard cap on emitted company records.",
                        "default": 20
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
