asicapidocs

ASIC code tables API

Retrieve the code tables that decode company types, statuses, office holder roles, address types and register codes as JSON with the asicapi REST API.

ASIC stores almost every classified value on its registers as a short code: APTY for an Australian proprietary company, REGD for registered, DR for director, RG for registered office. The code tables give those codes their human-readable descriptions. asicapi already expands every code in its responses to { code, label }, so most integrations never need to call these endpoints, but they are useful for building dropdowns, validating filter parameters such as types[] or role[], and keeping a local copy of the tables in sync when ASIC adds a code. Both endpoints are free: they never contact ASIC and are never billed, like all of the reference data endpoints.

Each table is addressed by a readable slug such as office-holder-roles, and the same slugs appear throughout these docs. Where ASIC's own table uses bare digits or letters as codes (jurisdictions and organisation number types), asicapi returns readable codes such as NSW, ASIC and ACN and keeps ASIC's original value on the entry as asicCode.

List code tables

GEThttps://api.asicapi.dev/v1/reference/code-tables

Query parameters

This endpoint takes no query parameters.

Example request

Request
curl https://api.asicapi.dev/v1/reference/code-tables \
  -H "Authorization: Bearer $ASICAPI_KEY"

Example response

Response
{
  "object": "list",
  "data": [
    { "object": "codeTableSummary", "table": "organisation-types", "title": "Organisation types", "entryCount": 17, "docsUrl": "https://asicapi.dev/docs/reference/organisation-types" },
    { "object": "codeTableSummary", "table": "organisation-classes", "title": "Organisation classes", "entryCount": 10, "docsUrl": "https://asicapi.dev/docs/reference/organisation-types" },
    { "object": "codeTableSummary", "table": "organisation-sub-classes", "title": "Organisation sub-classes", "entryCount": 29, "docsUrl": "https://asicapi.dev/docs/reference/organisation-types" },
    { "object": "codeTableSummary", "table": "states", "title": "States and territories", "entryCount": 12, "docsUrl": "https://asicapi.dev/docs/reference/jurisdictions-and-states" },
    { "object": "codeTableSummary", "table": "office-holder-roles", "title": "Office holder roles", "entryCount": 37, "docsUrl": "https://asicapi.dev/docs/reference/office-holder-roles" },
    { "object": "codeTableSummary", "table": "record-status", "title": "Record status", "entryCount": 3, "docsUrl": "https://asicapi.dev/docs/reference/record-status-and-other-codes" },
    { "object": "codeTableSummary", "table": "charge-types", "title": "Charge types", "entryCount": 3, "docsUrl": "https://asicapi.dev/docs/reference/record-status-and-other-codes" },
    { "object": "codeTableSummary", "table": "charge-statuses", "title": "Charge statuses", "entryCount": 2, "docsUrl": "https://asicapi.dev/docs/reference/record-status-and-other-codes" },
    { "object": "codeTableSummary", "table": "address-types", "title": "Address types", "entryCount": 5, "docsUrl": "https://asicapi.dev/docs/reference/address-types" },
    { "object": "codeTableSummary", "table": "jurisdictions", "title": "Jurisdictions", "entryCount": 9, "docsUrl": "https://asicapi.dev/docs/reference/jurisdictions-and-states" },
    { "object": "codeTableSummary", "table": "court-types", "title": "Court types", "entryCount": 3, "docsUrl": "https://asicapi.dev/docs/reference/jurisdictions-and-states" },
    { "object": "codeTableSummary", "table": "organisation-statuses", "title": "Organisation statuses", "entryCount": 21, "docsUrl": "https://asicapi.dev/docs/reference/organisation-statuses" },
    { "object": "codeTableSummary", "table": "information-products", "title": "Information products", "entryCount": 6, "docsUrl": "https://asicapi.dev/docs/reference/record-status-and-other-codes" },
    { "object": "codeTableSummary", "table": "deregistration-reasons", "title": "Deregistration reasons", "entryCount": 17, "docsUrl": "https://asicapi.dev/docs/reference/organisation-statuses" },
    { "object": "codeTableSummary", "table": "company-licence-types", "title": "Licence types (company relationships)", "entryCount": 7, "docsUrl": "https://asicapi.dev/docs/reference/register-types" },
    { "object": "codeTableSummary", "table": "company-roles", "title": "Roles held by companies", "entryCount": 6, "docsUrl": "https://asicapi.dev/docs/reference/office-holder-roles" },
    { "object": "codeTableSummary", "table": "person-additional-roles", "title": "Additional person roles", "entryCount": 1, "docsUrl": "https://asicapi.dev/docs/reference/office-holder-roles" },
    { "object": "codeTableSummary", "table": "asic-fee-codes", "title": "ASIC fee codes", "entryCount": 33, "docsUrl": "https://asicapi.dev/docs/reference/record-status-and-other-codes" },
    { "object": "codeTableSummary", "table": "register-types", "title": "Register types", "entryCount": 16, "docsUrl": "https://asicapi.dev/docs/reference/register-types" },
    { "object": "codeTableSummary", "table": "weekly-summary-types", "title": "Weekly summary types", "entryCount": 6, "docsUrl": "https://asicapi.dev/docs/reference/weekly-summary-types" },
    { "object": "codeTableSummary", "table": "weekly-summary-sub-types", "title": "Weekly summary sub-types", "entryCount": 22, "docsUrl": "https://asicapi.dev/docs/reference/weekly-summary-types" },
    { "object": "codeTableSummary", "table": "licence-ban-types", "title": "Licence ban types", "entryCount": 6, "docsUrl": "https://asicapi.dev/docs/reference/register-types" },
    { "object": "codeTableSummary", "table": "suspension-reasons", "title": "Suspension reasons", "entryCount": 17, "docsUrl": "https://asicapi.dev/docs/reference/register-types" },
    { "object": "codeTableSummary", "table": "authorities-held", "title": "Authorities held", "entryCount": 4, "docsUrl": "https://asicapi.dev/docs/reference/register-types" },
    { "object": "codeTableSummary", "table": "register-status", "title": "Register status indicators", "entryCount": 2, "docsUrl": "https://asicapi.dev/docs/reference/register-types" },
    { "object": "codeTableSummary", "table": "pre-asic-legislation", "title": "Pre-ASIC legislation", "entryCount": 6, "docsUrl": "https://asicapi.dev/docs/reference/register-types" },
    { "object": "codeTableSummary", "table": "register-address-types", "title": "Register address types", "entryCount": 4, "docsUrl": "https://asicapi.dev/docs/reference/address-types" },
    { "object": "codeTableSummary", "table": "register-trading-types", "title": "Register trading types", "entryCount": 3, "docsUrl": "https://asicapi.dev/docs/reference/register-types" },
    { "object": "codeTableSummary", "table": "number-types", "title": "Organisation number types", "entryCount": 4, "docsUrl": "https://asicapi.dev/docs/reference/record-status-and-other-codes" },
    { "object": "codeTableSummary", "table": "licence-statuses", "title": "Licence statuses", "entryCount": 5, "docsUrl": "https://asicapi.dev/docs/reference/register-types" },
    { "object": "codeTableSummary", "table": "person-licence-roles", "title": "Licence and register roles (people)", "entryCount": 12, "docsUrl": "https://asicapi.dev/docs/reference/office-holder-roles" },
    { "object": "codeTableSummary", "table": "document-list-organisation-types", "title": "Organisation types with document lists", "entryCount": 7, "docsUrl": "https://asicapi.dev/docs/reference/organisation-types" },
    { "object": "codeTableSummary", "table": "register-officer-roles", "title": "Officer roles on registers", "entryCount": 8, "docsUrl": "https://asicapi.dev/docs/reference/office-holder-roles" },
    { "object": "codeTableSummary", "table": "governance-types", "title": "Governance types", "entryCount": 2, "docsUrl": "https://asicapi.dev/docs/reference/organisation-types" },
    { "object": "codeTableSummary", "table": "scheme-categories", "title": "Scheme categories", "entryCount": 25, "docsUrl": "https://asicapi.dev/docs/reference/scheme-categories" },
    { "object": "codeTableSummary", "table": "controlling-jurisdictions", "title": "Controlling jurisdictions", "entryCount": 13, "docsUrl": "https://asicapi.dev/docs/reference/jurisdictions-and-states" }
  ],
  "hasMore": false,
  "nextCursor": null,
  "totalCount": 36
}

