# Australian Business Due Diligence Check (ABN, ASIC, ACNC) (`eddie-power-dev/au-business-due-diligence`) Actor

One lookup per ABN, ACN or business name. Merges ASIC company status, AFS and credit licences, ASIC banned and disqualified registers, ACNC charity status and optional ABN Lookup details. Official open data with source attribution and freshness dates.

- **URL**: https://apify.com/eddie-power-dev/au-business-due-diligence.md
- **Developed by:** [Eddie Power](https://apify.com/eddie-power-dev) (community)
- **Categories:** Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $40.00 / 1,000 entity checkeds

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

## Australian Business Due Diligence Check

**Check any Australian business in one go, from an ABN, ACN or business name.** You get back one merged record per business, drawn from Australia's official public registers:

- 🏢 **ASIC company register:** status (registered or deregistered), type and class, registration and deregistration dates, current and former names
- 💼 **ASIC AFS licensees:** Australian Financial Services licence number and start date
- 💳 **ASIC credit licensees:** credit licence number, status, external dispute resolution scheme
- 🚫 **ASIC banned and disqualified organisations**
- 👤 **ASIC banned and disqualified persons** (optional, opt-in director and adviser screening)
- ❤️ **ACNC charity register:** registered charity, size, PBI and HPC status
- 🔎 **ABN Lookup (optional):** live ABN status, entity type, GST registration and business names, when you add your own free ABN Lookup GUID

Every record carries **plain-English flags** (such as `ASIC_STATUS_DERE`, `BANNED_OR_DISQUALIFIED_ORGANISATION`, `HOLDS_CREDIT_LICENCE` and `REGISTERED_CHARITY`), **source attribution** and a **data-as-at date** for each register.

### Who it's for

- Onboarding suppliers, customers and contractors (KYB checks)
- Brokers, lenders and accountants checking that a counterparty is licensed
- Grant makers and donors checking charity status
- Bulk-cleaning a CRM list of ABNs or ACNs

### Input

| Field | What to enter |
|---|---|
| `entities` | ABNs (11 digits), ACNs (9 digits) or exact business names. Spaces are fine. Up to 1,000 per run. |
| `maxNameMatches` | For name inputs, how many matching entities to return (1–10, default 3) |
| `includeBannedPersons` + `personNames` | Optional screening of people's full names against the ASIC banned and disqualified persons register |
| `abrGuid` | Optional. Your own free [ABN Lookup web services](https://abr.business.gov.au/Documentation/WebServiceRegistration) GUID, stored as a secret |

```json
{ "entities": ["004 028 077", "50 169 561 394", "IPIB Pty Ltd"] }
```

### Output (one record per entity)

```json
{
  "recordType": "ENTITY",
  "input": "85007186003",
  "inputType": "ABN",
  "matchType": "ID",
  "abn": "85007186003",
  "acn": "007186003",
  "name": "IPIB PTY LTD",
  "asicCompany": { "status": "REGD", "type": "APTY", "registered": "1989-04-03", "formerNames": ["INTERPACIFIC INSURANCE BROKERS PTY. LTD."] },
  "afsLicences": [{ "licenceNumber": "218600", "startDate": "2002-05-02", "state": "VIC" }],
  "creditLicences": [],
  "acncCharity": null,
  "bannedOrDisqualifiedOrganisation": [],
  "flags": ["HOLDS_AFS_LICENCE"],
  "sources": [{ "source": "ASIC - Company Dataset", "dataAsAt": "2026-10-12T13:53:24", "licence": "Creative Commons Attribution 3.0 Australia (CC BY 3.0 AU)" }],
  "checkedAt": "2026-10-18T10:41:00.000Z"
}
```

Inputs that can't be valid (bad ABN or ACN checksums) come back flagged `INVALID_INPUT` and **are not charged**.

### Pricing

Pay per event: you pay per entity checked and per person screened. There are no subscriptions. See the Pricing tab for current prices.

### Data freshness and accuracy

ASIC and ACNC publish **weekly snapshots** on data.gov.au. Each record shows the snapshot date, and a `SOURCE_STALE_*` flag appears if a register is more than 10 days old. ASIC Connect and the ACNC Register update in real time, so **confirm anything critical there**. Name matching is exact (after removing punctuation and suffixes such as "Pty Ltd"), and all name matches are flagged `NAME_MATCH_VERIFY_IDENTITY`.

### Privacy

Person screening is **off by default**. It returns only the register name, banning type, dates, ASIC document number and state, never the suburb or postcode. Use it only for a lawful due-diligence purpose. No input or output is kept by this Actor beyond your own run's dataset.

### Data sources and attribution

- Contains data from the Australian Securities and Investments Commission (ASIC): *Company Dataset*, *Australian Financial Services Licensee Dataset*, *Credit Licensee Dataset*, *Banned and Disqualified Organisations* and *Banned and Disqualified Persons*, sourced from [data.gov.au](https://data.gov.au/data/organization/australian-securities-and-investments-commission-asic), licensed under [CC BY 3.0 AU](https://creativecommons.org/licenses/by/3.0/au/).
- Contains data from the Australian Charities and Not-for-profits Commission (ACNC): *ACNC Registered Charities*, sourced from [data.gov.au](https://data.gov.au/data/dataset/acnc-register), licensed under [CC BY 3.0 AU](https://creativecommons.org/licenses/by/3.0/au/).
- ABN details (when a GUID is supplied) come from ABN Lookup web services, Australian Business Register, under the ABN Lookup Web Services Agreement.
- All data has been filtered, merged and reformatted. The underlying datasets remain freely available under their original licences from the links above.

**This Actor is independent. It is not endorsed by, approved by or affiliated with ASIC, the ACNC, the Australian Business Register or the Commonwealth of Australia.**

### Disclaimer

Provided for information only. This isn't legal, financial or credit advice. Public registers can contain errors and omissions.

# Actor input Schema

## `entities` (type: `array`):

One per line. 11-digit ABN, 9-digit ACN (spaces allowed) or an exact business or company name. Up to 1,000 per run.

## `maxNameMatches` (type: `integer`):

For business-name inputs, the maximum number of matching entities returned (each is billed as one entity).

## `includeBannedPersons` (type: `boolean`):

Off by default. When on, each name in 'People to screen' is matched against ASIC's banned and disqualified persons register. Only use this for a lawful purpose such as director or adviser due diligence. Output is limited to register, type, dates, document number and state.

## `personNames` (type: `array`):

Full names (given names and surname, in any order). Matching is exact on all name parts, so always verify identity before acting on a match.

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

Your own free ABN Lookup web services GUID (abr.business.gov.au). Adds live ABN status, entity type, GST and business names. Without it, ABN details come from ASIC and ACNC open data only.

## Actor input object example

```json
{
  "entities": [
    "004 028 077",
    "50 169 561 394"
  ],
  "maxNameMatches": 3,
  "includeBannedPersons": false
}
```

# Actor output Schema

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

One merged record per ABN/ACN/name match (plus person-screening records if enabled).

# 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 = {
    "entities": [
        "004 028 077",
        "50 169 561 394"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("eddie-power-dev/au-business-due-diligence").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 = { "entities": [
        "004 028 077",
        "50 169 561 394",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("eddie-power-dev/au-business-due-diligence").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 '{
  "entities": [
    "004 028 077",
    "50 169 561 394"
  ]
}' |
apify call eddie-power-dev/au-business-due-diligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,eddie-power-dev/au-business-due-diligence"
        }
    }
}
```

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/zDQ7y1hWNjGNNamr3/builds/hjBlKd6TdtQqmri8p/openapi.json
