# Australian ABN, GST & Commercial Entity KYB Lead Enricher (`ausbizstack/au-abn-kyb-commercial-lead-enricher`) Actor

Bulk Australian Business Number (ABN), ACN, GST registration, entity type, state/postcode & website domain KYB enricher for AU B2B agencies, fintechs, commercial services & AI agents. Verifies active GST status, discovers official domains & role contacts (0 personal emails).

- **URL**: https://apify.com/ausbizstack/au-abn-kyb-commercial-lead-enricher.md
- **Developed by:** [AusBizStack Intelligence](https://apify.com/ausbizstack) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 verified australian abn records

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 ABN, GST & Commercial Entity KYB Lead Enricher (`ausbizstack/au-abn-kyb-commercial-lead-enricher`)

Turn any list of **Australian Business Numbers (ABNs), 9-digit ACNs, company names, or `.com.au` / global domains** (`80 158 929 938`, `tyrrells.com.au`, `50 158 943 072`, `89 124 215 247`, `53 102 443 916`) into a verified **Australian Business Register (ABR) KYB & Commercial Lead Profile**—complete with **ATO Modulo-89 checksum validation, active GST status, state/postcode location, website tech stack, role-based contacts (`0` personal emails), and ready-to-send B2B sales & fintech KYB summaries** at **$0.01/entity**.

Built by **AusBizStack Intelligence (`@ausbizstack`)** for **Australian B2B Agencies, Commercial Service Providers, Fintech & Trade-Credit Teams, Procurement Onboarding, Clay / n8n / Make.com RevOps Engineers, and MCP AI Agents (`mcp.apify.com`)**.

***

### What This Actor Audits & Enriches Per Entity

1. **ATO Modulo-89 Checksum & Official ABR Verification (`abr.business.gov.au`):**
   - Validates 11-digit ABNs mathematically (`weights = [10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19]`, `sum % 89 === 0`) and automatically converts 9-digit ACNs into valid 11-digit ABNs.
   - Extracts `legalEntityName`, `abnStatus` (`Active` / `Cancelled`), `abnActiveFromDate`, `entityType` (`Australian Private Company`, `Australian Public Company`, `Discretionary Trading Trust`, etc.), `gstRegistered` (`boolean`), `gstRegisteredFromDate`, registered `businessNames`, `acn`, and `state` / `postcode` (`NSW`, `VIC`, `QLD`, `WA`, `SA`, `TAS`, `ACT`, `NT`).
2. **Bidirectional Domain <-> ABN Resolution & Website Cross-Enrichment:**
   - Pass a domain (`tyrrells.com.au`) and the Actor scans the website (`/`, `/contact`, `/about`, `/privacy`) + ABR search to discover its official ABN (`52 000 114 527`) and legal entity (`TYRRELL'S VINEYARDS PTY LTD`).
   - Pass an ABN (`50 158 943 072`) and the Actor resolves the entity (`SERVICEM8 PTY LTD`), infers/verifies the corporate domain (`servicem8.com`), and enriches its live website.
3. **Australian B2B Tech Stack & Multi-Site Footprint Detection:**
   - Fingerprints 35+ accounting, trade/field-service, medical, property, and marketing platforms (`Xero`, `MYOB`, `QuickBooks`, `ServiceM8`, `Simpro`, `Tradify`, `Cliniko`, `HotDoc`, `PropertyMe`, `HubSpot`, `Salesforce`, `Shopify`, `Stripe`, `Tyro`, `Afterpay`, `WordPress`, `Webflow`).
4. **Role-Based Corporate Contacts Only (`0` Personal Emails):**
   - Extracts only role-based corporate emails (`info@`, `accounts@`, `enquiries@`, `sales@`, `support@`, `admin@`, `reception@`, `property@`, `facilities@`) and Australian business phone numbers (`1300`, `1800`, `+61`, `(02)`, `(03)`, `(07)`, `(08)`).
5. **KYB Risk Tier & B2B Outbound Hooks:**
   - Computes `kybVerificationScore` (0–100), `kybRiskTier` (`VERIFIED_LOW_RISK` | `REVIEW_MODERATE_RISK` | `HIGH_RISK_UNVERIFIED`), `commercialLeadScore` (0–100), `fintechKybSummary`, and `b2bSalesPitchHook`.

***

### Quick-Start Integration Snippets

#### 1. Claude Desktop & Cursor IDE via Apify MCP (`mcp.apify.com`)

Add the complete **AusBizStack** 4-Actor suite to `claude_desktop_config.json` or `.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "ausbizstack-apify": {
      "command": "npx",
      "args": [
        "-y",
        "@apify/actors-mcp-server",
        "--actors",
        "ausbizstack/b2b-tech-stack-contact-abn-enricher,ausbizstack/ai-geo-llms-txt-auditor,ausbizstack/b2b-email-security-dmarc-spf-auditor,ausbizstack/au-abn-kyb-commercial-lead-enricher"
      ],
      "env": {
        "APIFY_TOKEN": "YOUR_APIFY_API_TOKEN"
      }
    }
  }
}
```

#### 2. Apify REST API (`curl` — Synchronous JSON Dataset Output)

```bash
curl -X POST "https://api.apify.com/v2/acts/ausbizstack~au-abn-kyb-commercial-lead-enricher/run-sync-get-dataset-items" \
  -H "Content-Type: application/json" \
  -d '{
    "targets": [
      "80 158 929 938",
      "tyrrells.com.au",
      "50 158 943 072",
      "89 124 215 247",
      "53 102 443 916"
    ],
    "enrichWebsite": true,
    "maxConcurrency": 5
  }'
```

#### 3. Clay.com HTTP API Waterfall (`$0.01/entity`)

- **Method:** `POST`
- **Endpoint URL:** `https://api.apify.com/v2/acts/ausbizstack~au-abn-kyb-commercial-lead-enricher/run-sync-get-dataset-items?`
- **Headers:** `Content-Type: application/json`
- **JSON Body:**
  ```json
  {
    "targets": ["{{Company Domain or ABN}}"],
    "enrichWebsite": true
  }
  ```
- **Key Output Columns to Map in Clay:**
  - `response[0].abn` -> **Verified ABN (`XX XXX XXX XXX`)**
  - `response[0].legalEntityName` -> **Legal Entity Name (`PTY LTD`)**
  - `response[0].gstRegistered` -> **GST Registered (`true`/`false`)**
  - `response[0].state` / `response[0].postcode` -> **AU State & Postcode**
  - `response[0].kybRiskTier` -> **KYB Tier (`VERIFIED_LOW_RISK`)**
  - `response[0].roleEmails` -> **Role-Based Emails (`accounts@`, `info@`)**
  - `response[0].b2bSalesPitchHook` -> **Tailored Australian Outbound Hook**

#### 4. n8n & Make.com Workflows

- Trigger an **n8n HTTP Request** node whenever a new Australian vendor, trade applicant, or B2B lead enters HubSpot, Salesforce, Xero, or ServiceM8.
- Automatically verify `abnStatus === "Active"` and `gstRegistered === true` before approving trade credit or launching outbound sequences.

***

### Output Sample

```json
{
  "inputQuery": "80 158 929 938",
  "status": "verified",
  "abn": "80 158 929 938",
  "abnRaw": "80158929938",
  "abnChecksumValid": true,
  "abnStatus": "Active",
  "abnActiveFromDate": "12 Jun 2012",
  "legalEntityName": "CANVA PTY LTD",
  "businessNames": ["CANVA SPACE", "Canva"],
  "entityType": "Australian Private Company",
  "gstRegistered": true,
  "gstRegisteredFromDate": "01 Jul 2012",
  "acn": "158 929 938",
  "state": "NSW",
  "postcode": "2010",
  "abrLookupUrl": "https://abr.business.gov.au/ABN/View?id=80158929938",
  "domain": "canva.com",
  "websiteUrl": "https://www.canva.com/",
  "roleEmails": ["info@canva.com", "accounts@canva.com"],
  "auPhones": [],
  "detectedTechStack": ["Cloudflare", "Next.js"],
  "multiSiteFootprintSignals": [
    "2 registered Australian business/trading names under single ABN",
    "Active GST-registered corporate structure"
  ],
  "kybVerificationScore": 100,
  "kybRiskTier": "VERIFIED_LOW_RISK",
  "commercialLeadScore": 100,
  "fintechKybSummary": "CANVA PTY LTD (ABN 80 158 929 938, ACN 158 929 938) is an Active Australian Private Company in NSW 2010. GST-registered since 01 Jul 2012. KYB Tier: VERIFIED_LOW_RISK (100/100).",
  "b2bSalesPitchHook": "CANVA PTY LTD (NSW 2010) is an active GST-registered Australian Private Company (since 12 Jun 2012) running Cloudflare, Next.js — ideal verified Australian B2B target for commercial services, RevOps automation, or trade partnerships."
}
```

***

### Strict Privacy-by-Design & Australian

- **Zero Personal Emails (`0` PII):** Built in strict compliance with the **Australian Privacy Act 1988** and **Spam Act 2003**. Only corporate entity records and generic role-based contact addresses (`info@`, `accounts@`, `enquiries@`, `sales@`, `support@`, `admin@`) are returned. Any personal individual email is discarded in memory.

### API authentication

Pass your token as a header, never in the URL:

```bash
curl -X POST "https://api.apify.com/v2/acts/ausbizstack~au-abn-kyb-commercial-lead-enricher/run-sync-get-dataset-items" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" -H "Content-Type: application/json" -d '{...}'
```

### ✅ Zero Charge for Failed Domains

You are charged only when real intelligence data is returned. Failed, timed-out or unreachable targets still appear in the dataset with `status` and an error reason, but cost **$0**.

# Actor input Schema

## `targets` (type: `array`):

Enter 11-digit ABNs (e.g. '80 158 929 938'), 9-digit ACNs, Australian company names, or website domains (e.g. 'tyrrells.com.au', 'servicem8.com'). Accepts strings or objects with { query, abn, acn, businessName, domain }.

## `domains` (type: `array`):

Optional alias for targets so Clay, n8n, Make, and MCP agents can pass either `targets` or `domains`.

## `enrichWebsite` (type: `boolean`):

When true, fetches the matched or inferred corporate website (homepage + /contact + /privacy) to extract role-based corporate emails, AU phone numbers, and B2B software stack.

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

Optional Australian Business Register XML/JSON Web Services GUID. Not required — the Actor automatically queries public ABR endpoints out of the box.

## `maxConcurrency` (type: `integer`):

Maximum number of Australian entities to audit concurrently.

## `requestTimeoutSecs` (type: `integer`):

Timeout in seconds for ABR and website HTTP lookups.

## Actor input object example

```json
{
  "targets": [
    "80 158 929 938",
    "tyrrells.com.au",
    "50 158 943 072",
    "89 124 215 247",
    "53 102 443 916"
  ],
  "enrichWebsite": true,
  "maxConcurrency": 50,
  "requestTimeoutSecs": 5
}
```

# Actor output Schema

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

No description

# 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 = {
    "targets": [
        "80 158 929 938",
        "tyrrells.com.au",
        "50 158 943 072",
        "89 124 215 247",
        "53 102 443 916"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ausbizstack/au-abn-kyb-commercial-lead-enricher").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 = { "targets": [
        "80 158 929 938",
        "tyrrells.com.au",
        "50 158 943 072",
        "89 124 215 247",
        "53 102 443 916",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("ausbizstack/au-abn-kyb-commercial-lead-enricher").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 '{
  "targets": [
    "80 158 929 938",
    "tyrrells.com.au",
    "50 158 943 072",
    "89 124 215 247",
    "53 102 443 916"
  ]
}' |
apify call ausbizstack/au-abn-kyb-commercial-lead-enricher --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ausbizstack/au-abn-kyb-commercial-lead-enricher"
        }
    }
}
```

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/oebbAVbtuagoCUGNV/builds/3sDcXsGTHjCeTVxQn/openapi.json