Response fields

FieldTypeDescription
objectstringAlways list.
data[].objectstringAlways codeTableSummary.
data[].tablestringReadable slug of the table. Pass it as {table} to fetch the entries.
data[].titlestringDescriptive title of the table.
data[].entryCountintegerNumber of codes currently in the table.
data[].docsUrlstringThe page in these docs that explains the table.
hasMorebooleanAlways false.
nextCursornullAlways null.
totalCountintegerNumber of tables.

Get a code table

GEThttps://api.asicapi.dev/v1/reference/code-tables/{table}

Path parameters

Prop

Type

Query parameters

This endpoint takes no query parameters.

Example request

Request
curl https://api.asicapi.dev/v1/reference/code-tables/number-types \
  -H "Authorization: Bearer $ASICAPI_KEY"

Example response

Response
{
  "object": "codeTable",
  "table": "number-types",
  "title": "Organisation number types",
  "docsUrl": "https://asicapi.dev/docs/reference/record-status-and-other-codes",
  "entries": [
    { "code": "ACN", "label": "Australian Company Number", "asicCode": "1" },
    { "code": "ARBN", "label": "Australian Registered Body Number", "asicCode": "2" },
    { "code": "NUMBER", "label": "Registration number", "asicCode": "3" },
    { "code": "ARSN", "label": "Australian Registered Scheme Number", "asicCode": "4" }
  ]
}

