Purchase a person extract
Buy ASIC personal name extracts for up to 100 people from one search in one POST, then read their roles, licences, shareholdings and documents free for a year.
A personal name extract is ASIC's record of everything one person does on the companies register: every company where they are or were a director, secretary, alternate director or external administrator, any registered liquidator or auditor registration, the shareholdings ASIC records for them in proprietary companies, and the documents that name them. This endpoint is where you buy that extract. It takes the searchId from a free people search and between 1 and 100 of the person ids that search returned, purchases a person extract for each of them from ASIC in one request, and returns the complete extracts straight away. Each extract is stored for 12 months, so get a person, roles, shareholdings and documents read from it free of charge for as long as you hold it. The sequence and the billing rules are explained in the purchasing guide.
https://api.asicapi.dev/v1/people/extractsRequest body
Prop
Type
Send Content-Type: application/json. An Idempotency-Key header is honoured for 24 hours, so a retried request returns the extracts already purchased instead of buying them again. An X-Client-Reference header (up to 30 characters) is stored on each extract and shown on your invoice. See authentication.
Example request
curl -X POST https://api.asicapi.dev/v1/people/extracts \
-H "Authorization: Bearer $ASICAPI_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 6f1c2b4e-people-2026-09-04" \
-d '{
"searchId": "psr_01J9AB3CD4EFG5HJ6KM7NP8QR",
"personIds": ["prs_8f3k2m9q", "prs_2d7h4n1x"],
"history": false,
"includeShareholdings": false
}'Example response
The purchase is synchronous. ASIC returns the data in the same call, so the response is 201 Created with one complete extract object of kind person per person id, in the order you supplied them.
{
"object": "list",
"searchId": "psr_01J9AB3CD4EFG5HJ6KM7NP8QR",
"data": [
{
"object": "extract",
"id": "ext_01J9AG8K1L4M7N2P",
"kind": "person",
"type": "current",
"includeShareholdings": false,
"subject": {
"object": "personMatch",
"id": "prs_8f3k2m9q",
"name": {
"familyName": "SMITH",
"givenNames": ["JANE", "LOUISE"],
"formatted": "JANE LOUISE SMITH"
},
"birth": {
"date": "1975-04-03",
"locality": "MELBOURNE",
"stateOrCountry": "VIC"
},
"formerName": null
},
"purchasedAt": "2026-09-04T03:12:44Z",
"asOf": "2026-09-04T03:12:41Z",
"expiresAt": "2027-09-04T03:12:44Z",
"disclaimer": "This extract contains information derived from the Australian Securities and Investments Commission's (ASIC) database under section 1274A of the Corporations Act 2001. Please advise ASIC of any error which you may identify.",
"person": {
"id": "prs_8f3k2m9q",
"asicIdentifier": "012345678",
"name": {
"familyName": "SMITH",
"givenNames": ["JANE", "LOUISE"],
"formatted": "JANE LOUISE SMITH"
},
"birth": {
"date": "1975-04-03",
"locality": "MELBOURNE",
"stateOrCountry": "VIC"
},
"formerName": null
},
"roles": [
{
"object": "role",
"role": { "code": "DR", "label": "Director" },
"status": { "code": "C", "label": "Current" },
"appointedAt": "2015-02-01",
"ceasedAt": null,
"company": {
"acn": "004085616",
"formatted": "004 085 616",
"numberType": { "code": "ACN", "label": "Australian Company Number" },
"name": "ACME WIDGETS PTY LTD",
"type": { "code": "APTY", "label": "Australian Proprietary Company" },
"status": { "code": "REGD", "label": "Registered" },
"abn": "53004085616",
"registeredCharity": false
},
"address": {
"careOf": null,
"line1": "UNIT 7",
"street": "45 STATION STREET",
"locality": "HAWTHORN",
"state": "VIC",
"postcode": "3122",
"country": "AUSTRALIA"
},
"sourceDocument": { "documentNumber": "0E5123456", "qualifier": null }
},
{
"object": "role",
"role": { "code": "DR", "label": "Director" },
"status": { "code": "C", "label": "Current" },
"appointedAt": "2021-09-14",
"ceasedAt": null,
"company": {
"acn": "009136109",
"formatted": "009 136 109",
"numberType": { "code": "ACN", "label": "Australian Company Number" },
"name": "NORTHERN RIVERS COMMUNITY FOUNDATION LTD",
"type": { "code": "APUB", "label": "Australian Public Company" },
"status": { "code": "REGD", "label": "Registered" },
"abn": "27009136109",
"registeredCharity": true
},
"address": {
"careOf": null,
"line1": "UNIT 7",
"street": "45 STATION STREET",
"locality": "HAWTHORN",
"state": "VIC",
"postcode": "3122",
"country": "AUSTRALIA"
},
"sourceDocument": { "documentNumber": "3E4455667", "qualifier": null }
},
{
"object": "role",
"role": { "code": "VQ", "label": "Appointed Liquidator (Creditors Voluntary Winding Up)" },
"status": { "code": "C", "label": "Current" },
"appointedAt": "2023-03-20",
"ceasedAt": null,
"company": {
"acn": "004249987",
"formatted": "004 249 987",
"numberType": { "code": "ACN", "label": "Australian Company Number" },
"name": "SOUTHERN CROSS LOGISTICS PTY LTD",
"type": { "code": "APTY", "label": "Australian Proprietary Company" },
"status": { "code": "EXAD", "label": "** Under External Administration And/Or Controller Appointed **" },
"abn": "38004249987",
"registeredCharity": false
},
"address": {
"careOf": "C/- HARBOUR INSOLVENCY",
"line1": "LEVEL 12",
"street": "200 QUEEN STREET",
"locality": "MELBOURNE",
"state": "VIC",
"postcode": "3000",
"country": "AUSTRALIA"
},
"sourceDocument": { "documentNumber": "1E9876543", "qualifier": null }
}
],
"licences": [
{
"object": "licence",
"type": { "code": "RQ", "label": "Registered Liquidator" },
"status": { "code": "C", "label": "Current" },
"licenceNumber": "12345",
"licenceStatus": { "code": "APPR", "label": "Application approved and licence granted" },
"from": "2010-01-01",
"to": null,
"address": {
"careOf": null,
"line1": "LEVEL 12",
"street": "200 QUEEN STREET",
"locality": "MELBOURNE",
"state": "VIC",
"postcode": "3000",
"country": "AUSTRALIA"
},
"sourceDocument": { "documentNumber": "5E0011223", "qualifier": null }
}
],
"shareholdings": [],
"documents": [
{
"object": "document",
"documentNumber": "1E9876543",
"formCode": "505",
"formDescription": "Notification of appointment or cessation of an external administrator",
"subForms": [],
"receivedAt": "2023-03-22",
"processedAt": "2023-03-23",
"effectiveAt": "2023-03-20",
"qualifier": null,
"pageCount": 3,
"imaged": true,
"underRequisition": false,
"xbrlAvailable": false,
"xbrlDocumentNumber": null,
"status": null,
"priced": null
},
{
"object": "document",
"documentNumber": "0E5123456",
"formCode": "484",
"formDescription": "Change to company details",
"subForms": [
{ "code": "484A", "description": "Change officeholder name or address" }
],
"receivedAt": "2015-02-09",
"processedAt": "2015-02-10",
"effectiveAt": "2015-02-01",
"qualifier": null,
"pageCount": 4,
"imaged": true,
"underRequisition": false,
"xbrlAvailable": false,
"xbrlDocumentNumber": null,
"status": null,
"priced": null
}
],
"notices": [
{
"type": "acnc_charity",
"acn": "009136109",
"text": "This company is registered as a charity with the Australian Charities and Not-for-Profits Commission (ACNC). To find out if the person is a current director of this company, search the company on the Charities register at www.acnc.gov.au."
}
],
"meta": {
"billable": true,
"product": "person_extract",
"requestId": "req_01J9AG8K1L4M7N2P"
}
},
{
"object": "extract",
"id": "ext_01J9AG8K1L4M7N2Q",
"kind": "person",
"type": "current",
"includeShareholdings": false,
"subject": {
"object": "personMatch",
"id": "prs_2d7h4n1x",
"name": {
"familyName": "SMITH",
"givenNames": ["JANE", "LOUISE"],
"formatted": "JANE LOUISE SMITH"
},
"birth": {
"date": "1971-11-22",
"locality": "BRISBANE",
"stateOrCountry": "QLD"
},
"formerName": null
},
"purchasedAt": "2026-09-04T03:12:44Z",
"asOf": "2026-09-04T03:12:41Z",
"expiresAt": "2027-09-04T03:12:44Z",
"disclaimer": "This extract contains information derived from the Australian Securities and Investments Commission's (ASIC) database under section 1274A of the Corporations Act 2001. Please advise ASIC of any error which you may identify.",
"person": {
"id": "prs_2d7h4n1x",
"asicIdentifier": "023456789",
"name": {
"familyName": "SMITH",
"givenNames": ["JANE", "LOUISE"],
"formatted": "JANE LOUISE SMITH"
},
"birth": {
"date": "1971-11-22",
"locality": "BRISBANE",
"stateOrCountry": "QLD"
},
"formerName": null
},
"roles": [
{
"object": "role",
"role": { "code": "SR", "label": "Secretary" },
"status": { "code": "C", "label": "Current" },
"appointedAt": "2019-08-01",
"ceasedAt": null,
"company": {
"acn": "001000004",
"formatted": "001 000 004",
"numberType": { "code": "ACN", "label": "Australian Company Number" },
"name": "BLUE HARBOUR HOLDINGS PTY LTD",
"type": { "code": "APTY", "label": "Australian Proprietary Company" },
"status": { "code": "REGD", "label": "Registered" },
"abn": "71001000004",
"registeredCharity": false
},
"address": {
"careOf": null,
"line1": null,
"street": "9 RIVERSIDE DRIVE",
"locality": "WEST END",
"state": "QLD",
"postcode": "4101",
"country": "AUSTRALIA"
},
"sourceDocument": { "documentNumber": "8E3344556", "qualifier": null }
}
],
"licences": [],
"shareholdings": [],
"documents": [
{
"object": "document",
"documentNumber": "8E3344556",
"formCode": "484",
"formDescription": "Change to company details",
"subForms": [
{ "code": "484B", "description": "Appoint or cease officeholder" }
],
"receivedAt": "2019-08-05",
"processedAt": "2019-08-06",
"effectiveAt": "2019-08-01",
"qualifier": null,
"pageCount": 2,
"imaged": true,
"underRequisition": false,
"xbrlAvailable": false,
"xbrlDocumentNumber": null,
"status": null,
"priced": null
}
],
"notices": [],
"meta": {
"billable": true,
"product": "person_extract",
"requestId": "req_01J9AG8K1L4M7N2P"
}
}
],
"hasMore": false,
"nextCursor": null,
"totalCount": 2,
"meta": {
"billable": true,
"product": "person_extract",
"quantity": 2,
"requestId": "req_01J9AG8K1L4M7N2P"
}
}Response fields
| Field | Type | Description |
|---|---|---|
object | string | Always list. |
searchId | string | The search the extracts were purchased against. |
data[] | array | One extract object per requested person id, in the order you supplied them. |
data[].object | string | Always extract. |
data[].id | string | Extract id, prefixed ext_. Pass it as the extract query parameter on the person read endpoints, or to GET /v1/extracts/{id}. |
data[].kind | string | Always person. |
data[].type | string | current when history was false, historical when it was true. |
data[].includeShareholdings | boolean | Whether shareholdings and Member roles were purchased with this extract. |
data[].subject | object | The personMatch the extract was purchased for: object, id, name, birth, formerName, exactly as returned by the search. |
data[].purchasedAt | timestamp | When the extract was bought from ASIC, RFC 3339 UTC. |
data[].asOf | timestamp | The moment ASIC produced the data. The extract is a snapshot at this time and never refreshes. |
data[].expiresAt | timestamp | When the extract stops being readable, 12 months after purchasedAt. |
data[].disclaimer | string | ASIC's section 1274A disclaimer, to be displayed with the extract. |
data[].person | object | The person on the register: id, asicIdentifier (ASIC's stable identifier for the name record, up to 9 digits), name, birth, formerName. |
data[].roles[] | array | Company roles held by the person. Every field is documented on get a person. |
data[].licences[] | array | Registrations and licences the person holds as a natural person. See get a person. |
data[].shareholdings[] | array | Shareholdings ASIC records for the person. Empty unless includeShareholdings was true. See list a person's shareholdings. |
data[].documents[] | array | Documents lodged in relation to the person, newest first. See list a person's documents. |
data[].notices[] | array | Text ASIC requires to be shown with the extract: type (acnc_charity or same_name), acn, text. See get a person. |
data[].meta | object | Per-person billing: billable (true in production), product (person_extract) and the shared requestId. |
hasMore | boolean | Always false; the purchase is returned whole. |
nextCursor | null | Always null. |
totalCount | integer | Number of extracts returned, equal to the number of ids requested. |
meta.billable | boolean | true in production, false in the sandbox. |
meta.product | string | person_extract. |
meta.quantity | integer | Number of person_extract products billed by this request, one per person. |
meta.requestId | string | Echoes X-Request-Id. |
Reading an extract later
Every extract you purchase can be fetched again by id, free of charge, for 12 months.
https://api.asicapi.dev/v1/extracts/{id}curl https://api.asicapi.dev/v1/extracts/ext_01J9AG8K1L4M7N2P \
-H "Authorization: Bearer $ASICAPI_KEY"The response is the single extract object shown above, with meta.billable set to false. GET /v1/extracts?kind=person&limit=&cursor= lists the person extracts you hold. Both endpoints are shared with company and register extracts and are documented in full on company extracts. For day-to-day reads use the person endpoints, which read from the most recent extract you hold for the person: get a person, roles, shareholdings and documents.
Errors
The request is validated as a whole before anything is sent to ASIC. If any id fails, nothing is purchased and nothing is billed.
| Code | HTTP status | When |
|---|---|---|
validation_error | 422 | searchId or personIds is missing, personIds is empty or has more than 100 entries, an id is duplicated, or history or includeShareholdings is not a boolean. param points at the offending field, for example personIds[3]. |
search_expired | 410 | The search is more than 30 days old. Run the search again to obtain fresh ids. |
search_owner_mismatch | 403 | The search was created under a different account. |
person_not_found | 404 | A person id was not among those returned by the search. param names the entry. |
person_too_many_roles | 422 | ASIC found more than 999 roles for one of the names and abandoned the whole purchase. details.personId identifies the person; remove it and retry, then contact support to arrange that person separately. |
product_not_enabled | 403 | Person extracts are not enabled on your account. |
idempotency_conflict | 409 | The Idempotency-Key was already used with a different request body. |
asic_unavailable | 503 | The ASIC database is unavailable. Nothing was purchased; retry with backoff. |
Notes from the ASIC register
- Search, purchase, read. ASIC treats a people search as the first stage of a personal name extract and the extract itself as the second. asicapi keeps that model and adds a third stage: the search is free, this POST buys the extract, and every read of it for the next 12 months is free. See the purchasing guide.
- One purchase, many names. ASIC's personal name extract accepts a search results identifier and up to 100 of the personal name identifiers from that search. This endpoint maps directly onto that request, so all 100 people come back in a single ASIC transaction.
- Billing is per person. ASIC bills each name extracted, and asicapi reports the count in
meta.quantity. A current and a historical extract cost the same, andincludeShareholdingsdoes not change the price. Use the birth details on the search results to narrow the candidates before you buy. - Current or historical is decided at purchase. ASIC only returns ceased roles, former licences and ceased shareholdings in a historical extract, and only returns shareholdings when they are asked for. Decide
historyandincludeShareholdingshere; the read endpoints cannot add them later and returnextract_requiredif you ask for records your extract does not contain. - All or nothing. If ASIC abandons the extract because one name has more than 999 roles, no people are returned and nothing is billed. The error identifies the person so you can exclude them.
- Snapshots. An extract is a picture of the register at
asOf. Documents lodged after that moment are not reflected in it. To see changes, purchase again; the new extract has a new id and is billed again, and the read endpoints switch to it automatically because they use the most recent extract you hold. - Notices. The ACNC charity notice and the same-name notice described on get a person appear per person in
notices[]. - Response size. A person with hundreds of roles and documents produces a large object. Purchase fewer people per request when you know the names belong to professional directors or liquidators.
- Sandbox. With a test key, names are placeholders such as
FAMILY NAME, GIVEN NAME1, the purchase succeeds, the extract is stored and readable as in production, andmeta.billableisfalseat both levels.
Related
Purchasing guide
Free lookups, purchased extracts and asynchronous orders explained.
Search people
Obtain the searchId and person ids this endpoint needs.
Get a person
Read the extract you hold as a single person object.
List a person's roles
Paginated roles from the extract with status and role filters.
Company extracts
The shared GET /v1/extracts endpoints and the company purchase endpoint.
People on the ASIC register
How ASIC identifies people and what a personal name extract contains.
Errors
Error envelope and every error code, including extract_required.
List documents lodged in relation to a person
List the ASIC forms lodged that name a person as a director, secretary, liquidator or member, with document numbers, form codes, dates and page counts.
Documents API
Endpoints for ASIC lodged documents: look up any document by number, order a PDF image of the whole document or a page range, and track image and extract orders to download.