2026-07-06
Why there is no single Australian business data API (and how we joined ABR, ASIC, ACNC, and more)
If you have ever tried to look up an Australian business programmatically, you have probably hit the same wall. The Australian Business Register (ABR) offers a SOAP/XML web service from another era. ASIC does not help either: it publishes weekly CSV dumps, not an API. ACNC, the charity regulator, has no API at all. Three federal sources, three different shapes, and no join between them.
The three broken status quos
Each register solves its own problem and stops there.
ABR ships SearchByABN as a SOAP/XML web service. You need a GUID, a SOAP envelope, and an XML parser just to check whether an ABN is active. There is no JSON, no REST equivalent, and no bulk export that stays current.
ASIC publishes bulk data as weekly CSV files you download and load yourself. There is no query endpoint, no webhook, and no notion of "ask me about this one company." You get the whole register or nothing.
ACNC, the charity regulator, has no API in any form. If you want to know whether an entity is a registered charity, you are parsing a public data extract by hand.
These three stay operationally separate at the federal level. Nobody joins them for you, because no single agency owns "resolve an Australian entity."
The messy details (this is what actually costs you time)
Even once you accept three integrations instead of one, each source has traps that only show up once you are parsing real data.
The ASIC extract is tab-delimited despite the .csv file
extension. Column names do not match what you would guess from the ASIC website.
Each company can appear as multiple rows, current name plus historical names, so
you have to filter on the current-name indicator to avoid resolving to a name the
company used a decade ago.
The ABR SOAP response nests entity names inside arrays, and the field
structure differs by entity type. A company's name lives in one field; a sole
trader's name lives in legalName, not mainName, which is
an easy silent bug if you test only against companies.
Resource IDs and dated filenames rotate. A CSV you download this month has a different underlying identifier next month, so any pipeline that hardcodes a URL or resource ID quietly serves stale data or breaks outright.
The developer burden
To resolve one entity against these three sources yourself, you need a SOAP client for ABR, a scheduled CSV ingestion pipeline for ASIC, a manual parser for ACNC's data extract, a layer that cross-references all three by ABN or ACN, a cache so you are not re-parsing gigabytes per lookup, and a way to track freshness so you know when a snapshot is stale. That is weeks of plumbing before you have resolved a single company, and none of it is your product.
How AUO joins them into one call
The Australian business data API does that plumbing once, against all the free government sources, and exposes the result as one endpoint.
curl https://api.auo.com.au/v1/resolve \
-H "Authorization: Bearer auo_sk_test_your_key" \
-H "Content-Type: application/json" \
-d '{"abn": "46008583542"}'
The response is JSON: legal name, entity type, ABN and ACN status, charity registration if it has one, licences, and any watchlist hits, each field carrying its source and the date it was retrieved. You are not choosing between SOAP and CSV. You send one identifier and get one canonical record back.
We are honest about what that record does not contain: no directors, shareholders, or beneficial ownership, because that data is not in the free public record. It is a verification and monitoring layer, not a full KYB stack. And watchlist checks are possible-match, never a clearance: a no-match means no match found as of that date, against the named register, not "cleared."
Try it free
The full API runs against a sandbox at no cost, so you can integrate the whole flow before touching live data.