# ASIC Extracts

The ASIC Extract API allows you to generate official ASIC extracts for companies and individuals. Extracts can be returned as **JSON** for system integration or **PDF** for human-readable reports.

## What is an ASIC Extract?

An ASIC extract is an official record containing company or personal information sourced from the Australian Securities and Investments Commission (ASIC). The API enables you to request these extracts on demand and retrieve them programmatically.

ASIC extracts play an important role in due-diligence, compliance, and operational workflows. This guide provides an overview of how to request and retrieve these extracts using our API in a consistent and reliable way. Once familiar with the extract types and request process, your teams can automate information gathering and incorporate ASIC data directly into your business processes.

## Extract Types Available

A number of different extracts are available from the ASIC API. These can be returned as JSON or PDF.

 - Company Current Extract
 - Company Historical Extract
 - Company Relational Extract
 - Person Current Extract
 - Person Historical Extract

## When to Use Each Extract Type

| Extract Type       | Description                                                            | Typical Use Case                                             |
| ------------------ | ---------------------------------------------------------------------- | ------------------------------------------------------------ |
| Company Current    | Current registration details only.                                     | Confirm up-to-date company details and status.               |
| Company Historical | Full history of changes over time.                                     | Compliance checks, due diligence, historical analysis.       |
| Company Relational | Relationships between a company and other entities.                    | Group structure, related entities, and relationship mapping. |
| Person Current     | A person’s current roles and shareholdings.                            | Check current directorships and officeholder roles.          |
| Person Historical  | A person’s current and past roles, licences, and company associations. | Deep background checks and historical involvement analysis.  |


## Extract Types

### Company Current Extract

Provides a snapshot of a company's **current registration details**, including officeholders, registered address, share structure (where applicable), and status at the time of the extract.

- [Example Company Current Extract PDF](/docs/files/asic-extract/extract_company_current.pdf){ target="_blank" }
- [Example Company Current Extract JSON](/docs/files/asic-extract/extract_company_current.json){ target="_blank" }

### Company Historical Extract

Provides a **full history** of a company's registration details, including current and past names, former officeholders, past addresses, share-structure changes, and historic status information.

- [Example Company Historical Extract PDF](/docs/files/asic-extract/extract_company_historical.pdf){ target="_blank" }
- [Example Company Historical Extract JSON](/docs/files/asic-extract/extract_company_historical.json){ target="_blank" }

### Company Relational Extract

Provides a **relationship focused** view of how a company relates to other entities, including:

- Its ultimate holding company
- Entities in which it holds interests, licences, or roles
- Membership or directorship links.

- [Example Company Relational Extract PDF](/docs/files/asic-extract/extract_company_relational.pdf){ target="_blank" }
- [Example Company Relational Extract JSON](/docs/files/asic-extract/extract_company_relational.json){ target="_blank" }

### Person Current Extract

Provides a person's **current involvement** with companies, including their officeholder roles, directorships, or shareholdings as recorded by ASIC.

- [Example Person Current Extract PDF](/docs/files/asic-extract/extract_person_current.pdf){ target="_blank" }
- [Example Person Current Extract JSON](/docs/files/asic-extract/extract_person_current.json){ target="_blank" }

### Person Historical Extract

Provides a person's **current and past** corporate roles, shareholdings, licences and other company-related associations as recorded by ASIC.

- [Example Person Historical Extract PDF](/docs/files/asic-extract/extract_person_historical.pdf){ target="_blank" }
- [Example Person Historical Extract JSON](/docs/files/asic-extract/extract_person_historical.json){ target="_blank" }

## API Usage

There are four API endpoints used to perform ASIC extracts for companies and individuals. Two are used for searching, and two are used for requesting and retrieving extract results.

