# Australia New Companies Feed: ASIC Weekly Registrations (`moment-data/australia-new-companies-feed`) Actor

Weekly feed of newly registered Australian companies from the official ASIC Company Dataset: ACN, ABN, company type, class, status, registration date. Optional deregistrations, name changes, strike-off actions and external administrations. Companies only.

- **URL**: https://apify.com/moment-data/australia-new-companies-feed.md
- **Developed by:** [Luke Miller](https://apify.com/moment-data) (community)
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Australia New Companies Feed: ASIC Weekly Registrations

Get **every newly registered Australian company** from the official **ASIC Company Dataset** (published weekly on data.gov.au): company name, **ACN**, **ABN** (when issued), company type, class, sub class, status, registration date and an ABN Lookup link. Optionally add **deregistrations, name changes, strike-off actions and new external administrations** (receivership / liquidation / administration), all in one clean schema. Filter by **company type, sub class or name keyword**, drop superannuation trustee companies, and schedule it with **"new since last run"** mode to get only companies you have not seen.

Uses the free official ASIC bulk file (CC BY 3.0 AU): no API key, no login, no scraping of ASIC Connect search pages.

### Who it's for

- **Accountants, bookkeepers and tax agents**: every new Pty Ltd needs a first BAS, tax return and ASIC annual review. Get a weekly list of new companies to reach first.
- **Business banks, payment providers, insurers, payroll / HR and accounting SaaS**: reach new businesses in the first weeks, when they pick providers.
- **B2B sales teams and agencies** (web, branding, signage, fit-out, telecom, merchant services): new-company trigger lists by keyword ("solar", "construction", "cafe", "health").
- **Credit, risk, KYC and collections teams**: weekly lists of companies newly in **external administration**, under **strike-off action** or **deregistered**, plus **name changes** to keep customer records current.
- **Brand protection and journalists**: watch new registrations and renames that contain a brand or keyword; track business formation in Australia.

### What you get

Each record is one company event:

- **Event**: `newRegistration`, `deregistration`, `nameChange`, `strikeOffAction` or `externalAdministration`, with the event date.
- **Identity**: current company name, former names (name changes), ACN (or ARBN for registered bodies), ABN (formatted too) when issued.
- **Type**: company type (APTY proprietary, APUB public, FNOS foreign, RACN registered body, CCIV), class (limited by shares / guarantee ...), sub class (proprietary, super trustee, non-profit, listed ...) with plain-English labels and `isSuperannuationTrustee` / `isNonProfit` flags.
- **Status and dates**: status code and label, registration date, deregistration date, current-name start date, previous state of registration.
- **Link** to the company's record on the government's ABN Lookup.

**Entity-level only**: the ASIC company register contains companies and registered bodies only (no sole traders), and the bulk file has no officeholder names, addresses, phones or emails. Proprietary companies named only after a person (e.g. "J SMITH PTY LTD") are dropped by default.

### Quick start

1. Click **Try for free** and run the default input `{}`: the 30 newest company registrations in the latest weekly snapshot (person-named companies excluded).
2. Narrow it down, for example new solar / energy companies, no super-fund trustees, last 4 weeks:

```json
{ "nameKeywords": ["solar", "energy", "battery"], "excludeSuperannuationTrustees": true, "daysBack": 28, "maxItems": 200 }
```

3. For alerts, set `"mode": "sinceLastRun"` and **schedule** the Actor weekly (Wednesday, after ASIC's Tuesday upload). Each run returns only records you have not received before (per `stateKey`).

#### More recipes

- New public companies and not-for-profits: `{ "companyTypes": ["APUB"], "daysBack": 14, "maxItems": 500 }`
- Distress watch: `{ "eventTypes": ["externalAdministrations", "strikeOffs"], "maxItems": 5000 }`
- Renames this week: `{ "eventTypes": ["nameChanges"], "maxItems": 2000 }`
- New foreign companies registering in Australia: `{ "companyTypes": ["FNOS"], "daysBack": 60, "fullScan": true }`

### Input

| Field | Default | Description |
|---|---|---|
| `eventTypes` | `["newRegistrations"]` | also `deregistrations`, `nameChanges`, `strikeOffs`, `externalAdministrations` (these scan the full ~400 MB file: about 2 minutes at the default 512 MB, faster with more memory) |
| `mode` | `window` | `window` = stateless lookback; `sinceLastRun` = only records not delivered before (per `stateKey`) |
| `daysBack` | 7 | event-date window (1-365 days) ending on the newest registration date in the snapshot |
| `companyTypes` | all | `APTY`, `APUB`, `FNOS`, `RACN`, `CCIV` (or proprietary, public, foreign) |
| `subClasses` | all | ASIC codes such as `PROP`, `PSTC`, `PNPC`, `ULST`, `ULSN`, `LIST` |
| `nameKeywords` / `excludeNameKeywords` | none | name contains any / none of these |
| `excludeSuperannuationTrustees` | false | drop super-fund trustee companies |
| `onlyWithAbn` | false | keep only records that already have an ABN |
| `excludePersonNamedCompanies` | true | drop "FIRSTNAME SURNAME PTY LTD"-style names |
| `autoExtend` | true | widen a short window (narrow filters) by up to 28 days |
| `fullScan` | false | scan the whole file for new registrations (catches rare out-of-sequence ACNs/ARBNs) |
| `maxItems` | 30 | max records per run |
| `stateKey` | `default` | separate saved state per saved search |

### Output (example, real records from the 26 Oct 2026 snapshot)

```json
[
  {
    "eventType": "newRegistration",
    "eventDate": "2026-10-26",
    "name": "GRAIL SOCIETY PTY LTD",
    "previousNames": [],
    "acn": "703560543",
    "arbn": null,
    "abn": null,
    "abnFormatted": null,
    "companyType": "APTY",
    "companyTypeLabel": "Australian proprietary company",
    "companyClass": "LMSH",
    "companyClassLabel": "Limited by shares",
    "subClass": "PROP",
    "subClassLabel": "Proprietary other",
    "status": "REGD",
    "statusLabel": "Registered",
    "registrationDate": "2026-10-26",
    "deregistrationDate": null,
    "currentNameStartDate": null,
    "previousStateOfRegistration": null,
    "isSuperannuationTrustee": false,
    "isNonProfit": false,
    "modifiedSinceLastReport": true,
    "snapshotDate": "2026-10-26",
    "abrUrl": "https://abr.business.gov.au/Search/ResultsActive?SearchText=703560543",
    "source": "ASIC Company Dataset (data.gov.au, CC BY 3.0 AU)",
    "firstSeenAt": "2026-11-01T05:03:22.176Z"
  },
  {
    "eventType": "nameChange",
    "eventDate": "2026-10-26",
    "name": "CEDARS CRUST PTY LTD",
    "previousNames": [
      "BARRY'S LAWN-MOWING & MAINTENANCE PTY LTD"
    ],
    "acn": "694972515",
    "arbn": null,
    "abn": "82694972515",
    "abnFormatted": "82 694 972 515",
    "companyType": "APTY",
    "companyTypeLabel": "Australian proprietary company",
    "companyClass": "LMSH",
    "companyClassLabel": "Limited by shares",
    "subClass": "PROP",
    "subClassLabel": "Proprietary other",
    "status": "REGD",
    "statusLabel": "Registered",
    "registrationDate": "2026-02-04",
    "deregistrationDate": null,
    "currentNameStartDate": "2026-10-26",
    "previousStateOfRegistration": null,
    "isSuperannuationTrustee": false,
    "isNonProfit": false,
    "modifiedSinceLastReport": false,
    "snapshotDate": "2026-10-26",
    "abrUrl": "https://abr.business.gov.au/ABN/View?abn=82694972515",
    "source": "ASIC Company Dataset (data.gov.au, CC BY 3.0 AU)",
    "firstSeenAt": "2026-11-01T05:03:22.176Z"
  }
]
```

A run summary is saved to the `OUTPUT` record: snapshot date, windows, counts by event, company type and date, rows scanned and records dropped by each filter.

### Data source, timing and fair use

- **ASIC Company Dataset** on data.gov.au, published by the Australian Securities and Investments Commission under **Creative Commons Attribution 3.0 Australia**. Source: ASIC (data.gov.au). This Actor is not affiliated with or endorsed by ASIC or the Australian Government.
- ASIC uploads a fresh snapshot **every Tuesday** (Australian time). Records are therefore up to a week old; the newest day in a snapshot is partial. ASIC Connect has real-time data if you need it.
- New registrations are read from the end of the file (it is sorted by ACN and ACNs are issued in sequence), usually 2-5 MB in one or two requests. Other event types (and `fullScan`) download the full ~400 MB file with a few parallel range requests and parse 4.4 million rows: about 2 minutes at 512 MB (CPU-bound; give the run 1-2 GB memory to speed it up).
- `strikeOffs` and `externalAdministrations` use the snapshot's "modified since last report" flag (the status changed since the previous weekly upload), so their event date is the snapshot date.
- Deregistered companies stay in the dataset for about a year.

### Pricing

Pay per event (Apify takes care of billing; you only pay for what is delivered):

| Event | Price | Charged |
|---|---|---|
| `apify-actor-start` | $0.005 | once per run |
| `company-record` | $0.003 | per company record delivered |

A default test run (30 companies) costs about $0.095. A weekly keyword alert (~20 matches/week) costs about $0.065/week. The full national firehose (~5,500 new companies per week) costs about $16.50/week. `maxItems` and Apify's *max cost per run* cap your spend; the Actor stops delivering when your budget is reached, so you are never charged for more than you set. No separate platform-usage charges: compute is included in the event prices.

### FAQ

**Why do many new companies have no ABN?** ABNs are applied for separately at the Australian Business Register, usually days or weeks after ASIC registration. Use `onlyWithAbn` to keep only those that already have one, or re-check later via `abrUrl`.

**Why are there no directors, addresses or contact details?** The ASIC bulk dataset does not include them, and this is an entity-level feed by design. Officeholder and address extracts are paid products on ASIC Connect.

**How fresh is the data?** Weekly. ASIC uploads every Tuesday; run the Actor on Wednesday for the newest week.

**Can I backfill?** Yes: `daysBack` up to 365 with a higher `maxItems` (only companies still in the current snapshot are included).

**What is a superannuation trustee company?** A company set up only to act as trustee of a (self-managed) super fund (sub class PSTC). They are a large share of new registrations but rarely trade; drop them with `excludeSuperannuationTrustees`.

# Actor input Schema

## `eventTypes` (type: `array`):

newRegistrations (default) = companies registered with ASIC in the window. deregistrations = companies deregistered in the window. nameChanges = companies whose current name started in the window (with former names). strikeOffs = companies whose status changed to 'strike-off action in progress' since the previous weekly snapshot. externalAdministrations = companies newly flagged as in external administration (receivership / liquidation / administration) since the previous snapshot. Any event type other than newRegistrations scans the whole ~400 MB file (about 2 minutes at 512 MB memory, faster with more).

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

window = every matching record in the last Days back days of the latest weekly snapshot (stateless, default). sinceLastRun = only records not delivered by a previous run with the same State key (re-reads 14 days of overlap).

## `daysBack` (type: `integer`):

Event-date window ending on the newest registration date in the snapshot. ASIC uploads a new snapshot every Tuesday (Australian time), so 7 days = one snapshot. About 1,000-1,200 new companies are registered per working day.

## `companyTypes` (type: `array`):

APTY (proprietary / Pty Ltd), APUB (public company, incl. non-profits limited by guarantee), FNOS (foreign company registered in Australia), RACN (registrable Australian body, e.g. incorporated associations), CCIV. Names like proprietary, public, foreign also work. Empty = all.

## `subClasses` (type: `array`):

ASIC sub-class codes: PROP (proprietary other), PSTC (proprietary superannuation trustee), PNPC (proprietary non-profit), ULST (unlisted public), ULSN (unlisted public non-profit), LIST (listed public), HUNT (home unit company), PUBF (foreign, lodges balance sheet). Empty = all.

## `nameKeywords` (type: `array`):

Keep companies whose name (or former name, for name changes) contains any of these, e.g. solar, tech, construction, cafe, health.

## `excludeNameKeywords` (type: `array`):

Drop companies whose name contains any of these, e.g. super, nominees, holdings, investments.

## `excludeSuperannuationTrustees` (type: `boolean`):

Drop corporate trustees of (self-managed) super funds (sub classes PSTC, ULSS, LISS), which are rarely operating businesses.

## `onlyWithAbn` (type: `boolean`):

Keep only records that already show an Australian Business Number. Most brand-new companies get their ABN later, so this drops many new registrations.

## `excludePersonNamedCompanies` (type: `boolean`):

Drop proprietary companies whose name is just a person's name (e.g. 'J SMITH PTY LTD', 'JOHN SMITH PTY LTD'). On by default to keep the feed entity-level.

## `autoExtend` (type: `boolean`):

In window mode, walk back day by day (max 28 days) when fewer than about 25 records match (narrow filters). Turn off to get exactly the Days back window.

## `fullScan` (type: `boolean`):

New registrations are read from the end of the file (sorted by ACN), which covers about 99.9% of new companies in a few MB. Turn on to scan the whole file and also catch the rare out-of-sequence numbers (some foreign companies / registered bodies).

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

Hard cap on delivered records (also caps your spend), split fairly across event types. Newest first in window mode, oldest first in sinceLastRun mode.

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

sinceLastRun only: separate saved state per saved search (e.g. 'sydney-solar').

## Actor input object example

```json
{
  "eventTypes": [
    "newRegistrations"
  ],
  "mode": "window",
  "daysBack": 7,
  "excludeSuperannuationTrustees": false,
  "onlyWithAbn": false,
  "excludePersonNamedCompanies": true,
  "autoExtend": true,
  "fullScan": false,
  "maxItems": 30,
  "stateKey": "default"
}
```

# Actor output Schema

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

One record per company event (new registration, deregistration, name change, strike-off action, external administration).

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

Snapshot date, windows, filters, counts, rows scanned and why the run stopped.

# 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 = {
    "eventTypes": [
        "newRegistrations"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("moment-data/australia-new-companies-feed").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 = { "eventTypes": ["newRegistrations"] }

# Run the Actor and wait for it to finish
run = client.actor("moment-data/australia-new-companies-feed").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "eventTypes": [
    "newRegistrations"
  ]
}' |
apify call moment-data/australia-new-companies-feed --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,moment-data/australia-new-companies-feed"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/u7JzOEQ3pYJD51q5R/builds/J3rXaX262EM0Yzytc/openapi.json
