# ASIC Company Register (`consummate_kinesis_jvt/asic-company-register`) Actor

Australian company data from ASIC. 2.1M+ companies with normalised status codes, plain English fields, name history, ABN, and weekly change tracking. Filter by status, type, state, or ACN. Clean JSON output. CC BY 3.0 AU licence.

- **URL**: https://apify.com/consummate\_kinesis\_jvt/asic-company-register.md
- **Developed by:** [Noah Park](https://apify.com/consummate_kinesis_jvt) (community)
- **Categories:** Lead generation, Developer tools, Other
- **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. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Australian Company Register (ASIC) - Enriched Company Data

Clean, structured Australian company data from the ASIC Company Register. 2.1 million+ companies with normalised status codes, company type names, name history, ABN numbers, and weekly change tracking.

### What this actor does

The Australian Securities and Investments Commission (ASIC) publishes a weekly snapshot of every registered Australian company as a raw government file. This actor:

1. **Fetches** the latest data from data.gov.au (updated every Tuesday)
2. **Normalises** all government status codes to plain English (REGD becomes "Registered", DCGD becomes "Deregistered", etc.)
3. **Groups** multiple rows per company into a single record with name history
4. **Formats** ACNs and ABNs into standard Australian format (000 000 019, 89 000 000 019)
5. **Tracks changes** between weekly snapshots (new companies, status changes, name changes, deregistrations)
6. **Filters** by status, type, state, name, or specific ACNs

### Why use this instead of the raw ASIC download?

- The raw file is 379 MB of tab-separated text with cryptic government codes
- Each company has multiple rows (current name + previous names) that need grouping
- Status, type, class, and subclass codes are abbreviations nobody understands
- There is no diff feature - you have to compare snapshots yourself
- The file has no API - you download the whole thing every time

This actor handles all of that and returns clean JSON.

### Use cases

- **B2B lead generation**: Get newly registered companies each week, filtered by state or type
- **KYC / due diligence**: Look up any company by ACN to get current status, registration date, and name history
- **Market research**: Filter all active companies by type, state, or name
- **Compliance monitoring**: Track status changes (companies entering liquidation, external administration, or deregistration)
- **Brand monitoring**: Search for companies with names matching your client's brands
- **Data enrichment**: Use the ABN field to join with ABN Lookup data (trading names, GST status)

### Modes

#### Filter mode (default)

Returns companies matching your criteria. Supports filtering by:

- Status (Registered, Deregistered, In Liquidation, External Administration, etc.)
- Type (Proprietary, Public, Foreign)
- State (NSW, VIC, QLD, WA, SA, TAS, ACT, NT)
- Modified since last ASIC update
- Company name (case-insensitive search)
- Specific ACN list (bulk lookup)

**Maximum results**: Defaults to 1000 to keep runs fast and affordable. Set to 0 for no limit (returns all matching companies, but will take longer and cost more). Set to a higher number (e.g. 10000) for larger queries.

#### Diff mode

Returns only what changed since the last diff run:

- New companies registered this week
- Companies whose status changed (e.g. Registered to Deregistered)
- Companies that changed their name
- Companies newly deregistered
- Companies removed from the register

The first diff run will return "no previous snapshot available". Run it again the following week to see actual changes. Snapshots are stored in Apify's key-value store and persist between runs.

#### Full mode

Returns all companies matching your filters (or all 2.1 million if no filters set). Set Maximum results to 0 for no limit. Warning: this is a large dataset and will take several minutes and cost more.

### Example output

```json
{
  "acn": "000000019",
  "acn_formatted": "000 000 019",
  "abn": "89000000019",
  "abn_formatted": "89 000 000 019",
  "status_code": "REGD",
  "status": "Registered",
  "type_code": "APTY",
  "type": "Australian Proprietary Company",
  "class": "Limited by Shares",
  "subclass": "Proprietary",
  "date_of_registration": "1990-01-08",
  "date_of_deregistration": "",
  "previous_state": "New South Wales",
  "state_registration_number": "46869041",
  "modified_since_last_report": false,
  "current_company_name": "MONAKA PTY LTD",
  "previous_names": [
    {
      "name": "LOVINI HOLDINGS PTY LTD",
      "name_start_date": "2016-01-28"
    }
  ]
}
```

### Fields

| Field | Type | Description |
|-------|------|-------------|
| acn | string | Australian Company Number (9 digits) |
| acn\_formatted | string | ACN formatted as XXX XXX XXX |
| abn | string | Australian Business Number (11 digits, where available) |
| abn\_formatted | string | ABN formatted as XX XXX XXX XXX |
| status\_code | string | Raw ASIC status code (REGD, DCGD, LIQD, etc.) |
| status | string | Status in plain English (Registered, Deregistered, In Liquidation, etc.) |
| type\_code | string | Raw ASIC type code (APTY, APUB, FNOS, etc.) |
| type | string | Type in plain English (Australian Proprietary Company, Australian Public Company, etc.) |
| class | string | Company class (Limited by Shares, Limited by Guarantee, etc.) |
| subclass | string | Subclass (Proprietary, Public, etc.) |
| date\_of\_registration | string | Registration date (ISO format: YYYY-MM-DD) |
| date\_of\_deregistration | string | Deregistration date if applicable (ISO format) |
| previous\_state | string | State of registration (full name, e.g. "New South Wales") |
| state\_registration\_number | string | State registration number |
| modified\_since\_last\_report | boolean | True if ASIC flagged this company as modified since last weekly update |
| current\_company\_name | string | Current registered company name |
| previous\_names | array | Previous company names with start dates |

### Status codes

| Code | Meaning |
|------|---------|
| REGD | Registered (active) |
| DCGD / DRGD | Deregistered |
| LIQD | In Liquidation |
| EXAD | External Administration |
| SOSD | Struck Off (Suspended) |
| CANCN | Cancelled |
| RECD | Receiver Appointed |

### Data source and licence

- **Source**: ASIC Company Register via data.gov.au
- **URL**: https://data.gov.au/data/dataset/asic-companies
- **Licence**: Creative Commons Attribution 3.0 Australia (CC BY 3.0 AU)
- **Update frequency**: Weekly (every Tuesday)
- **Dataset size**: 2.1 million+ companies, 379 MB

This data is licensed under Creative Commons Attribution 3.0 Australia, which permits commercial use and redistribution with attribution. Attribution to the Australian Securities and Investments Commission (ASIC) is included in every record.

### Limitations

- This is a weekly snapshot, not real-time data. For up-to-the-minute company information, use ASIC Connect (https://connectonline.asic.gov.au/)
- Director and shareholder information is NOT included (not available in the free ASIC dataset)
- The ABN field is populated where ASIC has matched the company to an ABN. Not all companies have an ABN on file.
- Default result limit is 1000 companies to keep runs fast and affordable. Set Maximum results to 0 for all results, or to a specific number for larger queries.
- Diff mode requires two runs (one to establish the snapshot, one to compute the diff). Snapshots are stored in Apify's key-value store.

# Actor input Schema

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

full = all companies, filter = use filters below, diff = return only what changed since last run

## `status` (type: `string`):

Filter by company status. REGD = Registered, DCGD/DRGD = Deregistered, LIQD = In Liquidation, EXAD = External Administration

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

Filter by company type. APTY = Proprietary, APUB = Public, FNOS = Foreign

## `state` (type: `string`):

Filter by state of registration

## `modifiedOnly` (type: `boolean`):

Return only companies flagged as modified since the last weekly ASIC update

## `maxResults` (type: `integer`):

Maximum number of companies to return. 0 = no limit. Default 1000 to keep runs fast and affordable.

## `nameContains` (type: `string`):

Filter by company name (case-insensitive). Leave empty for all companies.

## `acnList` (type: `array`):

Comma-separated list of ACNs to look up (without spaces or formatting). e.g. 000000019,000000028

## Actor input object example

```json
{
  "mode": "filter",
  "status": "",
  "type": "",
  "state": "",
  "modifiedOnly": false,
  "maxResults": 1000,
  "nameContains": "",
  "acnList": []
}
```

# Actor output Schema

## `results` (type: `string`):

Link to the dataset containing all company records as JSON

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("consummate_kinesis_jvt/asic-company-register").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("consummate_kinesis_jvt/asic-company-register").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 '{}' |
apify call consummate_kinesis_jvt/asic-company-register --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/ipoJHvB452zmfQeLE/builds/oA00AEg1Y6assklPw/openapi.json