| Endpoint Name                                               | Description                                                                                          |
| ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| [ASIC Extract Person Search](#asic-extract-person-search)   | Searches the ASIC officeholder/shareholder register for a person using their name and date of birth. |
| [ASIC Extract Company Search](#asic-extract-company-search) | Searches the ASIC company register for a company using the company’s name, ABN, or ACN.              |
| [ASIC Extract](#asic-extract)                               | Requests a current, historical, or relational ASIC extract for a company or individual.              |
| [Retrieve ASIC Extract](#retrieve-asic-extract)             | Retrieves the results of an ASIC extract request.                                                    |

## Quick Start

The following sections show the typical workflow for requesting and retrieving ASIC extracts for companies and individuals.

### Company Extract (Current, Historical or Relational)

1. (Optional) Use **ASIC Extract Company Search** to find a company by name, partial name, ABN, or ACN.
2. Identify the company of interest and note its `abn` or `acn`.
3. Use the **ASIC Extract** endpoint to request the extract for the company, providing the `abn` or `acn`.
4. Use **Retrieve ASIC Extract** with the returned `api_reference` to poll for the extract and retrieve it in JSON or PDF format.

### Person Extract (Current or Historical)

1. Use **ASIC Extract Person Search** to search for a person using their name and date of birth.
2. From the matches, select the person of interest and note the `person_id`, `search_id`, and any `additional_person_ids`.
3. Use the **ASIC Extract** endpoint to request the extract for the person, providing the `person_id`, `search_id`, and any `additional_person_ids`.
4. Use **Retrieve ASIC Extract** with the `api_reference` returned by the **ASIC Extract** endpoint to obtain the extract.

### Processing Time

The system begins generating the extract as soon as the ASIC Extract endpoint is called.

- Extract generation normally completes within a few seconds.
- During busy periods, processing can take **up to 10 minutes**.
- The **Retrieve ASIC Extract** endpoint can be used to check the status and retrieve the extract once it is ready.

### Billing

> Note: Calls to the ASIC Extract endpoint outside of the sandbox environment will be billed.
Refer to your commercial agreement or pricing documentation for details.

## API Endpoints

More technical details on the API endpoints (including full request/response schemas, status codes, and error formats) are available in the [API Reference section](/docs/reference#asic) of the documentation.

### ASIC Extract Person Search

The ASIC Extract Person Search endpoint is used to search the ASIC officeholder/shareholder register for a person using their name and date of birth.

This search returns a list of matching ASIC identities, including the `person_id` and `search_id` you must supply to the **ASIC Extract** endpoint.

The search may also return **additional person IDs** that are linked to the person of interest. These should be included in the `additional_person_ids` parameter when requesting the extract to ensure all linked identities are captured.

#### Example Search

```json
{
    "first_name": "John",
    "middle_name": "Michael",
    "last_name": "Doe",
    "birth_date": "1980-05-15",
    "extract_type": "historical"
}
```

#### Example Response

```json
{
    "message": "Ok",
    "function": "asic_extract_person_search",
    "api_reference": "0653317d-4d78-4e39-bd08-f7edbc30a656",
    "matches": {
        "person_id": "123456780",
        "search_id": "11223344",
        "name": "JOHN MICHAEL DOE",
        "dob": "1980-05-15",
        "state": "NSW",
        "suburb": "SYDNEY",
        "additional": [
            {
                "person_id": "123456781",
                "search_id": "11223344",
                "name": "JOHN MICHAEL DOE",
                "dob": null,
                "state": null,
                "suburb": null,
                "additional": []
            }
        ]
    }
}
```

> Important: The `person_id`, `search_id`, and any `additional_person_ids` are only valid for 24 hours.
If you need to request an extract for a person after this time, you must perform a new person search.

The data returned from the ASIC Extract Person Search endpoint can then be passed to the ASIC Extract endpoint to request the extract for that person.

See the [ASIC Extract Person Search API documentation](/docs/reference/asic_extract_person_search) for detailed information on the request and response.

### ASIC Extract Company Search

The ASIC Extract Company Search endpoint is used to search the ASIC company register for a company using the company's name, ABN, or ACN.

This search returns a list of matching ASIC companies, including the `abn` and `acn` you must supply to the **ASIC Extract** endpoint.

This function is provided as a convenience to obtain the ABN/ACN for a company. Unlike the ASIC Extract Person Search process, there is **no requirement** to perform a company search before requesting an extract, as only the `abn` or `acn` is required by the extract endpoint.

#### Example Search

```json
{
    "search": "Tech Innovators",
    "status": "registered"
}
```

#### Example Response

```json
{
    "message": "Ok",
    "function": "asic_extract_company_search",
    "api_reference": "c3c74e96-ead1-482d-bfb5-5b902090cf0c",
    "matches": [
        {
            "name": {
                "name": "TECH INNOVATORS LTD"
            },
            "identifier": {
                "numberHeading": "ACN",
                "number": 111111114
            },
            "abrEntity": {
                "abn": "32111111114",
                "entityName": "TECH INNOVATORS LTD",
                "entityType": "PRV",
                "effectiveDate": "2018-03-15"
            },
            ...
        }
    ],
    "more_results": false
}
```

See the [ASIC Extract Company Search API documentation](/docs/reference/asic_extract_company_search) for detailed information on the request and response.

### ASIC Extract

The ASIC Extract endpoint is used to request the generation of a **current**, **historical**, or **relational** ASIC extract for a company or individual.

> Note: Calls to this endpoint outside of the sandbox will be billed.

#### Example Request

```json
{
    "type": "company",
    "abn": "32111111114",
    "extract_type": "current"
}
```

#### Example Response

```json
{
    "message": "Ok",
    "function": "asic_extract",
    "api_reference": "0653317d-4d78-4e39-bd08-f7edbc30a656"
}
```

The endpoint returns immediately with an `api_reference`, and the system begins generating the extract in the background.

The returned `api_reference` can then be used to retrieve the results of the extract using the **Retrieve ASIC Extract** endpoint.

#### ABN validation

Company extracts are only available for companies. When an `abn` is supplied, it is first resolved against the company registers; if the ABN belongs to an individual (for example a sole trader) or cannot be matched to a company, the request is rejected with a `400` response:

```json
{
    "message": "There is no ACN associated with this ABN. Company extracts require the entity to have an ACN."
}
```

In the sandbox environment, any valid ABN that does not belong to one of the sandbox companies (for example `51824753556`) can be used to reproduce this response.

See the [ASIC Extract API documentation](/docs/reference/asic_extract) for detailed information on the request and response.

### Retrieve ASIC Extract

The Retrieve ASIC Extract endpoint is used to retrieve the results of an ASIC extract request.

Both JSON and PDF formats are available. To return a PDF, append `?pdf=true` to the URL.

#### Example Request

```
GET /asic_extract/0653317d-4d78-4e39-bd08-f7edbc30a656
```

#### Example Response

```json
{
    "message": "Ok",
    "function": "asic_extract_show",
    "api_reference": "9a2c2264-2e36-4b00-97a0-686a89f306c2",
    "extract": {
        "id": "e947f82f-d259-4510-8870-fab2eda4d562",
        "entity_type": "company",
        "cases": [],
        "entity": {
            "abn": "33234567894",
            "acn": "234567894",
            "name": "Creative Media Agency",
            ...
        }
        ...
    }
    ...
}
```

#### Example PDF Request

```
GET /asic_extract/9a2c2264-2e36-4b00-97a0-686a89f306c2?pdf=true
```

This returns the extract as a PDF document in the response body.

#### Waiting for the extract to be ready

As noted previously, generation is normally completed within a few seconds but can take up to 10 minutes if the ASIC service is busy.

When the extract is not yet complete, the endpoint may wait for up to 30 seconds for the extract to be ready. If the extract is still not ready, the endpoint will return a `202` status code and the response will be:

```json
{
    "message": "Extract is still being processed. Please try again later."
}
```

You can then repeat the request with the same `api_reference` until the extract is returned.