Response fields

FieldTypeDescription
objectstringAlways codeTable.
tablestringSlug of the table.
titlestringDescriptive title of the table.
docsUrlstringThe reference page for this table.
entries[]arrayEvery code in the table, in ASIC's order.
entries[].codestringThe code that appears as code in API responses and that filter parameters accept. For most tables this is ASIC's code verbatim and uppercase.
entries[].labelstringDescription of the code.
entries[].asicCodestring or nullASIC's original code when asicapi uses a readable code instead. Only the jurisdiction, controlling jurisdiction and number type tables have one; it is null elsewhere.

Code tables and where they are used

TableUsed forReference page
organisation-typescompany.type, types[] search filterOrganisation types
organisation-classescompany.classOrganisation types
organisation-sub-classescompany.subClassOrganisation types
document-list-organisation-typesTypes for which GET /v1/companies/{id}/documents is availableOrganisation types
governance-typescompany.governanceTypeOrganisation types
organisation-statusescompany.statusOrganisation statuses
deregistration-reasonsderegistration.reasonOrganisation statuses
office-holder-rolesofficeholder.role, role[] filterOffice holder roles
company-rolesrelationships.rolesHeld[].roleOffice holder roles
register-officer-rolesofficeRoles[].role on professional register extractsOffice holder roles
person-licence-roleslicences[].type on person extractsOffice holder roles
person-additional-rolesSH member role on person extractsOffice holder roles
address-typescompany address.type, type[] filterAddress types
register-address-typesaddresses[].type on register extractsAddress types
statesstateOfRegistration, court stateJurisdictions and states
jurisdictionsregistration.jurisdiction on registersJurisdictions and states
controlling-jurisdictionscontrollingJurisdiction, jurisdiction search filterJurisdictions and states
court-typescourt.type on office holdersJurisdictions and states
register-typesregister on register entries and extractsRegister types
company-licence-typesrelationships.licences[].typeRegister types
licence-ban-typesbans[].type on banned representative extractsRegister types
suspension-reasonssuspensions[].reason on professional register extractsRegister types
authorities-heldAuthority categories for representativesRegister types
register-statusCurrent or suspended on registersRegister types
pre-asic-legislationregistration.preAsicLegislationRegister types
register-trading-typestradingNames[].type on register extractsRegister types
licence-statuseslicences[].licenceStatus on person extractsRegister types
scheme-categoriescompany.schemeCategories[]Scheme categories
weekly-summary-typesweeklySummary.typeWeekly summary types
weekly-summary-sub-typesweeklySummaryItem.subTypeWeekly summary types
record-statusstatus on office holders, addresses, share classes, membersRecord status and other codes
charge-typescharge.typeRecord status and other codes
charge-statusescharge.statusRecord status and other codes
number-typesnumberType on every organisation referenceRecord status and other codes
information-productsASIC's product families behind the purchase and order endpointsRecord status and other codes
asic-fee-codesThe ASIC fee code that appears on invoices for each meta.product of a purchase or orderRecord status and other codes

Errors

CodeHTTP statusWhen
not_found_error with code code_table_not_found404{table} is not one of the slugs above.
unauthorized401The API key is missing or invalid. See authentication.
rate_limited429You exceeded 600 requests per minute or 20 concurrent requests.

Notes from the ASIC register

  • ASIC adds codes without notice. New codes are added to tables as legislation and ASIC practice change, and ASIC does not publish a new specification for them. asicapi refreshes its copy of each table from ASIC, but a response can still carry a code before the label is known. In that case label equals code. Never reject a record because its code is unfamiliar.
  • Converted state data. ASIC's database includes records converted from the state and territory corporate affairs systems that preceded it in 1991. Some of that data does not comply with the current code tables. Where a deregistration reason code is not found in the deregistration reasons table, treat the reason as simply "deregistered".
  • Codes are case-sensitive and verbatim. Apart from the three tables with an asicCode, asicapi returns ASIC codes exactly as ASIC issues them, including spaces in a handful of deregistration reasons (ALT REGN, SA ACT). Compare on code, never on label; labels are corrected from time to time.
  • Sandbox. Code tables are identical in the sandbox and in production.

On this page