Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/aemo-data-holder-customers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no email required.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
contact:
email: contact@dsb.gov.au
name: Data Standards Body
url: https://dsb.gov.au/
description: Specifications for common endpoints applicable to all data holders (except secondary data holders).
license:
name: MIT License
url: https://opensource.org/licenses/MIT
title: CDR Common Data Holder Customers API
version: 1.36.0
servers:
- description: MTLS
url: https://mtls.dh.example.com/cds-au/v1
tags:
- description: Data Holder Customer endpoints
name: Data Holder Customers
x-shortName: Customers
paths:
/common/customer:
get:
description: 'Obtain basic information on the customer that has authorised the current session.
<h3 id=''cdr-common-api_get-customer_conventions''>Conventions</h3>
In the customer payloads there are conventions that are explained below.
#### Given Names
_firstName_ represents the first of a person''s given names.
_middleNames_ represents a collection of given names if the person has more than one given name.
Where a data holder holds a person''s given names as a single string in source systems, it may not possible in some situations to reliably split these given names into their component first and middle names. In these situations, data holders **MAY** use the _firstName_ field to return the single string of given names and an empty _middleNames_ array.
For example, if a person''s given names are "John Paul Winston" and the Data Holder is unable to determine which is the first name, they can return `"firstName": "John Paul Winston"`.'
operationId: getCustomer
parameters:
- description: Version of the API endpoint requested by the client. Must be set to a positive integer. The endpoint should respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers). If the value of [_x-min-v_](#request-headers) is equal to or higher than the value of [_x-v_](#request-headers) then the [_x-min-v_](#request-headers) header should be treated as absent. If all versions requested are not supported then the endpoint **MUST** respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers).
explode: false
in: header
name: x-v
required: true
schema:
type: string
style: simple
- description: Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The endpoint should respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers). If all versions requested are not supported then the endpoint **MUST** respond with a `406 Not Acceptable`.
explode: false
in: header
name: x-min-v
required: false
schema:
type: string
style: simple
- description: An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder **MUST** play back this value in the _x-fapi-interaction-id_ response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.
explode: false
in: header
name: x-fapi-interaction-id
required: false
schema:
type: string
style: simple
- description: The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.
explode: false
in: header
name: x-fapi-auth-date
required: false
schema:
type: string
style: simple
x-conditional: true
- description: The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.
explode: false
in: header
name: x-fapi-customer-ip-address
required: false
schema:
type: string
style: simple
- description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User-Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.
explode: false
in: header
name: x-cds-client-headers
required: false
schema:
type: string
style: simple
x-conditional: true
x-cds-type: Base64
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseCommonCustomer'
description: Successful response
headers:
x-v:
$ref: '#/components/headers/XV'
x-fapi-interaction-id:
$ref: '#/components/headers/XFAPIInteractionId'
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseErrorListV2'
description: The following error codes **MUST** be supported:<br/><ul class="error-code-list"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400 - Missing Required Field](#error-400-field-missing)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>
headers:
x-fapi-interaction-id:
$ref: '#/components/headers/XFAPIInteractionId'
'406':
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseErrorListV2'
description: The following error codes **MUST** be supported:<br/><ul class="error-code-list"><li>[406 - Unsupported Version](#error-406-header-unsupported-version)</li></ul>
headers:
x-fapi-interaction-id:
$ref: '#/components/headers/XFAPIInteractionId'
summary: Get Customer
tags:
- Data Holder Customers
x-scopes:
- common:customer.basic:read
x-version: '1'
/common/customer/detail:
get:
description: 'Obtain detailed information on the authorised customer within the current session.
Obsolete versions: [v1](includes/obsolete/get-customer-detail-v1.html).'
operationId: getCustomerDetail
parameters:
- description: Version of the API endpoint requested by the client. Must be set to a positive integer. The endpoint should respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers). If the value of [_x-min-v_](#request-headers) is equal to or higher than the value of [_x-v_](#request-headers) then the [_x-min-v_](#request-headers) header should be treated as absent. If all versions requested are not supported then the endpoint **MUST** respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers).
explode: false
in: header
name: x-v
required: true
schema:
type: string
style: simple
- description: Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The endpoint should respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers). If all versions requested are not supported then the endpoint **MUST** respond with a `406 Not Acceptable`.
explode: false
in: header
name: x-min-v
required: false
schema:
type: string
style: simple
- description: An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder **MUST** play back this value in the _x-fapi-interaction-id_ response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.
explode: false
in: header
name: x-fapi-interaction-id
required: false
schema:
type: string
style: simple
- description: The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.
explode: false
in: header
name: x-fapi-auth-date
required: false
schema:
type: string
style: simple
x-conditional: true
- description: The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.
explode: false
in: header
name: x-fapi-customer-ip-address
required: false
schema:
type: string
style: simple
- description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User-Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.
explode: false
in: header
name: x-cds-client-headers
required: false
schema:
type: string
style: simple
x-conditional: true
x-cds-type: Base64
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseCommonCustomerDetailV2'
description: Successful response
headers:
x-v:
$ref: '#/components/headers/XV'
x-fapi-interaction-id:
$ref: '#/components/headers/XFAPIInteractionId'
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseErrorListV2'
description: The following error codes **MUST** be supported:<br/><ul class="error-code-list"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400 - Missing Required Field](#error-400-field-missing)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>
headers:
x-fapi-interaction-id:
$ref: '#/components/headers/XFAPIInteractionId'
'406':
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseErrorListV2'
description: The following error codes **MUST** be supported:<br/><ul class="error-code-list"><li>[406 - Unsupported Version](#error-406-header-unsupported-version)</li></ul>
headers:
x-fapi-interaction-id:
$ref: '#/components/headers/XFAPIInteractionId'
summary: Get Customer Detail
tags:
- Data Holder Customers
x-scopes:
- common:customer.detail:read
x-version: '2'
components:
schemas:
CommonPhoneNumber:
properties:
isPreferred:
default: false
description: May be `true` for one and only one entry to indicate the preferred phone number. Assumed to be `false` if not present.
type: boolean
purpose:
description: The purpose of the number as specified by the customer.
enum:
- HOME
- INTERNATIONAL
- MOBILE
- OTHER
- UNSPECIFIED
- WORK
type: string
countryCode:
default: '+61'
description: If absent, assumed to be Australia (`+61`). The `+` should be included.
type: string
areaCode:
description: Required for non Mobile Phones, if field is present and refers to Australian code - the leading `0` should be omitted.
type: string
number:
description: The actual phone number, with leading zeros as appropriate.
type: string
extension:
description: An extension number (if applicable).
type: string
fullNumber:
description: Fully formatted phone number with country code, area code, number and extension incorporated. Formatted according to section 5.1.4. of **[[RFC3966]](#iref-RFC3966)**.
type: string
x-cds-type: ExternalRef
required:
- fullNumber
- number
- purpose
type: object
x-conditional:
- areaCode
ResponseCommonCustomer:
properties:
data:
$ref: '#/components/schemas/ResponseCommonCustomer_data'
links:
$ref: '#/components/schemas/Links'
meta:
$ref: '#/components/schemas/Meta'
required:
- data
- links
type: object
ResponseCommonCustomerDetailV2:
properties:
data:
$ref: '#/components/schemas/ResponseCommonCustomerDetailV2_data'
links:
$ref: '#/components/schemas/Links'
meta:
$ref: '#/components/schemas/Meta'
required:
- data
- links
type: object
CommonOrganisationDetailV2_allOf:
properties:
physicalAddresses:
description: Array is mandatory but may be empty if no valid addresses are held. One and only one address may have the purpose of `REGISTERED`. Zero or one, and no more than one, record may have the purpose of `MAIL`. If zero then the `REGISTERED` address is to be used for mail.
items:
$ref: '#/components/schemas/CommonPhysicalAddressWithPurpose'
type: array
required:
- physicalAddresses
type: object
CommonOrganisationDetailV2:
allOf:
- $ref: '#/components/schemas/CommonOrganisation'
- $ref: '#/components/schemas/CommonOrganisationDetailV2_allOf'
Links:
properties:
self:
description: Fully qualified link that generated the current response document.
type: string
x-cds-type: URIString
required:
- self
type: object
CommonPersonDetailV2_allOf:
properties:
phoneNumbers:
description: Array is mandatory but may be empty if no phone numbers are held.
items:
$ref: '#/components/schemas/CommonPhoneNumber'
type: array
emailAddresses:
description: May be empty.
items:
$ref: '#/components/schemas/CommonEmailAddress'
type: array
physicalAddresses:
description: Array is mandatory but may be empty if no valid addresses are held. One and only one address may have the purpose of `REGISTERED`. Zero or one, and no more than one, record may have the purpose of `MAIL`. If zero then the `REGISTERED` address is to be used for mail.
items:
$ref: '#/components/schemas/CommonPhysicalAddressWithPurpose'
type: array
required:
- emailAddresses
- phoneNumbers
- physicalAddresses
type: object
CommonPerson:
properties:
lastUpdateTime:
description: The date and time that this record was last updated by the customer. If no update has occurred then this date should reflect the initial creation date for the data.
type: string
x-cds-type: DateTimeString
firstName:
description: For people with single names this field need not be present. The single name should be in the _lastName_ field. Where a data holder cannot determine first and middle names from a collection of given names, a single string representing all given names **MAY** be provided.
type: string
lastName:
description: For people with single names, the single name should be in this field.
type: string
middleNames:
description: Field is mandatory but array may be empty.
items:
type: string
type: array
prefix:
description: Also known as title or salutation. The prefix to the name (e.g., Mr, Mrs, Ms, Miss, Sir, etc.)
type: string
suffix:
description: Used for a trailing suffix to the name (e.g., Jr.)
type: string
occupationCode:
description: Value is a valid **[[ANZSCO]](#iref-ANZSCO)** Standard Occupation classification code. If the occupation code held by the data holder is not one of the supported **[[ANZSCO]](#iref-ANZSCO)** versions, then it must not be supplied.
type: string
x-cds-type: ExternalRef
occupationCodeVersion:
default: ANZSCO_1220.0_2013_V1.2
description: The applicable **[[ANZSCO]](#iref-ANZSCO)** release version of the occupation code provided. Mandatory if an _occupationCode_ is supplied. If _occupationCode_ is supplied but _occupationCodeVersion_ is absent, default is `ANZSCO_1220.0_2013_V1.2`.
enum:
- ANZSCO_1220.0_2006_V1.0
- ANZSCO_1220.0_2006_V1.1
- ANZSCO_1220.0_2013_V1.2
- ANZSCO_1220.0_2013_V1.3
type: string
required:
- lastName
- middleNames
type: object
x-conditional:
- occupationCodeVersion
CommonPhysicalAddress:
properties:
addressUType:
description: The type of address object present.
enum:
- paf
- simple
type: string
simple:
$ref: '#/components/schemas/CommonSimpleAddress'
paf:
$ref: '#/components/schemas/CommonPAFAddress'
required:
- addressUType
type: object
x-conditional:
- simple
- paf
CommonEmailAddress:
properties:
isPreferred:
description: May be `true` for one and only one email record in the collection. Denotes the default email address.
type: boolean
purpose:
description: The purpose for the email, as specified by the customer.
enum:
- HOME
- OTHER
- UNSPECIFIED
- WORK
type: string
address:
description: A correctly formatted email address, as defined by the addr-spec format in **[[RFC5322]](#nref-RFC5322)**.
type: string
x-cds-type: ExternalRef
required:
- address
- purpose
type: object
ResponseCommonCustomerDetailV2_data:
properties:
customerUType:
description: The type of customer object that is present.
enum:
- organisation
- person
type: string
person:
$ref: '#/components/schemas/CommonPersonDetailV2'
organisation:
$ref: '#/components/schemas/CommonOrganisationDetailV2'
required:
- customerUType
type: object
x-conditional:
- person
- organisation
CommonPAFAddress:
description: Australian address formatted according to the file format defined by the [PAF file format](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf). Required if _addressUType_ is set to `paf`.
properties:
dpid:
description: Unique identifier for an address as defined by Australia Post. Also known as Delivery Point Identifier.
type: string
thoroughfareNumber1:
description: Thoroughfare number for a property (first number in a property ranged address).
type: integer
x-cds-type: PositiveInteger
thoroughfareNumber1Suffix:
description: Suffix for the thoroughfare number. Only relevant if _thoroughfareNumber1_ is populated.
type: string
thoroughfareNumber2:
description: Second thoroughfare number (only used if the property has a ranged address e.g., 23-25).
type: integer
x-cds-type: PositiveInteger
thoroughfareNumber2Suffix:
description: Suffix for the second thoroughfare number. Only relevant if _thoroughfareNumber2_ is populated.
type: string
flatUnitType:
description: Type of flat or unit for the address.
type: string
flatUnitNumber:
description: Unit number (including suffix, if applicable).
type: string
floorLevelType:
description: Type of floor or level for the address.
type: string
floorLevelNumber:
description: Floor or level number (including alpha characters).
type: string
lotNumber:
description: Allotment number for the address.
type: string
buildingName1:
description: Building/Property name 1.
type: string
buildingName2:
description: Building/Property name 2.
type: string
streetName:
description: The name of the street.
type: string
streetType:
description: The street type. Valid enumeration defined by Australia Post PAF code file.
type: string
streetSuffix:
description: The street type suffix. Valid enumeration defined by Australia Post PAF code file.
type: string
postalDeliveryType:
description: Postal delivery type. (e.g., PO BOX). Valid enumeration defined by Australia Post PAF code file.
type: string
postalDeliveryNumber:
description: Postal delivery number if the address is a postal delivery type.
type: integer
x-cds-type: PositiveInteger
postalDeliveryNumberPrefix:
description: Postal delivery number prefix related to the postal delivery number.
type: string
postalDeliveryNumberSuffix:
description: Postal delivery number suffix related to the postal delivery number.
type: string
localityName:
description: Full name of locality.
type: string
postcode:
description: Postcode for the locality.
type: string
state:
description: State in which the address belongs. Valid enumeration defined by Australia Post PAF code file [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf). `NSW`, `QLD`, `VIC`, `NT`, `WA`, `SA`, `TAS`, `ACT`, `AAT`.
type: string
required:
- localityName
- postcode
- state
type: object
CommonSimpleAddress:
description: Required if _addressUType_ is set to `simple`.
properties:
mailingName:
description: Name of the individual or business formatted for inclusion in an address used for physical mail.
type: string
addressLine1:
description: First line of the standard address object.
type: string
addressLine2:
description: Second line of the standard address object.
type: string
addressLine3:
description: Third line of the standard address object.
type: string
postcode:
description: Mandatory for Australian addresses.
type: string
city:
description: Name of the city or locality.
type: string
state:
description: Free text if the country is not Australia. If country is Australia then must be one of the values defined by the [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf) in the PAF file format. `NSW`, `QLD`, `VIC`, `NT`, `WA`, `SA`, `TAS`, `ACT`, `AAT`.
type: string
country:
default: AUS
description: A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code. Australia (`AUS`) is assumed if country is not present.
type: string
x-cds-type: ExternalRef
required:
- addressLine1
- city
- state
type: object
x-conditional:
- postcode
CommonOrganisation:
properties:
lastUpdateTime:
description: The date and time that this record was last updated by the customer. If no update has occurred then this date should reflect the initial creation date for the data.
type: string
x-cds-type: DateTimeString
agentFirstName:
description: The first name of the individual providing access on behalf of the organisation. For people with single names this field need not be present. The single name should be in the _lastName_ field.
type: string
agentLastName:
description: The last name of the individual providing access on behalf of the organisation. For people with single names, the single name should be in this field.
type: string
agentRole:
description: The role of the individual identified as the agent who is providing authorisation. Expected to be used for display. Default to "Unspecified" if the role is not known.
type: string
businessName:
description: Name of the organisation.
type: string
legalName:
description: Legal name, if different to the business name.
type: string
shortName:
description: Short name used for communication, if different to the business name.
type: string
abn:
description: Australian Business Number for the organisation.
type: string
acn:
description: Australian Company Number for the organisation. Required only if an ACN is applicable for the organisation type.
type: string
isACNCRegistered:
description: '`true` if registered with the ACNC. `false` if not. Absent or `null` if not confirmed.'
type: boolean
industryCode:
description: A valid [ANZSIC](http://www.abs.gov.au/ANZSIC) code for the organisation. If the industry code held by the data holder is not one of the supported [ANZSIC](http://www.abs.gov.au/ANZSIC) versions, then it must not be supplied.
type: string
x-cds-type: ExternalRef
industryCodeVersion:
default: ANZSIC_1292.0_2006_V2.0
description: The applicable [ANZSIC](http://www.abs.gov.au/ANZSIC) release version of the industry code provided. Should only be supplied if _industryCode_ is also supplied. If _industryCode_ is supplied but _industryCodeVersion_ is absent, default is `ANZSIC_1292.0_2006_V2.0`.
enum:
- ANZSIC_1292.0_2006_V1.0
- ANZSIC_1292.0_2006_V2.0
type: string
organisationType:
description: Legal organisation type.
enum:
- COMPANY
- GOVERNMENT_ENTITY
- OTHER
- PARTNERSHIP
- SOLE_TRADER
- TRUST
type: string
registeredCountry:
default: AUS
description: Enumeration with values from [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country codes. Assumed to be `AUS` if absent.
type: string
x-cds-type: ExternalRef
establishmentDate:
description: The date the organisation described was established.
type: string
x-cds-type: DateString
required:
- agentLastName
- agentRole
- businessName
- organisationType
type: object
x-conditional:
- industryCodeVersion
ErrorV2_meta:
description: Additional data for customised error codes.
properties:
urn:
description: The CDR error code URN which the application-specific error code extends. Mandatory if the error _code_ is an application-specific error rather than a standardised error code.
type: string
type: object
x-conditional:
- urn
CommonPhysicalAddressWithPurpose_allOf:
properties:
purpose:
description: Enumeration of values indicating the purpose of the physical address.
enum:
- MAIL
- OTHER
- PHYSICAL
- REGISTERED
- WORK
type: string
required:
- purpose
type: object
CommonPersonDetailV2:
allOf:
- $ref: '#/components/schemas/CommonPerson'
- $ref: '#/components/schemas/CommonPersonDetailV2_allOf'
ResponseErrorListV2:
properties:
errors:
description: List of errors.
items:
$ref: '#/components/schemas/ErrorV2'
type: array
required:
- errors
type: object
Meta:
type: object
ErrorV2:
properties:
code:
description: The code of the error encountered. Where the error is specific to the respondent, an application-specific error code, expressed as a string value. If the error is application-specific, the URN code that the specific error extends must be provided in the _meta_ object. Otherwise, the value is the error code URN.
type: string
title:
description: A short, human-readable summary of the problem that **MUST NOT** change from occurrence to occurrence of the problem represented by the error code.
type: string
detail:
description: A human-readable explanation specific to this occurrence of the problem.
type: string
meta:
$ref: '#/components/schemas/ErrorV2_meta'
required:
- code
- detail
- title
type: object
x-conditional:
- meta
ResponseCommonCustomer_data:
properties:
customerUType:
description: The type of customer object that is present.
enum:
- organisation
- person
type: string
person:
$ref: '#/components/schemas/CommonPerson'
organisation:
$ref: '#/components/schemas/CommonOrganisation'
required:
- customerUType
type: object
x-conditional:
- person
- organisation
CommonPhysicalAddressWithPurpose:
allOf:
- $ref: '#/components/schemas/CommonPhysicalAddress'
- $ref: '#/components/schemas/CommonPhysicalAddressWithPurpose_allOf'
headers:
XFAPIInteractionId:
description: An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder **MUST** play back this value in the _x-fapi-interaction-id_ response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.
explode: false
required: true
schema:
type: string
style: simple
XV:
description: The [payload version](#response-headers) that the endpoint has responded with.
explode: false
required: true
schema:
type: string
style: simple