Integrate compliance at the API level
Automate identity verification, liveness checks, and risk screening directly from your backend with our low-latency REST API.
Authorization: Bearer sk_live_...
Content-Type: application/json
{
"status": "verified",
"verification_id": "req_99b4x",
"results": {
"liveness": "passed",
"id_match": true
}
}
API Reference
Our advanced RESTful API offers an ideal solution for seamless integration into your software ecosystem. Designed for both real-time and offline access, our API ensures flexibility and reliability. Expertly developed with the same robust queries that power our SaaS platforms, it allows you to effortlessly combine and encapsulate queries to create powerful, customised products and services. By leveraging our API, you can enhance your software’s functionality, streamline operations, and deliver superior user experiences with minimal friction.
Introduction
The Global Data API allows external programmatic access to the full functionality of the Global Data suite of validation, verification and search functions. The API accesses the same dataset and produces the same results as the api.globaldata.net.au web system.
Sandbox vs Live
The Global Data API provides two environments. Use the Sandbox API server when working with a Sandbox API key. Use the Live API server when working with a Live API key. Requests made with a key to the wrong environment will return a 401 Unauthorized error.
Real data, billable transactions. Requires a Live API key issued after onboarding.
https://gdapi.globaldata.net.au/api/v2
Restricted dataset for integration testing. Free to use with a Sandbox API key.
https://sandbox-example.globaldata.net.au
Heads up: requests made with a key to the wrong environment return a 401 Unauthorized error.
Authentication
The Global Data API uses API keys to authenticate requests. All API requests must be made over HTTPS. Calls made over plain HTTP will fail. Pass your key as a Bearer token in the Authorization header.
Authorization: Bearer YOUR_API_KEY
Request Sandbox Access
API keys are provisioned for institutional partners following verification. Contact our sales team to discuss integration requirements and production credentials.
Test
1 endpoint
Test
1 endpoint
API Testing endpoint
GET
/test
A no-op endpoint that returns Ok if your authentication is good and the API is reachable.
API Testing endpoint
/test
A no-op endpoint that returns Ok if your authentication is good and the API is reachable.
A no-op endpoint that returns Ok if your authentication is good and the API is reachable. Useful as a heartbeat or smoke test during integration, environment switching, and CI pipeline checks. Doesn't consume credit.
Authorization
header
GET /test
Address
7 endpoints
Address
7 endpoints
Address Autocomplete API
GET
/address_autocomplete
Address Auto-Complete is a powerful API query that can save users time and reduce errors by predicting and suggesting Australian addresses as they are being typed.
Address Autocomplete API
/address_autocomplete
Address Auto-Complete is a powerful API query that can save users time and reduce errors by predicting and suggesting Australian addresses as they are being typed.
Address Auto-Complete is a powerful API query that can save users time and reduce errors by predicting and suggesting Australian addresses as they are being typed. This feature can be integrated into any web or mobile application to streamline data entry and improve overall data accuracy.
partial_address
The first 4 or more characters of the address, street, suburb or postcode.
type
address (full addresses with GNAF id), street (street names with suburb/postcode/state), suburb (suburbs with postcode/state), or postcode (suburbs within a postcode). Default address.
max_results
Maximum number of results to return. Default 20.
{
"partial_address": "123 Smith",
"type": "address",
"max_results": 20
}
Address Lookup by Contact API
GET
/address_lookup_by_contact
Returns the GNAF ID which corresponds to a given email address or phone number from the Global Data universe.
Address Lookup by Contact API
/address_lookup_by_contact
Returns the GNAF ID which corresponds to a given email address or phone number from the Global Data universe.
Returns the GNAF ID which corresponds to a given email address or phone number from the Global Data universe.
email
The email address to search for. Example: jsmith1998@example.co
phone
The phone number to search for. Example: 0491222111
{
"message": "Ok",
"address_id": "GANSW716615055",
"record_date": "2021-01-01",
"api_reference": "738d9a89-b6fe-4fc1-96be-1389b2a506a2"
}
Address Validate API
POST
/address_validate
Tests a supplied address against the GNAF database and returns a quality score from 0 to 10, plus the matched address with any corrections applied.
Address Validate API
/address_validate
Tests a supplied address against the GNAF database and returns a quality score from 0 to 10, plus the matched address with any corrections applied.
Tests a supplied address against the GNAF database and returns a quality score from 0 to 10, plus the matched address with any corrections applied. The validator will fix minor mistakes (spelling errors in the street or suburb, the wrong street type, a postcode that's one off) so long as the rest of the address is still resolvable. You get the corrected address back along with a list of every change that was made.
street_address
First line of the address. Requires at least one of suburb or postcode.
suburb
Suburb name. Requires street_address.
state
ACT, NSW, NT, QLD, SA, TAS, VIC, WA. Requires street_address.
postcode
Postcode. Requires street_address.
suburb_state_postcode
Combined suburb, state and postcode. Requires street_address.
full_address
Full address as a single string. Use this when you don't have the components separated.
{
"street_address": "Unit 12B, 123-125 Smith St",
"suburb": "Smithtown",
"state": "ACT",
"postcode": "2000",
"suburb_state_postcode": "Smithtown ACT 2000",
"full_address": "Unit 12B, 123-125, Smithtown, ACT 2000"
}
Address Validate Bulk API
POST
/address_validate_bulk
The bulk version of Address Validate.
Address Validate Bulk API
/address_validate_bulk
The bulk version of Address Validate.
The bulk version of Address Validate. Up to 200 addresses in a single call. Each item uses the same validation rules and input modes as the single endpoint. Optional check_id per request for correlating results back to your inputs..
requests
Array of address validation requests.
requests[].check_id
Optional correlation ID echoed back in the result.
requests[].street_address, suburb, state, postcode, suburb_state_postcode, full_address
Same input modes and combinations as the single Address Validate endpoint.
{
"requests": [
{
"check_id": "check_123",
"street_address": "Unit 12B, 123-125 Smith St",
"suburb": "Smithtown",
"state": "ACT",
"postcode": "2000",
"suburb_state_postcode": "Smithtown ACT 2000",
"full_address": "Unit 12B, 123-125 Smith St, Smithtown, ACT 2000"
}
]
}
Property Detail API
GET
/property_detail
Provides the resident and contact details (phone and email) linked to an address referenced by a GNAF ID.
Property Detail API
/property_detail
Provides the resident and contact details (phone and email) linked to an address referenced by a GNAF ID.
Provides the resident and contact details (phone and email) linked to an address referenced by a GNAF ID. Automatically performs a connectivity and DNC check.
gnaf_id
The address GNAF ID.
timeout
Maximum seconds to wait for checks to complete.
GET /property_detail?gnaf_id=GANSW716615055&timeout=20
Real Estate Search (Bulk) API
POST
/realestate_searches
Bulk version of the real estate search endpoint that allows up to 50 address lookups to be performed in a single request�
Real Estate Search (Bulk) API
/realestate_searches
Bulk version of the real estate search endpoint that allows up to 50 address lookups to be performed in a single request�
Bulk version of the real estate search endpoint that allows up to 50 address lookups to be performed in a single request.
date_from
Date filter in YYYY-MM-DD format.
requests
The list of address lookups to perform (uses standard address parameters).
{
"date_from": "2020-01-01",
"requests": [
{ "gnaf_id": "GAVIC421647320", "check_id": "asset_1" },
{ "full_address": "123 Main St, Sydney NSW", "check_id": "asset_2" }
]
}
Real Estate Search API
POST
/realestate_search
Returns the real estate listing history (sale, sold, and rental events) for a property, sourced from the GlobalData Australian property universe.
Real Estate Search API
/realestate_search
Returns the real estate listing history (sale, sold, and rental events) for a property, sourced from the GlobalData Australian property universe.
Returns the real estate listing history (sale, sold, and rental events) for a property, sourced from the GlobalData Australian property universe. Accepts a GNAF ID, a full address as a single string, or structured address parts. Results come back most recent first, with an optional date_from filter to limit to recent activity
gnaf_id
The GNAF address ID. Most efficient lookup. Mutually exclusive with full_address and the structured parts.
full_address
A complete address as a single string. Mutually exclusive with the other modes.
street_address
Street address component. Use with suburb, state, postcode for structured mode.
suburb
Suburb. Used with street_address.
state
ACT, NSW, NT, QLD, SA, TAS, VIC, WA. Used with street_address.
postcode
Postcode. Used with street_address.
date_from
Optional. Only return records on or after this date.
{
"gnaf_id": "GAVIC421647320",
"date_from": "2015-01-01"
}
Phone
4 endpoints
Phone
4 endpoints
Check phone connectivity API
GET
/phone_ping
Tests the connectivity of one or more supplied phone numbers (Connected, Disconnected, Undetermined, Invalid).
Check phone connectivity API
/phone_ping
Tests the connectivity of one or more supplied phone numbers (Connected, Disconnected, Undetermined, Invalid).
Tests the connectivity of one or more supplied phone numbers (Connected, Disconnected, Undetermined, Invalid).
phones
One or more comma-separated 10 digit Australian phone numbers.
timeout
Maximum seconds to wait.
{
"phones": "0417034325",
"timeout": 60
}
Check phone DNC status API
GET
/phone_dnc
Tests the DNC (Do Not Call) status of one or more supplied phone numbers against the Australian DNC register.
Check phone DNC status API
/phone_dnc
Tests the DNC (Do Not Call) status of one or more supplied phone numbers against the Australian DNC register.
Tests the DNC (Do Not Call) status of one or more supplied phone numbers against the Australian DNC register.
phones
Comma separated 10 digit Australian phone numbers.
{
"phones": "0417034325"
}
Phone Contact Lookup API
POST
/phone_contact_lookup
Retrieve the person or persons linked to a specific Australian phone number in the Global Data Universe.
Phone Contact Lookup API
/phone_contact_lookup
Retrieve the person or persons linked to a specific Australian phone number in the Global Data Universe.
Retrieve the person or persons linked to a specific Australian phone number in the Global Data Universe.
phones
The phone numbers to search for in E.164 format.
{
"phones": [
"+61491222111",
"+61499888777"
]
}
Phone Contact Validate API
POST
/phone_contact_validate
Validates the link between a specific Australian phone number and a person associated with that phone number.
Phone Contact Validate API
/phone_contact_validate
Validates the link between a specific Australian phone number and a person associated with that phone number.
Validates the link between a specific Australian phone number and a person associated with that phone number. Returns match, possible match, or no match.
requests
List of validations.
phone
E.164 format.
first_name
First name
last_name
Last name
{
"requests": [
{
"phone": "+61491222111",
"first_name": "John",
"last_name": "Smith"
}
]
}
Email
1 endpoint
Check email deliverability API
GET
/email_ping
Tests the deliverability of one or more supplied email addresses.
Check email deliverability API
/email_ping
Tests the deliverability of one or more supplied email addresses.
Tests the deliverability of one or more supplied email addresses.
emails
One or more comma-separated email addresses.
{
"emails": "test@example.com"
}
Person
5 endpoints
Person
5 endpoints
Banned and Disqualified Person Search API
POST
/banned_disqualified_persons
Screens an individual against multiple public authorities in one call.
Banned and Disqualified Person Search API
/banned_disqualified_persons
Screens an individual against multiple public authorities in one call.
Screens an individual against multiple public authorities in one call. It covers the ASIC Banned Persons Register and the ATO Disqualified SMSF Trustees list. Bulk requests are supported, with a configurable similarity threshold and three search modes (narrow, medium, broad) that change how strictly the names have to line up. Use it for both transactional checks and batch screening of director rosters or trustee lists.
search_type
narrow_search (exact first and last, middle by similarity), medium_search (exact last, partial first and middle), or broad_search (partial across all three).
banned_types
Filter to specific ban types: afs_banned_disqualified, banned_futures, banned_securities, credit_banned_disqualified, disqualified_director, disqualified_smsf, ato_disqualified_trustee. Leave empty to search all.
similarity_threshold
Minimum average similarity percentage to include in results. Default 80.
requests
Array of person checks, each with check_id, first_name, middle_name, last_name.
{
"search_type": "medium_search",
"banned_types": ["afs_banned_disqualified"],
"similarity_threshold": 80,
"requests": [
{
"check_id": "abcd123456789",
"first_name": "Phil",
"middle_name": null,
"last_name": "Smith"
}
]
}
Deceased Check API
POST
/deceased_check
Checks whether a person is recorded as deceased in the Global Data death check service.
Deceased Check API
/deceased_check
Checks whether a person is recorded as deceased in the Global Data death check service.
Checks whether a person is recorded as deceased in the Global Data death check service. You can search by name and date of birth, by name and date of death, or by all three. The name-matching rules shift depending on which combination you send. The response is a simple Y or N indicator that drops easily into KYC pipelines and customer maintenance flows.
first_name
First name and optional middle names. The matching rules depend on whether you send a DOB, DOD, or both. See the FAQs below.
last_name
Last name.
birth_date
Date of birth. Triggers DOB-mode matching, which lets you skip middle names.
death_date
Date of death. If sent on its own (no DOB), the first name has to match exactly including any middle names.
{
"first_name": "John Andrew",
"last_name": "Doe",
"birth_date": "1971-01-23",
"death_date": "2011-11-03"
}
Enhance Record Plus API
POST
/enhance_record_plus
Hand it a partial person record and it gives you back the full picture: verified address, additional phones and emails, possible business associations, demographic indices, plus court records and social records for the matched contacts.
Enhance Record Plus API
/enhance_record_plus
Hand it a partial person record and it gives you back the full picture: verified address, additional phones and emails, possible business associations, demographic indices, plus court records and social records for the matched contacts.
Hand it a partial person record and it gives you back the full picture: verified address, additional phones and emails, possible business associations, demographic indices, plus court records and social records for the matched contacts. The "Plus" tier runs the court and social checks automatically on the matched result, so you get a richer dossier than the base Enhance Record service in a single call.
first_name
Required as part of the minimum-search combinations.
middle_name
Optional middle name.
last_name
Required when combined with DOB or address.
dob
Date of birth. Required if you're not sending an address (and vice versa).
phone
0NSN format. A phone is enough on its own to meet the minimum requirement.
email
An email is enough on its own too.
street_address
Address line 1.
suburb
Suburb.
state
ACT, NSW, NT, QLD, SA, TAS, VIC or WA.
postcode
Four-digit postcode.
opt-in
Limit results to records opted in to marketing or public records (such as whitepages). Social records are never opt-in checked and must not be used for marketing.
{
"first_name": "Michael",
"middle_name": "John",
"last_name": "Raymond",
"dob": "1969-06-21",
"phone": "0412345678",
"email": "michael.raymond@example.com",
"street_address": "12 Conestoga Way",
"suburb": "Upper Coomera",
"state": "QLD",
"postcode": "4209",
"opt-in": false
}
Marketing Contact Lookup API
POST
/marketing_contact_lookup
A contact lookup for marketing and outreach work.
Marketing Contact Lookup API
/marketing_contact_lookup
A contact lookup for marketing and outreach work.
A contact lookup for marketing and outreach work. You give it one piece of information about a person (a phone, an email, a GNAF ID, or an address) and it returns up to 25 matching records from the GlobalData universe, ordered most recent first. Every phone and email comes back with its own opt-in flag so you know what you can actually use in a campaign. Deceased and suppressed records are filtered out before you see them.
phone
Australian phone in either 0NSN (0299995000) or E.164 (+61299995000) format. Pick one lookup key per request.
email
Email address. Case insensitive.
gnaf_id
GNAF address identifier, for example GANSW716615055.
full_address
A single free-text Australian address. The API parses this and resolves it to a GNAF.
street_address
street_address plus postcode (with optional suburb and state to improve match accuracy)
suburb
Suburb component of the address.
state
ACT, NSW, NT, QLD, SA, TAS, VIC or WA.
postcode
Required when street_address is supplied.
max_records
Sets the maximum number of person records to return from 1 to 25 with a default of 1. All results are deduplicated by unique identity so an individual with multiple historical tenancies appears as a single record.
require_marketing_optin
Filters contact methods based on marketing consent when set to true. Any records lacking opted-in contact information are excluded and the system automatically continues searching to fulfill the requested record count.
{
"phone": "0299995000",
"email": "mary_jones89@example.com",
"gnaf_id": "GANSW716615055",
"full_address": "35 Yaralla St, Concord West NSW 2138",
"street_address": "35 Yaralla St",
"suburb": "Concord West",
"state": "NSW",
"postcode": "2138",
"require_marketing_optin": false,
"max_records": 5
}
Person History API
POST
/person_history
Query and retrieve additional historical data for a specific individual.
Person History API
/person_history
Query and retrieve additional historical data for a specific individual.
Query and retrieve additional historical data for a specific individual. Includes an automatic Australian Death Check (ADC).
first_name
last_name
birth_date
phone
email
(At least one optional contact/dob parameter required).
{
"first_name": "John",
"last_name": "Smith",
"birth_date": "1998-03-21",
"phone": "0491222111",
"email": "jsmith1998@example.com"
}
Deceased Check
2 endpoints
Deceased Check
2 endpoints
ADC Check API
POST
/adc_check
Searches an individual against the Australian Death Check (ADC), the official death register data.
ADC Check API
/adc_check
Searches an individual against the Australian Death Check (ADC), the official death register data.
Searches an individual against the Australian Death Check (ADC), the official death register data. You get any matching records back, including the exact date of death where available (or a date range where it's not), the state the death was registered in, and the ADC reference number. Use this when your compliance posture wants verification against the official register rather than a proprietary dataset.
first_name
First name. Has to match exactly.
middle_name
Optional. Middle names can match partially.
last_name
Last name. Has to match exactly.
birth_date
Date of birth in YYYY-MM-DD.
{
"first_name": "John",
"middle_name": "Andrew",
"last_name": "Smith",
"birth_date": "1998-03-21"
}
ADC Check Bulk API
POST
/adc_checks
The same as our ADC check, but you can submit a batch of lookups in one call.
ADC Check Bulk API
/adc_checks
The same as our ADC check, but you can submit a batch of lookups in one call.
The same as our ADC check, but you can submit a batch of lookups in one call. Each request carries a check_id so you can correlate results back to your inputs. Suited to periodic batch hygiene runs across customer registers, super funds, insurance books and other long-tenured populations.
requests
Array of ADC check requests. Each accepts the same fields as the single check.
requests[].check_id
Your own ID for the request. Echoed back in the result so you can correlate.
requests[].first_name
First name (exact match).
requests[].middle_name
Optional. Partial matches allowed.
requests[].last_name
Last name (exact match).
requests[].birth_date
YYYY-MM-DD.
{
"requests": [
{
"check_id": "abcd123456789",
"first_name": "John",
"middle_name": "Andrew",
"last_name": "Smith",
"birth_date": "1998-03-21"
}
]
}
DVS
14 endpoints
DVS
14 endpoints
Validate a birth certificate API
POST
/dvs/birth_cert
Validates an Australian birth certificate against the DVS.
Validate a birth certificate API
/dvs/birth_cert
Validates an Australian birth certificate against the DVS.
Validates an Australian birth certificate against the DVS. All eight states and territories are supported. Which identifiers you need (registration number, certificate number, registration date) depends on the state. The certificate number is the most reliable identifier across the board, so use it where you can.
preflight
Input validation only.
consent
Individual's consent.
first_name, last_name, birth_date
Name and DOB on the certificate.
registration_number
Required (or certificate_number) for ACT, NSW, NT, SA, VIC, WA.
certificate_number
Recommended for all states. Required for QLD or TAS if no registration_date.
registration_date
Required for QLD or TAS if no certificate_number.
state
State of issue.
{
"consent": true,
"first_name": "John",
"last_name": "Smith",
"birth_date": "1980-01-01",
"certificate_number": "123456789",
"state": "VIC"
}
Validate a Centrelink concession card API
POST
/dvs/centrelink
Validates a Centrelink-issued concession card against the DVS: Health Care Card (HCC), Pensioner Concession Card (PCC), or Commonwealth Seniors Health Card (SHC).
Validate a Centrelink concession card API
/dvs/centrelink
Validates a Centrelink-issued concession card against the DVS: Health Care Card (HCC), Pensioner Concession Card (PCC), or Commonwealth Seniors Health Card (SHC).
Validates a Centrelink-issued concession card against the DVS: Health Care Card (HCC), Pensioner Concession Card (PCC), or Commonwealth Seniors Health Card (SHC). Used for verifying eligibility for concession-based products, services and pricing tiers.
preflight
Input validation only.
consent
Individual's consent.
full_name
Full name of the card holder.
birth_date
YYYY-MM-DD.
crn
Customer Reference Number printed on the card.
card_expiry
Card expiry date.
card_type
HCC, PCC or SHC.
{
"consent": true,
"full_name": "John Smith",
"birth_date": "1980-01-01",
"crn": "123456789A",
"card_expiry": "2024-02-01",
"card_type": "HCC"
}
Validate a change of name certificate API
POST
/dvs/name_change
Validates a Change of Name certificate against the DVS.
Validate a change of name certificate API
/dvs/name_change
Validates a Change of Name certificate against the DVS.
Validates a Change of Name certificate against the DVS. Used when a customer has legally changed their name and you need to verify the certificate that establishes the new legal name against the issuing state Registry.
preflight
Input validation only.
consent
Individual's consent.
first_name, last_name
New name on the certificate.
birth_date
YYYY-MM-DD.
registration_number, certificate_number, registration_date
State-specific identifiers.
state
State of issue.
{
"consent": true,
"first_name": "John",
"last_name": "Smith",
"birth_date": "1980-01-01",
"certificate_number": "123456789",
"state": "VIC"
}
Validate a citizenship certificate API
POST
/dvs/citizenship
Validates an Australian citizenship certificate against the DVS using the stock number and acquisition date.
Validate a citizenship certificate API
/dvs/citizenship
Validates an Australian citizenship certificate against the DVS using the stock number and acquisition date.
Validates an Australian citizenship certificate against the DVS using the stock number and acquisition date. Confirms the certificate was genuinely issued by the Department of Home Affairs and matches the identity you've supplied.
preflight
Input validation only.
consent
Individual's consent.
first_name, last_name, birth_date
Identity of the document holder.
acquisition_date
Acquisition date printed on the certificate.
stock_number
Stock number printed on the certificate.
{
"consent": true,
"first_name": "John",
"last_name": "Smith",
"birth_date": "1980-01-01",
"acquisition_date": "1980-01-01",
"stock_number": "123/45678"
}
Validate a death certificate API
POST
/dvs/death_cert
Validates an Australian death certificate against the DVS.
Validate a death certificate API
/dvs/death_cert
Validates an Australian death certificate against the DVS.
Validates an Australian death certificate against the DVS. Confirms the certificate was genuinely issued by the Registry of Births, Deaths and Marriages in the issuing state and matches the details you've supplied. Used in estate administration, life insurance claims and superannuation death benefits work.
preflight
Input validation only.
consent
Individual's consent.
first_name, last_name
Names on the death certificate.
event_date
Date of death.
registration_number
Required (or certificate_number) in most states.
certificate_number
Most reliable identifier. Recommended in all cases.
registration_date
Relevant for QLD and TAS.
state
State of issue.
{
"consent": true,
"first_name": "John",
"last_name": "Smith",
"event_date": "1980-01-01",
"certificate_number": "123456789",
"state": "VIC"
}
Validate a drivers licence API
POST
/dvs/drivers_licence
Validates an Australian driver licence against the DVS.
Validate a drivers licence API
/dvs/drivers_licence
Validates an Australian driver licence against the DVS.
Validates an Australian driver licence against the DVS. All eight states and territories are supported. The endpoint accepts both the licence number and the card number, which is required by most states for verification. This is by far the most-used DVS document in Australian identity verification workflows.
preflight
Input validation only.
consent
Individual's consent.
first_name, middle_name, last_name
Names on the licence.
birth_date
YYYY-MM-DD.
licence_number
Licence number being validated.
card_number
Card number printed on the physical card
state
State of issue.
{
"consent": true,
"first_name": "John",
"middle_name": "James",
"last_name": "Smith",
"birth_date": "1980-01-01",
"licence_number": "1234567890",
"card_number": "P0001282",
"state": "VIC"
}
Validate a marriage certificate API
POST
/dvs/marriage
Validates an Australian marriage certificate against the DVS.
Validate a marriage certificate API
/dvs/marriage
Validates an Australian marriage certificate against the DVS.
Validates an Australian marriage certificate against the DVS. Confirms both parties' names, the event date and registration details against the issuing state's Registry of Births, Deaths and Marriages.
preflight
Input validation only.
consent
Individual's consent.
first_name1, last_name1
Name of the first person.
first_name2, last_name2
Name of the second person.
event_date
Date of marriage.
certificate details
State-specific identifiers. Same rules as birth and death certificates.
state
State of issue.
{
"consent": true,
"first_name1": "John",
"last_name1": "Smith",
"first_name2": "Mary",
"last_name2": "Jones",
"event_date": "1980-01-01",
"certificate_number": "123456789",
"state": "VIC"
}
Validate a Medicare card API
POST
/dvs/medicare
Validates an Australian Medicare card against the DVS.
Validate a Medicare card API
/dvs/medicare
Validates an Australian Medicare card against the DVS.
Validates an Australian Medicare card against the DVS. Green, yellow and blue cards are all supported. The Medicare card is one of the most-presented IDs in Australia and a core part of 100-point ID checks. The endpoint accepts the multi-line name format printed on Medicare cards (up to four lines).
preflight
Input validation only.
consent
Individual's consent.
full_name1, full_name2, full_name3, full_name4
Name lines as printed on the card. Medicare uses up to four lines.
birth_date
YYYY-MM-DD.
card_number
10-digit Medicare card number
individual_ref_number
Individual reference number for the card holder string (1 to 9).
card_expiry
Card expiry (YYYY-MM) .
card_type
G (green), Y (yellow) or B (blue).
{
"consent": true,
"full_name1": "Marguerite",
"full_name2": "Eleanor",
"full_name3": "Jayne",
"full_name4": "Salisbury",
"birth_date": "1980-01-01",
"card_number": "2951636283",
"individual_ref_number": "1",
"card_expiry": "2024-02",
"card_type": "G"
}
Validate a registration by descent certificate API
POST
/dvs/reg_by_descent
Validates an Australian Registration by Descent certificate against the DVS.
Validate a registration by descent certificate API
/dvs/reg_by_descent
Validates an Australian Registration by Descent certificate against the DVS.
Validates an Australian Registration by Descent certificate against the DVS. Issued to people born outside Australia who are Australian citizens by virtue of being born to an Australian parent. This certificate is their proof-of-citizenship document.
preflight
Input validation only.
consent
Individual's consent
first_name, last_name, birth_date
Identity on the certificate.
acquisition_date
Acquisition date printed on the certificate.
stock_number
Stock number printed on the certificate.
{
"consent": true,
"first_name": "John",
"last_name": "Smith",
"birth_date": "1980-01-01",
"acquisition_date": "1980-01-01",
"stock_number": "123/45678"
}
Validate an ASIC/MSIC Card API
POST
/dvs/asic
Validates an Aviation Security Identification Card (ASIC) or Maritime Security Identification Card (MSIC) against the DVS.
Validate an ASIC/MSIC Card API
/dvs/asic
Validates an Aviation Security Identification Card (ASIC) or Maritime Security Identification Card (MSIC) against the DVS.
Validates an Aviation Security Identification Card (ASIC) or Maritime Security Identification Card (MSIC) against the DVS. Both are federally regulated cards required for unescorted access to secure airside and maritime zones.
preflight
Input validation only.
consent
Individual's consent.
full_name
Full name of the card holder.
birth_date
YYYY-MM-DD.
card_number
Card number printed on the ASIC or MSIC card
card_expiry
Card expiry string (YYYY-MM)
card_type
ASIC or MSIC.
{
"consent": true,
"full_name": "John Smith",
"birth_date": "1980-01-01",
"card_number": "ABC123456",
"card_expiry": "2024-02",
"card_type": "ASIC"
}
Validate an ImmiCard API
POST
/dvs/immicard
Validates an Australian Department of Home Affairs ImmiCard against the DVS.
Validate an ImmiCard API
/dvs/immicard
Validates an Australian Department of Home Affairs ImmiCard against the DVS.
Validates an Australian Department of Home Affairs ImmiCard against the DVS. ImmiCards are issued to non-citizens to help them establish identity in Australia, particularly refugees, humanitarian entrants and substantive visa holders who don't yet have an Australian-issued ID.
preflight
Input validation only.
consent
Individual's consent.
first_name, last_name, birth_date
Identity on the card.
card_number
The card number follows a 3-letter + 6-digit format.
{
"consent": true,
"first_name": "John",
"last_name": "Smith",
"birth_date": "1980-01-01",
"card_number": "ABC123456"
}
Validate Australian travel documents API
POST
/dvs/passport
Validates an Australian Passport, Certificate of Identity, Document of Identity or UN Convention Travel Document against the DVS.
Validate Australian travel documents API
/dvs/passport
Validates an Australian Passport, Certificate of Identity, Document of Identity or UN Convention Travel Document against the DVS.
Validates an Australian Passport, Certificate of Identity, Document of Identity or UN Convention Travel Document against the DVS. The passport check is high-assurance. Pair it with another DVS document and you've covered most of the strongest tiers of identity verification.
preflight
Input validation only.
consent
Individual's consent.
first_name, last_name
Name as printed on the document.
birth_date
YYYY-MM-DD.
travel_document_number
Document number being validated.
gender
M, F or X.
{
"preflight": false,
"consent": true,
"first_name": "John",
"last_name": "Smith",
"birth_date": "1980-01-01",
"travel_document_number": "M1234567",
"gender": "M"
}
Validate Australian visas API
POST
/dvs/visa
Validates an Australian visa using the holder's foreign passport against the DVS.
Validate Australian visas API
/dvs/visa
Validates an Australian visa using the holder's foreign passport against the DVS.
Validates an Australian visa using the holder's foreign passport against the DVS. Confirms that the foreign passport holder has a current valid Australian visa attached to that travel document. Used for employment, tenancy and financial services verification of temporary residents.
preflight
Input validation only.
consent
Individual's consent.
first_name, last_name, birth_date
Identity on the document.
passport_number
Foreign passport number linked to the visa.
{
"consent": true,
"first_name": "John",
"last_name": "Smith",
"birth_date": "1980-01-01",
"passport_number": "M1234567"
}
Validate with the AEC API
POST
/dvs/aec
Validates a name, date of birth and address against the Australian Electoral Commission roll via the DVS.
Validate with the AEC API
/dvs/aec
Validates a name, date of birth and address against the Australian Electoral Commission roll via the DVS.
Validates a name, date of birth and address against the Australian Electoral Commission roll via the DVS. The AEC is one of the broadest identity datasets in the country, which makes this a good low-friction identity check for customers who don't want to hand over a document ID.
preflight
Validates the input shape without performing the check.
consent
The individual's consent to perform the check.
first_name and last_name
Name on the AEC roll.
birth_date
YYYY-MM-DD.
state, postcode, suburb
Address components.
street_address
Full street line. Don't combine this with the parsed parts below.
street_number, street_name, street_type, flat_unit_number, habitation_building_name
Parsed components as an alternative to street_address.
{
"consent": true,
"first_name": "John",
"last_name": "Smith",
"birth_date": "1980-01-01",
"state": "VIC",
"postcode": "3000",
"suburb": "Melbourne",
"street_address": "The Rialto 5/123 Smith St"
}
Caspar
2 endpoints
Caspar
2 endpoints
Caspar Person Autotrace API
POST
/caspar_person_autotrace
Where Caspar Person Search returns matches against your criteria, Autotrace orchestrates dozens or hundreds of internal searches to assemble a ranked list of likely matches.
Caspar Person Autotrace API
/caspar_person_autotrace
Where Caspar Person Search returns matches against your criteria, Autotrace orchestrates dozens or hundreds of internal searches to assemble a ranked list of likely matches.
Where Caspar Person Search returns matches against your criteria, Autotrace orchestrates dozens or hundreds of internal searches to assemble a ranked list of likely matches. Each one is scored by how well it lines up with the identifiers you supplied. Optionally include possible relatives in the results. Suited to collections, investigations and skip-tracing where the goal is "find this person, and tell me how confident you are".
name_combined, name_first, name_middle, name_last
Name fields. name_last is the minimum requirement.
dob
Date of birth.
phone1, phone2, phone3, phone4
Up to four known phone numbers.
email1, email2, email3, email4
Up to four known email addresses.
Address components
Address scoping for distance-based scoring.
option_relatives
Include possible relatives. Records that don't match the full name but have an association.
first_result, max_results
Pagination.
sort_by, sort_order
Default is score DESC, which is the most useful ordering for autotrace.
{
"name_first": "MARY",
"name_last": "JONES",
"dob": "1989-08-12",
"phone1": "0299995000",
"email1": "mary_jones89@example.com",
"full_address": "35 YARALLA ST CONCORD WEST NSW 2138",
"option_relatives": true,
"max_results": 10
}
Caspar Person Search API
POST
/caspar_person_search
The most flexible identity search in the Global Data universe.
Caspar Person Search API
/caspar_person_search
The most flexible identity search in the Global Data universe.
The most flexible identity search in the Global Data universe. Caspar accepts any combination of name, address, phone, email, IP address or social profile URL and returns matching person records with their full known contact and address history. Six "smart" options let you widen or narrow the search, including the smart-search mode that treats name and address as one criterion and the other identifiers as independent matchers.
name_combined, name_first, name_middle, name_last
Person name fields. At minimum, name_last (or another search key) has to be supplied.
dob_from, dob_to
DOB range bounds.
secondary_name_first, secondary_name_last, secondary_dob_from, secondary_dob_to
Secondary person search. Finds two people at the same address.
street_address, suburb, state, postcode, full_address, suburb_state_postcode
Address components, a full address, or address line 2.
phone
Phone number.
email
Email address.
ip_address
IPv4 only. IPv6 is not supported.
social_url
Facebook, LinkedIn, Twitter/X, YouTube, Instagram, Indeed, GitHub, Meetup, Quora, Gravatar, Foursquare or Pinterest profile URL.
option_smartname
Matches initials, first-name equivalents (Robert / Bob / Rob) and similar-sounding last names (Smith / Smyth).
option_smartemail
Matches the email username across different domains and TLDs.
option_smartphone
Matches partial phone numbers across area codes and mobile prefixes.
option_smartaddress
Matches similar or misspelled addresses in the selected area or neighbouring suburbs.
option_smartsearch
Changes the search logic to (Name AND Address) OR Phone OR Email OR IP OR Social
option_marketing_opt_in
Include per-contact marketing_opt_in flags on each record.
first_result, max_results
Pagination. max_results is capped at 30.
sort_by, sort_order
Result ordering.
{
"name_first": "MARY",
"name_last": "JONES",
"full_address": "35 YARALLA ST CONCORD WEST NSW 2138",
"option_smartsearch": true,
"option_marketing_opt_in": true,
"max_results": 10
}
Payroll and Super Check
3 endpoints
Payroll and Super Check
3 endpoints
Payroll and Super Check API
POST
/payroll_super_check
Runs a Payroll Check and a Super Check in a single call, with independent consent flags for each dataset.
Payroll and Super Check API
/payroll_super_check
Runs a Payroll Check and a Super Check in a single call, with independent consent flags for each dataset.
Runs a Payroll Check and a Super Check in a single call, with independent consent flags for each dataset. You get separated super and payroll result objects in the response. Lets your workflow react to a match in either dataset without two round-trips
super_consent
Individual's consent to search super records.
payroll_consent
Individual's consent to search payroll records.
first_name, last_name, birth_date
Minimum required for a valid lookup.
middle_name
Optional Middle name.
address
Address components for cross-matching.
email
Additional fields evaluated for match outcome.
phone
Additional fields evaluated for match outcome.
employer_abn
Additional fields evaluated for match outcome.
{
"first_name": "John",
"middle_name": "James",
"last_name": "Doe",
"birth_date": "1990-01-01",
"address": {
"street_address": "4/123 Fake Street",
"suburb": "Fakeville",
"state": "VIC",
"postcode": "3987"
},
"email": "john@example.com",
"phone": "0400123456",
"employer_abn": "12345678901",
"super_consent": true,
"payroll_consent": true
}
Payroll Check API
POST
/payroll_check
Validates a person's identity against Australian payroll records.
Payroll Check API
/payroll_check
Validates a person's identity against Australian payroll records.
Validates a person's identity against Australian payroll records. Each input field comes back as MATCHED or UNMATCHED (name, date of birth, middle name, address, email, phone, employer ABN). Gives you a useful employment-data signal for KYC, particularly for thin-file individuals who don't have a credit history yet.
consent
Individual's consent to search payroll records.
first_name, last_name, birth_date
Minimum required for a valid lookup.
middle_name
Optional Middle name.
address
Address components for cross-matching.
email, phone, employer_abn
Additional fields evaluated for match outcome.
{
"first_name": "John",
"middle_name": "James",
"last_name": "Doe",
"birth_date": "1990-01-01",
"address": {
"street_address": "4/123 Fake Street",
"suburb": "Fakeville",
"state": "VIC",
"postcode": "3987"
},
"email": "john@example.com",
"phone": "0400123456",
"employer_abn": "12345678901",
"consent": true
}
Super Check API
POST
/super_check
Validates identity details against Australian superannuation records.
Super Check API
/super_check
Validates identity details against Australian superannuation records.
Validates identity details against Australian superannuation records. Per-field MATCHED / UNMATCHED responses across name, DOB, middle name, address, email, phone and employer ABN. Gives you an independent identity signal sourced from the super system, which covers nearly every working Australian.
consent
Individual's consent to search super records.
first_name, last_name, birth_date
Minimum required for a valid lookup.
middle_name
Optional Middle name
address
street_address, suburb, state, postcode
email
Additional fields evaluated for match outcome.
phone
Additional fields evaluated for match outcome.
employer_abn
Additional fields evaluated for match outcome.
{
"first_name": "John",
"middle_name": "James",
"last_name": "Doe",
"birth_date": "1990-01-01",
"address": {
"street_address": "4/123 Fake Street",
"suburb": "Fakeville",
"state": "VIC",
"postcode": "3987"
},
"email": "john@example.com",
"phone": "0400123456",
"employer_abn": "12345678901",
"consent": true
}
Sanctions
2 endpoints
Sanctions
2 endpoints
PEP / Sanction Bulk Search API
POST
/pep_sanction_checks
The bulk version of PEP / Sanction Search.
PEP / Sanction Bulk Search API
/pep_sanction_checks
The bulk version of PEP / Sanction Search.
The bulk version of PEP / Sanction Search. Submit multiple individual, company or vessel screens in one call, sharing the search type, similarity threshold and country filters across all of them. Suited to periodic batch screening of customer registers, supplier lists and counterparty databases.
Shared config: search_type, pep_countries, sanction_countries, max_results, similarity_threshold, pep_sanction_extended_result
Applied to every request in the batch.
requests
Individual, company or vessel checks. Each one can carry a check_id for result correlation.
{
"search_type": "broad_search",
"pep_countries": ["au"],
"sanction_countries": ["au"],
"max_results": 20,
"similarity_threshold": 80,
"pep_sanction_extended_result": true,
"requests": [
{
"check_id": "abcd123456789",
"first_name": "Phil",
"last_name": "Smith",
"birth_date": "1938-10-24"
}
]
}
PEP / Sanction Search API
POST
/pep_sanction_check
Screens individuals, companies and vessels against global PEP (Politically Exposed Persons) and sanctions lists.
PEP / Sanction Search API
/pep_sanction_check
Screens individuals, companies and vessels against global PEP (Politically Exposed Persons) and sanctions lists.
Screens individuals, companies and vessels against global PEP (Politically Exposed Persons) and sanctions lists. Search modes run from narrow exact-match through to broad partial-match, with configurable similarity thresholds and country-scoped filters. The response gives you matched sources, similarity scores, and optional extended record data for full investigation context.
first_name, middle_name, last_name, full_name
For individuals, supply first and last (or full_name). For companies, use company_name. For vessels, use vessel_name.
company_name
Search a company entity against sanctions.
vessel_name
Search a vessel against sanctions.
birth_date
Individual's birth date.
search_type
narrow_search (exact first + last + DOB), medium_search (exact last + DOB year + partial others), or broad_search (partial everything).
pep_countries
Scope PEP records to specific countries.
sanction_countries
Scope sanctions to specific countries.
similarity_threshold
Default 80.
max_results
Default 20.
pep_sanction_extended_result
Return full extended dataset details for each match.
{
"first_name": "Phil",
"last_name": "Smith",
"birth_date": "1938-10-24",
"search_type": "broad_search",
"pep_countries": ["au"],
"sanction_countries": ["au"],
"similarity_threshold": 80,
"pep_sanction_extended_result": true
}
Global Data Check
1 endpoint
Global Data Check
1 endpoint
Global Data Check API
POST
/globaldata_check
The most detailed identity-matching endpoint in the platform.
Global Data Check API
/globaldata_check
The most detailed identity-matching endpoint in the platform.
The most detailed identity-matching endpoint in the platform. You send a person's identity attributes (names, address parts, DOB, up to four phones and four emails) and it returns a per-field outcome map for every input. Supports a graded match ladder (exact / alias / partial / fuzzy), multi-candidate responses, error tolerance, and configurable per-name matching policies. Use it when you need to know not just whether identity matched, but exactly how.
last_name
The only required field. Everything else is optional.
first_name, middle_name
Optional name parts. Match outcomes graded as match, alias_match, partial_match, fuzzy_match, or no_match.
birth_date
Date of Birth.
gnaf_id
GNAF identifier. Mutually exclusive with full_address and the address parts.
full_address
Free-text address. Mutually exclusive with gnaf_id and the parts.
street_address, suburb, state, postcode
Individual address parts. Any combination can be supplied. They don't all have to be there together.
phone, phone2, phone3, phone4
Up to four phones (with or without leading +).
email, email2, email3, email4
Up to four emails.
return_multiple_candidates
Return up to five best-first candidates instead of a single best.
ignore_errors
Soft-drops fields that fail validation and reports them as not_used instead of failing the request with a 400.
include_deceased
Include deceased records in the candidate pool. Defaults to false.
first_name_matching
Accepted match types for first_name: exact, alias, partial, fuzzy.
middle_name_matching
Same options for middle_name.
last_name_matching
Adding fuzzy widens the candidate search to metaphone-equivalent surnames sharing a leading letter
{
"first_name": "John",
"middle_name": "James",
"last_name": "Doe",
"birth_date": "1990-01-01",
"full_address": "4/123 Fake Street, Fakeville VIC 3987",
"phone": "0400123456",
"email": "john@example.com",
"first_name_matching": ["exact", "alias"],
"return_multiple_candidates": false,
"ignore_errors": false,
"include_deceased": false
}
ID Pass
3 endpoints
ID Pass
3 endpoints
Cancel an ID Pass API
POST
/idpass/cancel
Cancels an in-flight ID Pass.
Cancel an ID Pass API
/idpass/cancel
Cancels an in-flight ID Pass.
Cancels an in-flight ID Pass. Only passes in new, opened or in_progress status can be cancelled. Terminal statuses (complete, expired, failed, cancelled) return an error. A fee refund applies if no verification steps had been taken yet (status still new or opened). Cancelling after any verification activity doesn't refund.
id
The ID Pass to cancel.
{
"id": "fe4291ca-d831-4760-96df-c9cb03b3cd95"
}
Create an ID Pass API
POST
/idpass/register
Generates a secure, configurable identity verification link for a customer.
Create an ID Pass API
/idpass/register
Generates a secure, configurable identity verification link for a customer.
Generates a secure, configurable identity verification link for a customer. ID Pass supports Australian driver licences, Australian passports, foreign passports with an Australian visa, Centrelink cards and Medicare cards. The flow routes through the DVS, with optional face liveness, biometric document-photo matching, customer-supplied ID photo, webhook event notifications, and configurable image retention. Sensitive fields are encrypted at rest using a per-pass cipher key that's returned once and never logged.
link_validity_days
How many days the link stays live. Default 7.
image_retention_days
How many days to retain captured images. 0 deletes them on completion. Default 0.
check_liveness
Whether to run face liveness during the flow.
document_1_allowed_types, document_2_allowed_types, document_3_allowed_types
Allowed document types per slot: licence, passport, medicare, visa, centrelink.
document_verification
dvs (full DVS verification, requires DVS Identity OAC), basic (format-only validation), or idsp (Global Data acts as IDSP on the customer's behalf, requires liveness plus IDSP enrolment). Default dvs.
require_id_photo
Require a customer-supplied ID photo.
id_photo_purpose
Required when require_id_photo is true. Shown on the photo capture page (for example "the SampleCo Membership Card").
webhook_url
Webhook receiver for lifecycle events.
webhook_events
Which events to notify on: opened, in_progress, complete, expired, failed, cancelled.
return_url
Page to link to from the completion screen.
requested_identity
Customer identity to be verified. Optional first_name, middle_name, last_name, date_of_birth. At least one of first_name or last_name is required if the object is supplied.
{
"link_validity_days": 3,
"image_retention_days": 5,
"check_liveness": true,
"document_1_allowed_types": ["licence", "passport"],
"document_2_allowed_types": ["licence", "passport"],
"document_verification": "dvs",
"require_id_photo": true,
"id_photo_purpose": "the SampleCo Membership Card",
"webhook_url": "https://example.com/webhook",
"webhook_events": ["opened", "in_progress", "complete", "expired", "failed", "cancelled"],
"return_url": "https://example.com/return",
"requested_identity": {
"first_name": "John",
"middle_name": "Andrew",
"last_name": "Johnson",
"date_of_birth": "1980-01-01"
}
}
Read an ID Pass API
POST
/idpass/details
Retrieves the full result of an ID Pass.
Read an ID Pass API
/idpass/details
Retrieves the full result of an ID Pass.
Retrieves the full result of an ID Pass. You get validation outcomes, biometric results, captured document images, OCR data, and the verified identity. Supply the cipher key returned at registration to receive decrypted values, or omit it and decrypt locally. Optional flags let you pull debug logs, document detail and captured images.
id
The ID Pass identifier returned from register.
cipher_key
Supply to receive decrypted sensitive fields. Omit to receive encrypted payloads for local decryption.
return_logs
Include the debug log of user steps.
return_images
Include captured images (within retention window).
return_documents
Include full OCR and validation detail for each document.
{
"id": "fe4291ca-d831-4760-96df-c9cb03b3cd95",
"cipher_key": "IHm81bkcMsTL7J1ilxhDNE59+p5OQkvUJ3mZQhlUNHA=",
"return_logs": true,
"return_images": true,
"return_documents": true
}
Court Check
2 endpoints
Court Check
2 endpoints
Court Check API
POST
/court_check
Searches Australian court records against an individual or company name and state.
Court Check API
/court_check
Searches Australian court records against an individual or company name and state.
Searches Australian court records against an individual or company name and state. Supports summary reports (count by type) or detailed reports (full record list), scoped to civil, criminal, or both listings. Used in KYC, EDD, supplier due diligence and litigation pre-screening.
type
name (individual) or company.
report
summary (counts) or detail (full records).
listing
civil, criminal, or all.
name_first, name_middle, name_last
Required for type=name summary reports.
name_full
Required for type=name detailed reports. Format is "LAST, FIRST MIDDLE".
company
Required for type=company.
state
ACT, NSW, NT, QLD, SA, TAS, VIC, WA. Omit to search all states.
max_results, first_result
Pagination.
{
"type": "name",
"report": "summary",
"listing": "civil",
"name_first": "Michael",
"name_last": "Raymond",
"state": "VIC",
"max_results": 10,
"first_result": 0
}
Court Check Multiple API
POST
/court_check_multiple
The bulk version of Court Check.
Court Check Multiple API
/court_check_multiple
The bulk version of Court Check.
The bulk version of Court Check. Up to 20 requests in a single call, sharing report type, listing, pagination and an optional start date across all items. Suited to batch screening of customer rosters, supplier lists or director groups.
Shared config: report, listing, max_results, first_result, optional start_date
Applied across all requests in the batch.
requests
Each item carries an optional check_id plus type and the right name or company fields, with an optional state filter.
{
"report": "summary",
"listing": "all",
"first_result": 1,
"max_results": 10,
"requests": [
{ "check_id": "name_check_001", "type": "name", "name_first": "Michael", "name_last": "Raymond", "state": "VIC" },
{ "check_id": "company_check_002", "type": "company", "company": "Samplemart", "state": "VIC" }
]
}
Court Search
1 endpoint
Court Search
1 endpoint
Court Search API
POST
/court_search
High-speed search of Australian court records, covering listed cases from 1 January 2026 onwards.
Court Search API
/court_search
High-speed search of Australian court records, covering listed cases from 1 January 2026 onwards.
High-speed search of Australian court records, covering listed cases from 1 January 2026 onwards. Search by person, company, ACN, case number, or case title with rich filtering on state, court (38 supported), jurisdiction type, jurisdiction level, party role and date ranges. Each request accepts an array of up to 20 queries. Pagination and sorting (by date or relevance) included.
requests
Array of search queries.
requests[].search_id
Your correlation ID for the query.
case_title, case_number
Search by title (fuzzy / contains) or case number (exact or partial).
name_first, name_middle, name_last
Person search. Can't be combined with name_full.
name_full
Person search
company_name, company_acn
Company entity search.
party_role
plaintiff, defendant, applicant, respondent, or subject (for coroner inquests).
states
Up to nine states/territories including FED.
courts
38 supported courts: local, district, supreme, magistrates, county, coroner, family, tribunal, federal, and so on.
jurisdiction_type
civil or criminal.
jurisdiction_level
supreme, district, magistrate, federal, family, tribunal, coroner.
match_type
exact or fuzzy.
sort_by
relevance (default), date_desc, date_asc.
date_from, date_to
Filter by hearing date.
date_added_from, date_added_to
Filter by when the record was added to the database. Useful for delta queries.
page, per_page
Pagination. per_page is capped at 50, default 20.
{
"requests": [
{
"search_id": "ref-1",
"name_first": "Michael",
"name_last": "Raymond",
"states": ["VIC"],
"jurisdiction_type": "civil"
}
]
}
Business Intelligence
2 endpoints
Business Intelligence
2 endpoints
Create a Business Intelligence Request API
Experimental
POST
/business_intelligence
Pulls together a deep-dive intelligence report on the business behind an ABN.
Create a Business Intelligence Request API
Experimental/business_intelligence
Pulls together a deep-dive intelligence report on the business behind an ABN.
Pulls together a deep-dive intelligence report on the business behind an ABN. The report combines ABN status and history, ACN data, recent ASIC documents, business names, domains, websites, ANZSIC code, AUSTRAC remitter details and a generated summary. The query takes a few minutes to compile. Queue it with this endpoint, then poll the retrieve endpoint with the returned request_uuid.
abn
The 11-digit ABN to investigate.
{
"abn": "12345678901"
}
Retrieve a Business Intelligence Request API
Experimental
GET
/business_intelligence/{request_uuid}
Retrieves the result of a queued Business Intelligence request API .
Retrieve a Business Intelligence Request API
Experimental/business_intelligence/{request_uuid}
Retrieves the result of a queued Business Intelligence request API .
Retrieves the result of a queued Business Intelligence request API . Returns pending, processing, complete or failed status. When complete, the response contains the full intelligence payload: ABN history, ACN data, recent ASIC documents, business names, domains, websites, ANZSIC code, AUSTRAC remitter details and a generated business summary.
request_uuid
The request UUID returned by the create call.
GET /business_intelligence/fe4291ca-d831-4760-96df-c9cb03b3cd95
ASIC
8 endpoints
ASIC
8 endpoints
ASIC Banned Persons Search API
POST
/asic_banned_persons
Searches the ASIC register of banned persons specifically.
ASIC Banned Persons Search API
/asic_banned_persons
Searches the ASIC register of banned persons specifically.
Searches the ASIC register of banned persons specifically. Covers AFS banned/disqualified, banned futures representatives, banned securities representatives, credit banned/disqualified, and disqualified directors. Same search-mode and similarity-threshold logic as the broader Banned and Disqualified Person Search, but scoped to ASIC-sourced data only.
search_type
narrow_search, medium_search or broad_search.
banned_types
afs_banned_disqualified, banned_futures, banned_securities, credit_banned_disqualified, disqualified_director.
similarity_threshold
Default 80.
requests
Bulk-style array with check_id, first_name, middle_name, last_name.
{
"search_type": "medium_search",
"banned_types": ["afs_banned_disqualified"],
"similarity_threshold": 80,
"requests": [
{
"check_id": "abcd123456789",
"first_name": "Phil",
"middle_name": null,
"last_name": "Smith"
}
]
}
ASIC Extract API
POST
/asic_extract
Orders a full ASIC company or person extract.
ASIC Extract API
/asic_extract
Orders a full ASIC company or person extract.
Orders a full ASIC company or person extract. Supports current, historical and relational extract types for companies. Current or historical for persons. The job is queued and returns an api_reference. Poll the retrieve endpoint until the extract payload is read
type
company or person.
extract_type
Companies: current, historical, or relational. Persons: current or historical only.
abn
Required for company when ACN isn't supplied. 11 digits, whitespace ignored.
acn
Required for company when ABN isn't supplied.
person_id
Required for person extracts. From asic_extract_person_search.
additional_person_ids
Linked ASIC person IDs from the search result. Don't repeat the primary person_id.
search_id
Required for person extracts. From the search response.
name
Required for person extracts. Uppercase legal name matching the search result.
birth_date
Required for person extracts. From the search result.
{
"type": "company",
"extract_type": "current",
"abn": "32111111114"
}
ASIC Extract Company Search API
POST
/asic_extract_company_search
Finds the ASIC identifiers you need when ordering a company extract via /asic_extract.
ASIC Extract Company Search API
/asic_extract_company_search
Finds the ASIC identifiers you need when ordering a company extract via /asic_extract.
Finds the ASIC identifiers you need when ordering a company extract via /asic_extract. Supports ABN, ACN and free-form name search modes, auto-detected from the input format. Name searches accept registration status filters (registered / deregistered / all) and optional postcode or state filters to narrow large name-match result sets.
search
Company name, ABN, or ACN. Whitespace ignored for numbers. Letter casing ignored for names.
max_results
Max results for name searches. Default 20. Ignored for ABN/ACN lookups.
status
registered, deregistered, or all (default). Ignored for ABN/ACN.
postcode
Limits name searches to registered offices in that postcode or neighbouring postcodes.
state
State code filter for name searches. If both postcode and state are supplied, only postcode applies.
{
"search": "ACME CORPORATION PTY LTD",
"max_results": 25,
"status": "registered"
}
ASIC Extract Person Search API
POST
/asic_extract_person_search
Finds the ASIC person_id identifiers you need to order a full person extract.
ASIC Extract Person Search API
/asic_extract_person_search
Finds the ASIC person_id identifiers you need to order a full person extract.
Finds the ASIC person_id identifiers you need to order a full person extract. You send legal name, date of birth and extract type. The response is matched ASIC identities, including any linked person IDs (where someone has the same name and DOB recorded across different shareholdings, for example). Pass those linked IDs through to the extract call so the resulting extract stitches together every related role
first_name
First given name. Combined with middle_name, maximum three given names allowed.
middle_name
Optional middle names.
last_name
Family name as recorded with ASIC.
birth_date
Must be after 1900-01-01.
extract_type
current (people with current roles or shareholdings) or historical (includes ceased roles).
{
"first_name": "John",
"middle_name": "Michael",
"last_name": "Doe",
"birth_date": "1980-05-15",
"extract_type": "historical"
}
ASIC ID Check API
POST
/asic_id_check
Verifies an individual against the ASIC officeholder and shareholder register using their name and date of birth.
ASIC ID Check API
/asic_id_check
Verifies an individual against the ASIC officeholder and shareholder register using their name and date of birth.
Verifies an individual against the ASIC officeholder and shareholder register using their name and date of birth. The response is a compact match_results summary telling you whether the details match an ASIC record, without exposing PII. Use it when you need to confirm a person is on the ASIC register without ordering the full extract.
first_name
First given name.
middle_name
Middle names. Soft-matched (doesn't gate the result).
last_name
Family name.
birth_date
Must be after 1900-01-01.
{
"first_name": "John",
"middle_name": "Michael",
"last_name": "Doe",
"birth_date": "1980-05-15"
}
ASIC Search API
POST
/asic_search
Searches the ASIC register for a company or business name.
ASIC Search API
/asic_search
Searches the ASIC register for a company or business name.
Searches the ASIC register for a company or business name. You can look up by number (ABN, ACN, or state business registration number) for a direct hit, or by exact business name. Returns the full ASIC profile: identifier, jurisdiction, name, type, class, subclass, status, ABR entity details, registration dates, addresses, and recent ASIC documents.
number
ABN (11 digits), ACN (9 digits), or state number.
business_name
Exact business name to search for.
{
"number": "12345678901",
"business_name": "Acme Services"
}
ASIC Search Bulk API
POST
/asic_searches
The bulk version of ASIC Search.
ASIC Search Bulk API
/asic_searches
The bulk version of ASIC Search.
The bulk version of ASIC Search. Submit multiple company or business-name lookups in one call, with an optional check_id for result correlation. Suited to portfolio onboarding, supplier roster checks and periodic register hygiene.
requests
Array of search items.
requests[].check_id
Optional correlation ID.
requests[].number, requests[].business_name
Same input options as the single ASIC Search.
{
"requests": [
{
"check_id": "abcd123456789",
"number": "12345678901",
"business_name": "Acme Services"
}
]
}
Retrieve ASIC Extract API
GET
/asic_extract/{api_reference}
Polls the status of an ASIC extract previously queued via POST /asic_extract.
Retrieve ASIC Extract API
/asic_extract/{api_reference}
Polls the status of an ASIC extract previously queued via POST /asic_extract.
Polls the status of an ASIC extract previously queued via POST /asic_extract. Returns 202 while still processing, 200 with the full JSON payload when complete. Append ?pdf=true to get a formatted PDF copy instead of JSON. Retrieval calls aren't billable, so you can poll until the extract is ready without extra cost.
api_reference
Reference returned by the order call.
pdf
When true, returns a PDF document (application/pdf) instead of JSON
GET /asic_extract/fe4291ca-d831-4760-96df-c9cb03b3cd95 GET /asic_extract/fe4291ca-d831-4760-96df-c9cb03b3cd95?pdf=true
Company Risk
3 endpoints
Company Risk
3 endpoints
ASIC Company Search (Risk) API
POST
/asic_company_search
Finds the ASIC identifiers needed to order a Company Risk report.
ASIC Company Search (Risk) API
/asic_company_search
Finds the ASIC identifiers needed to order a Company Risk report.
Finds the ASIC identifiers needed to order a Company Risk report. Same input modes as the extract company search: ABN, ACN, or free-form name, with optional status, postcode and state filters to narrow large name-match result sets.
search
Company name, ABN, or ACN.
max_results
Max results for name searches. Default 20.
status
registered, deregistered, or all (default).
postcode
: Limits name searches to registered offices in that postcode or neighbouring postcodes.
state
State code filter for name searches.
{
"search": "ACME CORPORATION PTY LTD",
"max_results": 25,
"status": "registered"
}
Company Risk Report API
POST
/company_risk
Orders a company risk report using an ABN or ACN.
Company Risk Report API
/company_risk
Orders a company risk report using an ABN or ACN.
Orders a company risk report using an ABN or ACN. The job is queued and an api_reference is returned. Poll the retrieve endpoint until the report is complete.
abn
Supply ABN or ACN, not both. 11 digits, whitespace ignored.
acn
9 digits.
{
"abn": "94782610486"
}
Retrieve Company Risk Report API
GET
/company_risk/{api_reference}
Polls the status of a Company Risk report queued via POST /company_risk.
Retrieve Company Risk Report API
/company_risk/{api_reference}
Polls the status of a Company Risk report queued via POST /company_risk.
Polls the status of a Company Risk report queued via POST /company_risk. Returns 202 while still compiling, 200 with the full JSON report when complete. Append ?pdf=true for a formatted PDF. Polling isn't billable.
api_reference
Returned by the create call.
pdf
When true, returns a PDF instead of JSON.
GET /company_risk/fe4291ca-d831-4760-96df-c9cb03b3cd95 GET /company_risk/fe4291ca-d831-4760-96df-c9cb03b3cd95?pdf=true
Likeness Check
1 endpoint
Likeness Check
1 endpoint
Likeness (Face Similarity) Check API
POST
/likeness_check
Compares two face images and returns a similarity score plus a threshold-based pass or fail.
Likeness (Face Similarity) Check API
/likeness_check
Compares two face images and returns a similarity score plus a threshold-based pass or fail.
Compares two face images and returns a similarity score plus a threshold-based pass or fail. Use it to validate whether an ID document portrait (typically from a driver licence) and a live selfie represent the same individual. The configurable similarity threshold lets you tighten or loosen the pass bar to suit your risk appetite.
photo
Reference image. Typically the ID document portrait. JPEG or PNG. Max 5 MB.
probe_image
Probe image. Typically a live selfie. JPEG or PNG. Max 5 MB.
similarity_threshold
Override the default threshold. If omitted, the system default is applied.
{
"photo": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ...",
"probe_image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ...",
"similarity_threshold": 80
}
Liveness Check
2 endpoints
Liveness Check
2 endpoints
Create a Liveness Check API
POST
/liveness_check
Creates a hosted liveness verification link.
Create a Liveness Check API
/liveness_check
Creates a hosted liveness verification link.
Creates a hosted liveness verification link. The end user is guided through a face liveness capture flow in their browser. The result (live human vs spoof attempt) can then be retrieved via the GET endpoint or pushed to your webhook. Configurable link validity, threshold and audit-image retention give you control over the flow without writing your own capture UI.
return_url
Where to redirect the user after the flow completes (or hits a terminal state).
webhook_url
Optional webhook for lifecycle events.
link_valid_mins
Link validity window. Default 10.
threshold
Custom liveness score threshold. Default is the system value (currently 70).
audit_images
Number of additional audit frame images to retain (beyond the single probe image).
{
"return_url": "https://example.com/return",
"webhook_url": "https://example.com/webhook",
"link_valid_mins": 10,
"threshold": 70,
"audit_images": 2
}
Retrieve a Liveness Check Result API
GET
/liveness_check
Retrieves the status or final result of a liveness check using the token returned from the create endpoint.
Retrieve a Liveness Check Result API
/liveness_check
Retrieves the status or final result of a liveness check using the token returned from the create endpoint.
Retrieves the status or final result of a liveness check using the token returned from the create endpoint. Idempotent and safe to poll. Returns 202 while the check is pending or in progress, 200 when complete (with result object), and 410 if the link expired without completion.
token
Token from the create endpoint response.
GET /liveness_check?token=u2Qe8C9vYl1kP4a7bD6fT3mN9xR5sZ0q
ID Document
1 endpoint
ID Document
1 endpoint
Extract ID Document Data & Face Image API
POST
/id_extract
Performs OCR and data extraction on an Australian identity document (passport, driver licence, or Medicare card) and returns parsed identity fields plus a cropped face portrait where available.
Extract ID Document Data & Face Image API
/id_extract
Performs OCR and data extraction on an Australian identity document (passport, driver licence, or Medicare card) and returns parsed identity fields plus a cropped face portrait where available.
Performs OCR and data extraction on an Australian identity document (passport, driver licence, or Medicare card) and returns parsed identity fields plus a cropped face portrait where available. Use it when you're embedding into a custom KYC or onboarding flow and need extracted identity data without committing to the full ID Pass hosted flow.
document_type
passport, licence, or medicare.
document_photo
Front of the document. JPEG only. Max 16 MB.
document_back
Required when document_type is licence. Same format and limits.
{
"document_type": "passport",
"document_photo": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ..."
}
Adverse Media
1 endpoint
Adverse Media
1 endpoint
Adverse Media Check API
Experimental
POST
/adverse_media_check
Searches for adverse media coverage of a person or business.
Adverse Media Check API
Experimental/adverse_media_check
Searches for adverse media coverage of a person or business.
Searches for adverse media coverage of a person or business. Returns a generated summary, citation links to the source articles, and category tags spanning financial crime, violent crime, organised crime, drug offences, sexual offences, regulatory action, terrorism, scams and fraud, environmental violations, employment violations, and corruption and abuse of office. Built to inform enhanced due diligence on high-risk customers and counterparties.
type
person or business.
first_name
Required for person checks.
middle_name
Optional.
last_name
Required for person checks.
birth_date
Optional. Used to filter results when the source mentions an age or age range.
business_name
Required for business checks.
country
Prefer results from this country.
{
"type": "person",
"first_name": "John",
"middle_name": "James",
"last_name": "Doe",
"birth_date": "1990-01-01",
"country": "AU"
}
UK Companies House
7 endpoints
UK Companies House
7 endpoints
Company House Officer Search API
POST
/company_house_officer_search
Searches UK Companies House for officers (directors, secretaries and other officials).
Company House Officer Search API
/company_house_officer_search
Searches UK Companies House for officers (directors, secretaries and other officials).
Searches UK Companies House for officers (directors, secretaries and other officials). Fuzzy name match across all UK companies, with an optional date-of-birth filter (year and month only — Companies House doesn't publish the day). Returns matching officer IDs, addresses, appointment counts and role summaries.
name
Officer name to search.
date_of_birth
Optional DOB filter (YYYY-MM-DD). Day component is accepted but not used. Only year and month match.
max_results
Default 50.
{
"name": "John Smith",
"date_of_birth": "1975-06-15",
"max_results": 50
}
Company House Search API
POST
/company_house_search
Searches the UK Companies House register for a company by name or company number.
Company House Search API
/company_house_search
Searches the UK Companies House register for a company by name or company number.
Searches the UK Companies House register for a company by name or company number. The endpoint auto-detects whether the input is a company number (for example 12345678, SC123456, NI012345, FC012345, OC123456) or a free-form name, then dispatches the right search. Returns the company number, registered name, status, type, incorporation date and registered office address.
company
Company name or company number.
is_operational
When true, filters results to companies with an active or operational status. Default false.
max_results
Max records returned. Default 200.
{
"company": "Test Company",
"is_operational": false,
"max_results": 50
}
Create Company House Officer Report API
POST
/company_house_officer_report
Orders a UK officer report.
Create Company House Officer Report API
/company_house_officer_report
Orders a UK officer report.
Orders a UK officer report. Covers personal details, current and former appointments, and disqualification records (when disqualified: true). Async queue and retrieve pattern. The returned api_reference is used to poll the retrieve endpoint.
officer_id
Officer ID returned from the officer search.
disqualified
When true, searches the disqualified officers register instead of the standard one.
type
natural (individual) or corporate. Only used when disqualified is true.
{
"officer_id": "ABC123DEF456",
"disqualified": false,
"type": "natural"
}
Create UK Company Report API
POST
/company_house_report
Orders a UK Companies House company report.
Create UK Company Report API
/company_house_report
Orders a UK Companies House company report.
Orders a UK Companies House company report. The report covers registration details, registered office, current and previous names, officers (directors and secretaries), persons with significant control, filing history summary, accounts information and any charges. The job is queued and async. Poll the retrieve endpoint with the returned api_reference.
company_number
UK Companies House company number, including any jurisdiction prefix.
{
"company_number": "12345678"
}
Retrieve Company House Report API
GET
/company_house_report/{api_reference}
Polls the status of a UK Companies House company report queued via POST /company_house_report.
Retrieve Company House Report API
/company_house_report/{api_reference}
Polls the status of a UK Companies House company report queued via POST /company_house_report.
Polls the status of a UK Companies House company report queued via POST /company_house_report. Returns 202 while compiling, 200 when ready with the full JSON payload. Append ?pdf=true for a formatted PDF copy. Retrieval calls aren't billable.
api_reference
Returned by the create call.
pdf
When true, returns the report as a PDF.
GET /company_house_report/fe4291ca-d831-4760-96df-c9cb03b3cd95 GET /company_house_report/fe4291ca-d831-4760-96df-c9cb03b3cd95?pdf=true
Retrieve UK Officer Report API
GET
/company_house_officer_report/{api_reference}
Polls the status of a UK officer report queued via POST /company_house_officer_report.
Retrieve UK Officer Report API
/company_house_officer_report/{api_reference}
Polls the status of a UK officer report queued via POST /company_house_officer_report.
Polls the status of a UK officer report queued via POST /company_house_officer_report. Returns 202 while compiling, 200 when ready with the full JSON payload: appointments, personal details and disqualifications. Append ?pdf=true for a PDF copy. Retrieval calls aren't billable.
api_reference
Returned by the create call.
pdf
PDF response when true.
GET /company_house_officer_report/fe4291ca-d831-4760-96df-c9cb03b3cd95 GET /company_house_officer_report/fe4291ca-d831-4760-96df-c9cb03b3cd95?pdf=true
UK Company House Document API
GET
/company_house_document/{documentId}
Retrieves a specific UK Companies House document by its document ID.
UK Company House Document API
/company_house_document/{documentId}
Retrieves a specific UK Companies House document by its document ID.
Retrieves a specific UK Companies House document by its document ID. The document ID is usually pulled from a company report's filing history. Documents come back as PDF and cover annual accounts, confirmation statements, articles of association, certificates of incorporation, change of director notifications and similar filings.
documentId
The unique document ID from a company's filing history.
GET /company_house_document/DOC123456789
WatchEye
15 categories · 61 endpoints
WatchEye platform API. Base URL: https://portal.watcheye.com.au/api/v1 — authenticate with a Bearer API key issued from Account → API Keys in the WatchEye portal. This is a separate host from the Global Data API.
WatchEye
15 categories · 61 endpointsWatchEye platform API. Base URL: https://portal.watcheye.com.au/api/v1 — authenticate with a Bearer API key issued from Account → API Keys in the WatchEye portal. This is a separate host from the Global Data API.
Account
1 endpoint
Account
1 endpoint
Show the calling account
GET
/account
Returns the account that this API key belongs to, including the environment, the products
the account can use, and the c�
Show the calling account
/account
Returns the account that this API key belongs to, including the environment, the products the account can use, and the c�
Returns the account that this API key belongs to, including the environment, the products the account can use, and the current billing balance. This is the recommended first call for any new integration: it lets you confirm that your credentials work, that you are pointed at the expected environment (live or sandbox), and that the products you intend to use are enabled on the account.
{
"data": {
"uuid": "7a1f0c8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"account_name": "Sample Account",
"company_name": "Sample Company Pty Ltd",
"environment": "live",
"is_reseller": false,
"parent_account_uuid": null,
"expires_at": "2026-12-31T00:00:00Z",
"data_retention_days": 365,
"balance": "1234.5678",
"credit_limit": "100.0000",
"available_credit": "1334.5678",
"products": [
{
"name": "pep_sanction_check",
"label": "PEP and Sanction Check"
}
],
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
Users
3 endpoints
Users
3 endpoints
List users
GET
/users
List all users on the account.
List users
/users
List all users on the account.
List all users on the account.
page
The page number to return
per_page
The number of users per page (defaults to 30, max 500)
enabled
Only return enabled users * `true` - Only return enabled users * `false` - Only return disabled users Note: The API will accept the string 'true' or the number 1 for true and the string 'false' or the number 0 for false as well as the boolean values.
{
"data": [
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"username": "jenny.doe@example",
"first_name": "Jenny",
"last_name": "Doe",
"email": "jenny.doe@example.com",
"phone": "0412345678",
"enabled": true,
"roles": [
"account_manager"
],
"last_login_at": "2021-01-01T00:00:00Z",
"created_at": "2021-01-01T00:00:00Z",
"updated_at": "2021-01-01T00:00:00Z"
}
],
"meta": {
"current_page": 1,
"per_page": 10,
"total": 1,
"last_page": 10
},
"api_reference": "123e4567-e89b-12d3-a456-426614174000"
}
Show user
GET
/users/{user_uuid}
Return a single user by UUID.
Show user
/users/{user_uuid}
Return a single user by UUID.
Return a single user by UUID.
user_uuid
The user UUID
{
"data": {
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"username": "jenny.doe@example",
"first_name": "Jenny",
"last_name": "Doe",
"email": "jenny.doe@example.com",
"phone": "0412345678",
"enabled": true,
"roles": [
"account_manager"
],
"last_login_at": "2021-01-01T00:00:00Z",
"created_at": "2021-01-01T00:00:00Z",
"updated_at": "2021-01-01T00:00:00Z"
},
"api_reference": "123e4567-e89b-12d3-a456-426614174000"
}
Update user
PATCH
/users/{user_uuid}
Update a single user by UUID.
Update user
/users/{user_uuid}
Update a single user by UUID.
Update a single user by UUID. The update user record is returned in the response.
user_uuid
The user UUID
enabled
Update the user's enabled status * `true` - The user is enabled * `false` - The user is disabled Note: The API will accept the string 'true' or the number 1 for true and the string 'false' or the number 0 for false as well as the boolean values.
{
"data": {
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"username": "jenny.doe@example",
"first_name": "Jenny",
"last_name": "Doe",
"email": "jenny.doe@example.com",
"phone": "0412345678",
"enabled": true,
"roles": [
"account_manager"
],
"last_login_at": "2021-01-01T00:00:00Z",
"created_at": "2021-01-01T00:00:00Z",
"updated_at": "2021-01-01T00:00:00Z"
},
"api_reference": "123e4567-e89b-12d3-a456-426614174000"
}
Programs
5 endpoints
Programs
5 endpoints
Create a program
POST
/programs
Create a new program in the calling account.
Create a program
/programs
Create a new program in the calling account.
Create a new program in the calling account. Only program_name is required; every other field has a sensible default.
Idempotency-Key
Optional client-generated key (typically a UUID) that lets you safely retry a write request without risk of duplicate work or duplicate billing. A retry with the same key and body returns the original response verbatim, with the `Idempotent-Replay: true` response header. Honoured on `POST` requests
program_name
status
report_emails
Email addresses (max 5) that receive event report notifications
data_retention_months
event_grouping
max_separate_events
Required when `event_grouping` is `separate`; ignored when `grouped`. Range 5-100.
default_risk_level
The risk level pre-filled when a new entity is added to this program. When set to `null` (No default - always choose), a risk level must be explicitly selected before an entity can be saved through manual workflows; bulk file uploads assign `low`.
{
"data": {
"uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"program_number": "P-123-456-789",
"program_name": "AML Onboarding Program",
"status": "active",
"report_emails": [
"compliance@example.com"
],
"data_retention_months": 12,
"event_grouping": "separate",
"max_separate_events": 10,
"default_risk_level": "low",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
Delete a program
DELETE
/programs/{program_uuid}
Soft-deletes the program and every entity in it (and that entity's checks, ID checks,
reports, events, notes and crossma�
Delete a program
/programs/{program_uuid}
Soft-deletes the program and every entity in it (and that entity's checks, ID checks, reports, events, notes and crossma�
Soft-deletes the program and every entity in it (and that entity's checks, ID checks, reports, events, notes and crossmatches). The records are no longer returned by list/show endpoints but remain in the database for compliance and audit purposes. The deleted program record is returned in the response as confirmation; a subsequent show or list call for it will return 404.
program_uuid
The program UUID
{
"data": {
"uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"program_number": "P-123-456-789",
"program_name": "AML Onboarding Program",
"status": "active",
"report_emails": [
"compliance@example.com"
],
"data_retention_months": 12,
"event_grouping": "separate",
"max_separate_events": 10,
"default_risk_level": "low",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
List programs
GET
/programs
Returns the programs belonging to the calling account.
List programs
/programs
Returns the programs belonging to the calling account.
Returns the programs belonging to the calling account. Soft-deleted programs are excluded. Results are paginated.
page
The page number to return
per_page
The number of programs per page (defaults to 30, max 500)
filter[status]
sort
Field to sort by; prefix with `-` for descending order
{
"data": [
{
"uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"program_number": "P-123-456-789",
"program_name": "AML Onboarding Program",
"status": "active",
"report_emails": [
"compliance@example.com"
],
"data_retention_months": 12,
"event_grouping": "separate",
"max_separate_events": 10,
"default_risk_level": "low",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
}
],
"meta": {
"current_page": 1,
"per_page": 30,
"total": 1,
"last_page": 1
},
"api_reference": "string"
}
Show a program
GET
/programs/{program_uuid}
Returns a single program by its UUID.
Show a program
/programs/{program_uuid}
Returns a single program by its UUID.
Returns a single program by its UUID. Unknown UUIDs return 404.
program_uuid
The program UUID
{
"data": {
"uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"program_number": "P-123-456-789",
"program_name": "AML Onboarding Program",
"status": "active",
"report_emails": [
"compliance@example.com"
],
"data_retention_months": 12,
"event_grouping": "separate",
"max_separate_events": 10,
"default_risk_level": "low",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
Update a program
PATCH
/programs/{program_uuid}
Update an existing program using PATCH semantics: only the fields you supply are changed,
everything else is left as-is.�
Update a program
/programs/{program_uuid}
Update an existing program using PATCH semantics: only the fields you supply are changed, everything else is left as-is.�
Update an existing program using PATCH semantics: only the fields you supply are changed, everything else is left as-is. Pass null to clear an optional field. Note: when changing event_grouping to separate you must also supply max_separate_events. Conversely, when changing it to grouped, any supplied max_separate_events is ignored and the stored value is cleared.
program_uuid
The program UUID
program_name
status
report_emails
data_retention_months
event_grouping
max_separate_events
default_risk_level
The risk level pre-filled when a new entity is added to this program. When set to `null` (No default - always choose), a risk level must be explicitly selected before an entity can be saved through manual workflows; bulk file uploads assign `low`.
{
"data": {
"uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"program_number": "P-123-456-789",
"program_name": "AML Onboarding Program",
"status": "active",
"report_emails": [
"compliance@example.com"
],
"data_retention_months": 12,
"event_grouping": "separate",
"max_separate_events": 10,
"default_risk_level": "low",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
Entities
7 endpoints
Entities
7 endpoints
Archive an entity
POST
/entities/{entity_uuid}/archive
Archives the entity together with all checks, reports, events, notes and identification
checks belonging to it. Archived�
Archive an entity
/entities/{entity_uuid}/archive
Archives the entity together with all checks, reports, events, notes and identification checks belonging to it. Archived�
Archives the entity together with all checks, reports, events, notes and identification checks belonging to it. Archived records remain fully visible via list and show endpoints and can be included or excluded with the archived query parameter on the entities list.
entity_uuid
The entity UUID
Idempotency-Key
Optional client-generated key (typically a UUID) that lets you safely retry a write request without risk of duplicate work or duplicate billing. A retry with the same key and body returns the original response verbatim, with the `Idempotent-Replay: true` response header. Honoured on `POST` requests
{
"data": {
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"entity_number": "E-A1-B2C-3D4",
"reference_number": "CUST-12345",
"entity_type": "individual",
"entity_name": "Jane A Doe",
"first_name": "Jane",
"middle_name": "A",
"last_name": "Doe",
"birth_date": "1980-05-15",
"business_name": "Acme Pty Ltd",
"business_number": "12345678901",
"business_number_type": "au_abn",
"vessel_name": "HMAS Sydney",
"property_name": "1 Example Street, Sydney",
"address_line1": "1 Example Street",
"address_line2": "Unit 4",
"address_suburb": "Sydney",
"address_state": "NSW",
"address_postcode": "2000",
"address_country": "AU",
"phone1": "+61412345678",
"phone2": "string",
"phone3": "string",
"phone4": "string",
"email1": "jane.doe@example.com",
"email2": "string",
"email3": "string",
"email4": "string",
"flags": [
"pep",
"adverse_media"
],
"risk_level": "low",
"archived_at": "2025-04-01T10:00:00Z",
"deleted_at": "2025-04-01T10:00:00Z",
"program_uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
Create an entity in a program
POST
/programs/{program_uuid}/entities
Create a new entity in the specified program.
Create an entity in a program
/programs/{program_uuid}/entities
Create a new entity in the specified program.
Create a new entity in the specified program. The supplied fields must be appropriate for the chosen entity_type: * individual - requires at least one of first_name / last_name. May supply birth_date. Business, vessel and property fields are ignored. * business - requires business_name. Optionally business_number + business_number_type. Individual, vessel and property fields are ignored.
program_uuid
The program UUID
Idempotency-Key
Optional client-generated key (typically a UUID) that lets you safely retry a write request without risk of duplicate work or duplicate billing. A retry with the same key and body returns the original response verbatim, with the `Idempotent-Replay: true` response header. Honoured on `POST` requests
reference_number
An optional customer-supplied reference number, must be unique within the program
entity_type
first_name
middle_name
last_name
birth_date
Date of birth in `YYYY-MM-DD` format
business_name
business_number
business_number_type
vessel_name
property_name
address_line1
address_line2
address_suburb
address_state
address_postcode
address_country
phone1
phone2
phone3
phone4
email1
email2
email3
email4
flags
risk_level
{
"data": {
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"entity_number": "E-A1-B2C-3D4",
"reference_number": "CUST-12345",
"entity_type": "individual",
"entity_name": "Jane A Doe",
"first_name": "Jane",
"middle_name": "A",
"last_name": "Doe",
"birth_date": "1980-05-15",
"business_name": "Acme Pty Ltd",
"business_number": "12345678901",
"business_number_type": "au_abn",
"vessel_name": "HMAS Sydney",
"property_name": "1 Example Street, Sydney",
"address_line1": "1 Example Street",
"address_line2": "Unit 4",
"address_suburb": "Sydney",
"address_state": "NSW",
"address_postcode": "2000",
"address_country": "AU",
"phone1": "+61412345678",
"phone2": "string",
"phone3": "string",
"phone4": "string",
"email1": "jane.doe@example.com",
"email2": "string",
"email3": "string",
"email4": "string",
"flags": [
"pep",
"adverse_media"
],
"risk_level": "low",
"archived_at": "2025-04-01T10:00:00Z",
"deleted_at": "2025-04-01T10:00:00Z",
"program_uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
Delete an entity
DELETE
/entities/{entity_uuid}
Soft-deletes the entity and its dependent records (checks, ID checks, reports, events,
notes and crossmatches). See the
�
Delete an entity
/entities/{entity_uuid}
Soft-deletes the entity and its dependent records (checks, ID checks, reports, events, notes and crossmatches). See the �
Soft-deletes the entity and its dependent records (checks, ID checks, reports, events, notes and crossmatches). See the Soft Deletion section of the API guide for the full policy (30-day recovery window, portal-only restore, what gets cascaded).
entity_uuid
The entity UUID
{
"data": {
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"entity_number": "E-A1-B2C-3D4",
"reference_number": "CUST-12345",
"entity_type": "individual",
"entity_name": "Jane A Doe",
"first_name": "Jane",
"middle_name": "A",
"last_name": "Doe",
"birth_date": "1980-05-15",
"business_name": "Acme Pty Ltd",
"business_number": "12345678901",
"business_number_type": "au_abn",
"vessel_name": "HMAS Sydney",
"property_name": "1 Example Street, Sydney",
"address_line1": "1 Example Street",
"address_line2": "Unit 4",
"address_suburb": "Sydney",
"address_state": "NSW",
"address_postcode": "2000",
"address_country": "AU",
"phone1": "+61412345678",
"phone2": "string",
"phone3": "string",
"phone4": "string",
"email1": "jane.doe@example.com",
"email2": "string",
"email3": "string",
"email4": "string",
"flags": [
"pep",
"adverse_media"
],
"risk_level": "low",
"archived_at": "2025-04-01T10:00:00Z",
"deleted_at": "2025-04-01T10:00:00Z",
"program_uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
List entities in a program
GET
/programs/{program_uuid}/entities
Returns the entities in the specified program.
List entities in a program
/programs/{program_uuid}/entities
Returns the entities in the specified program.
Returns the entities in the specified program. Results are paginated.
program_uuid
The program UUID
page
The page number to return
per_page
The number of entities per page (defaults to 30, max 500)
filter[entity_type]
filter[risk_level]
filter[flags]
Return entities flagged with the given value
filter[reference_number]
sort
Field to sort by; prefix with `-` for descending order
archived
Filter by archive status. * `true` - only archived entities * `false` - only non-archived entities Note: The API will accept the string 'true' or the number 1 for true and the string 'false' or the number 0 for false as well as the boolean values.
{
"data": [
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"entity_number": "E-A1-B2C-3D4",
"reference_number": "CUST-12345",
"entity_type": "individual",
"entity_name": "Jane A Doe",
"first_name": "Jane",
"middle_name": "A",
"last_name": "Doe",
"birth_date": "1980-05-15",
"business_name": "Acme Pty Ltd",
"business_number": "12345678901",
"business_number_type": "au_abn",
"vessel_name": "HMAS Sydney",
"property_name": "1 Example Street, Sydney",
"address_line1": "1 Example Street",
"address_line2": "Unit 4",
"address_suburb": "Sydney",
"address_state": "NSW",
"address_postcode": "2000",
"address_country": "AU",
"phone1": "+61412345678",
"phone2": "string",
"phone3": "string",
"phone4": "string",
"email1": "jane.doe@example.com",
"email2": "string",
"email3": "string",
"email4": "string",
"flags": [
"pep",
"adverse_media"
],
"risk_level": "low",
"archived_at": "2025-04-01T10:00:00Z",
"deleted_at": "2025-04-01T10:00:00Z",
"program_uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
}
],
"meta": {
"current_page": 1,
"per_page": 30,
"total": 1,
"last_page": 1
},
"api_reference": "string"
}
Show an entity
GET
/entities/{entity_uuid}
Returns a single entity by its UUID.
Show an entity
/entities/{entity_uuid}
Returns a single entity by its UUID.
Returns a single entity by its UUID. Unknown UUIDs return 404.
entity_uuid
The entity UUID
{
"data": {
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"entity_number": "E-A1-B2C-3D4",
"reference_number": "CUST-12345",
"entity_type": "individual",
"entity_name": "Jane A Doe",
"first_name": "Jane",
"middle_name": "A",
"last_name": "Doe",
"birth_date": "1980-05-15",
"business_name": "Acme Pty Ltd",
"business_number": "12345678901",
"business_number_type": "au_abn",
"vessel_name": "HMAS Sydney",
"property_name": "1 Example Street, Sydney",
"address_line1": "1 Example Street",
"address_line2": "Unit 4",
"address_suburb": "Sydney",
"address_state": "NSW",
"address_postcode": "2000",
"address_country": "AU",
"phone1": "+61412345678",
"phone2": "string",
"phone3": "string",
"phone4": "string",
"email1": "jane.doe@example.com",
"email2": "string",
"email3": "string",
"email4": "string",
"flags": [
"pep",
"adverse_media"
],
"risk_level": "low",
"archived_at": "2025-04-01T10:00:00Z",
"deleted_at": "2025-04-01T10:00:00Z",
"program_uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
Unarchive an entity
POST
/entities/{entity_uuid}/unarchive
Restores an archived entity together with all of its checks, reports, events, notes and
identification checks. The entit�
Unarchive an entity
/entities/{entity_uuid}/unarchive
Restores an archived entity together with all of its checks, reports, events, notes and identification checks. The entit�
Restores an archived entity together with all of its checks, reports, events, notes and identification checks. The entity returns to the active set and resumes appearing in monitor runs and default reports. Calling unarchive on an entity that is not currently archived returns the entity in its current state without recording a new audit entry or re-cascading to the child records.
entity_uuid
The entity UUID
Idempotency-Key
Optional client-generated key (typically a UUID) that lets you safely retry a write request without risk of duplicate work or duplicate billing. A retry with the same key and body returns the original response verbatim, with the `Idempotent-Replay: true` response header. Honoured on `POST` requests
{
"data": {
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"entity_number": "E-A1-B2C-3D4",
"reference_number": "CUST-12345",
"entity_type": "individual",
"entity_name": "Jane A Doe",
"first_name": "Jane",
"middle_name": "A",
"last_name": "Doe",
"birth_date": "1980-05-15",
"business_name": "Acme Pty Ltd",
"business_number": "12345678901",
"business_number_type": "au_abn",
"vessel_name": "HMAS Sydney",
"property_name": "1 Example Street, Sydney",
"address_line1": "1 Example Street",
"address_line2": "Unit 4",
"address_suburb": "Sydney",
"address_state": "NSW",
"address_postcode": "2000",
"address_country": "AU",
"phone1": "+61412345678",
"phone2": "string",
"phone3": "string",
"phone4": "string",
"email1": "jane.doe@example.com",
"email2": "string",
"email3": "string",
"email4": "string",
"flags": [
"pep",
"adverse_media"
],
"risk_level": "low",
"archived_at": "2025-04-01T10:00:00Z",
"deleted_at": "2025-04-01T10:00:00Z",
"program_uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
Update an entity
PATCH
/entities/{entity_uuid}
Update an existing entity using PATCH semantics: only the fields you supply are changed,
everything else is left as-is. �
Update an entity
/entities/{entity_uuid}
Update an existing entity using PATCH semantics: only the fields you supply are changed, everything else is left as-is. �
Update an existing entity using PATCH semantics: only the fields you supply are changed, everything else is left as-is. Pass null to clear an optional field. Notes: * entity_type cannot be changed after creation. It is silently ignored if supplied. * birth_date is silently ignored if the entity is locked because it has been used in an identification check.
entity_uuid
The entity UUID
reference_number
first_name
middle_name
last_name
birth_date
business_name
business_number
business_number_type
vessel_name
property_name
address_line1
address_line2
address_suburb
address_state
address_postcode
address_country
phone1
phone2
phone3
phone4
email1
email2
email3
email4
flags
risk_level
{
"data": {
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"entity_number": "E-A1-B2C-3D4",
"reference_number": "CUST-12345",
"entity_type": "individual",
"entity_name": "Jane A Doe",
"first_name": "Jane",
"middle_name": "A",
"last_name": "Doe",
"birth_date": "1980-05-15",
"business_name": "Acme Pty Ltd",
"business_number": "12345678901",
"business_number_type": "au_abn",
"vessel_name": "HMAS Sydney",
"property_name": "1 Example Street, Sydney",
"address_line1": "1 Example Street",
"address_line2": "Unit 4",
"address_suburb": "Sydney",
"address_state": "NSW",
"address_postcode": "2000",
"address_country": "AU",
"phone1": "+61412345678",
"phone2": "string",
"phone3": "string",
"phone4": "string",
"email1": "jane.doe@example.com",
"email2": "string",
"email3": "string",
"email4": "string",
"flags": [
"pep",
"adverse_media"
],
"risk_level": "low",
"archived_at": "2025-04-01T10:00:00Z",
"deleted_at": "2025-04-01T10:00:00Z",
"program_uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
Relationships
4 endpoints
Relationships
4 endpoints
Create a relationship on an entity
POST
/entities/{entity_uuid}/relationships
Create a relationship FROM the entity in the path TO another entity on your account.
Create a relationship on an entity
/entities/{entity_uuid}/relationships
Create a relationship FROM the entity in the path TO another entity on your account.
Create a relationship FROM the entity in the path TO another entity on your account. The two entities can belong to different programs. Direction is set by the order: the path entity becomes from_entity_uuid and the to_entity_uuid in the body becomes the to side. To record the relationship the other way around, send the request to the other entity instead.
entity_uuid
The entity UUID (the `from` side of the relationship)
Idempotency-Key
Optional client-generated key (typically a UUID) that lets you safely retry a write request without risk of duplicate work or duplicate billing. A retry with the same key and body returns the original response verbatim, with the `Idempotent-Replay: true` response header. Honoured on `POST` requests
to_entity_uuid
UUID of the entity the relationship points to. Must be on your account and different from the path entity.
relationship_type
The type of relationship. Each type permits only certain entity types on the `from` and `to` sides (for example `director_of` links an individual to a business); a request that pairs incompatible entity types is rejected with a 422. Some types (such as `associated_with`) require a `comment`.
percentage_ownership
Optional ownership percentage (0-100). Only meaningful for relationship types that support ownership (such as `shareholder_of`, `partner_in`, `owner_of`); ignored for other types. Drives ultimate beneficial owner tracing.
effective_from
Optional date the relationship is effective from (YYYY-MM-DD).
effective_to
Optional date the relationship is effective until (YYYY-MM-DD). Must be on or after effective_from. Ignored (stored as null) for point-in-time relationship types (`buyer_of` and `seller_of`), which record a single dated event in `effective_from`.
comment
Free-text comment. Max 255 characters. Optional for most relationship types, but required for some (such as `associated_with`).
{
"data": {
"uuid": "7c1c0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"relationship_type": "director_of",
"forward_label": "Director of",
"inverse_label": "Has director",
"symmetric": false,
"from_entity_uuid": "string",
"to_entity_uuid": "string",
"percentage_ownership": 40,
"source": "manual",
"effective_from": "2024-01-01",
"effective_to": null,
"comment": "Appointed at the 2024 AGM.",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
Delete a relationship
DELETE
/relationships/{relationship_uuid}
Soft-delete a relationship by its UUID.
Delete a relationship
/relationships/{relationship_uuid}
Soft-delete a relationship by its UUID.
Soft-delete a relationship by its UUID. The record is hidden from the API (it is no longer returned by the list endpoint) but remains in the database during a recovery window. The deleted relationship is returned in the response as confirmation.
relationship_uuid
The relationship UUID
{
"data": {
"uuid": "7c1c0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"relationship_type": "director_of",
"forward_label": "Director of",
"inverse_label": "Has director",
"symmetric": false,
"from_entity_uuid": "string",
"to_entity_uuid": "string",
"percentage_ownership": 40,
"source": "manual",
"effective_from": "2024-01-01",
"effective_to": null,
"comment": "Appointed at the 2024 AGM.",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
List an entity’s relationships
GET
/entities/{entity_uuid}/relationships
Returns the relationships involving the specified entity, where the entity is either the
from or the to side of the link�
List an entity’s relationships
/entities/{entity_uuid}/relationships
Returns the relationships involving the specified entity, where the entity is either the from or the to side of the link�
Returns the relationships involving the specified entity, where the entity is either the from or the to side of the link. The related entity can be in any program on your account. Results are paginated. Each relationship is returned once with both forward_label and inverse_label, so you can present it from either entity's point of view. See the Relationship schema for the full shape.
entity_uuid
The entity UUID
page
per_page
The number of relationships per page (defaults to 30, max 500)
sort
Field to sort by; prefix with `-` for descending order
{
"data": [
{
"uuid": "7c1c0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"relationship_type": "director_of",
"forward_label": "Director of",
"inverse_label": "Has director",
"symmetric": false,
"from_entity_uuid": "string",
"to_entity_uuid": "string",
"percentage_ownership": 40,
"source": "manual",
"effective_from": "2024-01-01",
"effective_to": null,
"comment": "Appointed at the 2024 AGM.",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
}
],
"meta": {
"current_page": 1,
"per_page": 30,
"total": 1,
"last_page": 1
},
"api_reference": "string"
}
Resolve an entity’s ultimate beneficial owners
GET
/entities/{entity_uuid}/ubos
Resolves the ultimate beneficial owners (UBOs) of a business entity by tracing its
shareholding relationships (the relat�
Resolve an entity’s ultimate beneficial owners
/entities/{entity_uuid}/ubos
Resolves the ultimate beneficial owners (UBOs) of a business entity by tracing its shareholding relationships (the relat�
Resolves the ultimate beneficial owners (UBOs) of a business entity by tracing its shareholding relationships (the relationship types that carry an ownership percentage) out to the natural persons behind it. Indirect ownership through other companies is followed and each person's stake is aggregated across every chain before the threshold is applied.
entity_uuid
The entity UUID
threshold
The minimum ownership percentage for an owner to be returned (0-100, default 25).
as_of
Evaluate ownership as at this date (YYYY-MM-DD, defaults to today).
{
"data": {
"applicable": true,
"threshold": 25,
"as_of": "2025-01-01",
"fully_traced": false,
"circular_detected": false,
"ubos": [
{
"uuid": "7c1c0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"name": "Alice Smith",
"entity_type": "individual",
"percentage": 30,
"paths": []
}
],
"data_gaps": [
{
"uuid": "7c1c0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"name": "Coral Bay Investments Pty Ltd",
"percentage": 100,
"untraced_percentage": 40,
"reason": "no_ownership_data",
"remainder": 40
}
]
},
"api_reference": "string"
}
Monitors
6 endpoints
Monitors
6 endpoints
Create a monitor
POST
/programs/{program_uuid}/monitors
Create a new monitor in the given program.
Create a monitor
/programs/{program_uuid}/monitors
Create a new monitor in the given program.
Create a new monitor in the given program. The monitor_check_type is fixed at creation - to change a monitor's operation type, delete it and create a new one.
program_uuid
The program UUID
Idempotency-Key
Optional client-generated key (typically a UUID) that lets you safely retry a write request without risk of duplicate work or duplicate billing. A retry with the same key and body returns the original response verbatim, with the `Idempotent-Replay: true` response header. Honoured on `POST` requests
monitor_name
monitor_check_type
The screening operation to run. Must be one of the operation types enabled on the calling account.
status
schedule
config
Per-operation configuration; see the Configuration section above.
{
"data": {
"uuid": "5d6c8f93-91d4-4d6a-bb5e-2c64e9a3b1f0",
"monitor_number": "M-12-34-56",
"monitor_name": "Weekly PEP Sweep",
"monitor_check_type": "pep_sanction_check",
"monitor_check_type_name": "PEP & Sanction Check",
"status": "active",
"process_status": null,
"process_status_comment": null,
"schedule": "weekdays",
"schedule_name": "Weekdays (Mon-Fri)",
"config": {
"search_type": "pep_and_sanction",
"similarity_threshold": 90
},
"last_run_at": "2025-01-15T03:00:00Z",
"has_run_before": true,
"program_uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
Delete a monitor
DELETE
/monitors/{monitor_uuid}
Soft-deletes the monitor.
Delete a monitor
/monitors/{monitor_uuid}
Soft-deletes the monitor.
Soft-deletes the monitor. The deleted monitor is returned in the response as confirmation; subsequent show/list calls for it will return 404. See the Soft Deletion section of the API guide for the full policy (30-day recovery window, portal-only restore).
monitor_uuid
The monitor UUID
{
"data": {
"uuid": "5d6c8f93-91d4-4d6a-bb5e-2c64e9a3b1f0",
"monitor_number": "M-12-34-56",
"monitor_name": "Weekly PEP Sweep",
"monitor_check_type": "pep_sanction_check",
"monitor_check_type_name": "PEP & Sanction Check",
"status": "active",
"process_status": null,
"process_status_comment": null,
"schedule": "weekdays",
"schedule_name": "Weekdays (Mon-Fri)",
"config": {
"search_type": "pep_and_sanction",
"similarity_threshold": 90
},
"last_run_at": "2025-01-15T03:00:00Z",
"has_run_before": true,
"program_uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
List monitors in a program
GET
/programs/{program_uuid}/monitors
Returns the monitors that belong to the given program.
List monitors in a program
/programs/{program_uuid}/monitors
Returns the monitors that belong to the given program.
Returns the monitors that belong to the given program. Soft-deleted monitors are excluded. Results are paginated.
program_uuid
The program UUID
page
The page number to return
per_page
The number of monitors per page (defaults to 30, max 500)
filter[status]
filter[process_status]
filter[monitor_check_type]
filter[schedule]
sort
Field to sort by; prefix with `-` for descending order
{
"data": [
{
"uuid": "5d6c8f93-91d4-4d6a-bb5e-2c64e9a3b1f0",
"monitor_number": "M-12-34-56",
"monitor_name": "Weekly PEP Sweep",
"monitor_check_type": "pep_sanction_check",
"monitor_check_type_name": "PEP & Sanction Check",
"status": "active",
"process_status": null,
"process_status_comment": null,
"schedule": "weekdays",
"schedule_name": "Weekdays (Mon-Fri)",
"config": {
"search_type": "pep_and_sanction",
"similarity_threshold": 90
},
"last_run_at": "2025-01-15T03:00:00Z",
"has_run_before": true,
"program_uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
}
],
"meta": {
"current_page": 1,
"per_page": 30,
"total": 1,
"last_page": 1
},
"api_reference": "string"
}
Run a monitor on demand
POST
/monitors/{monitor_uuid}/run
Queues an immediate run of the monitor and returns 202 Accepted once the run has been
scheduled. The actual screening ha�
Run a monitor on demand
/monitors/{monitor_uuid}/run
Queues an immediate run of the monitor and returns 202 Accepted once the run has been scheduled. The actual screening ha�
Queues an immediate run of the monitor and returns 202 Accepted once the run has been scheduled. The actual screening happens in the background - poll GET /monitors/{monitor_uuid} and wait for process_status to transition out of pending / processing before reading the results.
monitor_uuid
The monitor UUID
Idempotency-Key
Optional client-generated key (typically a UUID) that lets you safely retry a write request without risk of duplicate work or duplicate billing. A retry with the same key and body returns the original response verbatim, with the `Idempotent-Replay: true` response header. Honoured on `POST` requests
run_type
Which entities to process. See the description above for the difference between `new` and `all`.
{
"data": {
"uuid": "5d6c8f93-91d4-4d6a-bb5e-2c64e9a3b1f0",
"monitor_number": "M-12-34-56",
"monitor_name": "Weekly PEP Sweep",
"monitor_check_type": "pep_sanction_check",
"monitor_check_type_name": "PEP & Sanction Check",
"status": "active",
"process_status": null,
"process_status_comment": null,
"schedule": "weekdays",
"schedule_name": "Weekdays (Mon-Fri)",
"config": {
"search_type": "pep_and_sanction",
"similarity_threshold": 90
},
"last_run_at": "2025-01-15T03:00:00Z",
"has_run_before": true,
"program_uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
Show a monitor
GET
/monitors/{monitor_uuid}
Returns a single monitor by its UUID.
Show a monitor
/monitors/{monitor_uuid}
Returns a single monitor by its UUID.
Returns a single monitor by its UUID. Unknown UUIDs return 404.
monitor_uuid
The monitor UUID
{
"data": {
"uuid": "5d6c8f93-91d4-4d6a-bb5e-2c64e9a3b1f0",
"monitor_number": "M-12-34-56",
"monitor_name": "Weekly PEP Sweep",
"monitor_check_type": "pep_sanction_check",
"monitor_check_type_name": "PEP & Sanction Check",
"status": "active",
"process_status": null,
"process_status_comment": null,
"schedule": "weekdays",
"schedule_name": "Weekdays (Mon-Fri)",
"config": {
"search_type": "pep_and_sanction",
"similarity_threshold": 90
},
"last_run_at": "2025-01-15T03:00:00Z",
"has_run_before": true,
"program_uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
Update a monitor
PATCH
/monitors/{monitor_uuid}
Update an existing monitor using PATCH semantics: only the fields you supply are
changed; everything else is left as-is.
Update a monitor
/monitors/{monitor_uuid}
Update an existing monitor using PATCH semantics: only the fields you supply are changed; everything else is left as-is.
Update an existing monitor using PATCH semantics: only the fields you supply are changed; everything else is left as-is.
monitor_uuid
The monitor UUID
monitor_name
status
schedule
config
Per-operation configuration; merged with the existing configuration.
{
"data": {
"uuid": "5d6c8f93-91d4-4d6a-bb5e-2c64e9a3b1f0",
"monitor_number": "M-12-34-56",
"monitor_name": "Weekly PEP Sweep",
"monitor_check_type": "pep_sanction_check",
"monitor_check_type_name": "PEP & Sanction Check",
"status": "active",
"process_status": null,
"process_status_comment": null,
"schedule": "weekdays",
"schedule_name": "Weekdays (Mon-Fri)",
"config": {
"search_type": "pep_and_sanction",
"similarity_threshold": 90
},
"last_run_at": "2025-01-15T03:00:00Z",
"has_run_before": true,
"program_uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
Checks
4 endpoints
Checks
4 endpoints
Download a check as PDF
GET
/checks/{check_uuid}/pdf
Returns a printable PDF report for the check, suitable for inclusion in customer-facing
files. The PDF mirrors the on-sc�
Download a check as PDF
/checks/{check_uuid}/pdf
Returns a printable PDF report for the check, suitable for inclusion in customer-facing files. The PDF mirrors the on-sc�
Returns a printable PDF report for the check, suitable for inclusion in customer-facing files. The PDF mirrors the on-screen check report in the portal: subject snapshot, configuration in force, per-match details and a results summary. The response is application/pdf with a Content-Disposition header naming the file after the check's check_number (e.g. check-C-A1B2CD.pdf).
check_uuid
The check UUID
Launch screening checks against an entity
POST
/entities/{entity_uuid}/checks
Queues one or more screening checks against a saved entity and returns
202 Accepted with the parent (or single child) ch�
Launch screening checks against an entity
/entities/{entity_uuid}/checks
Queues one or more screening checks against a saved entity and returns 202 Accepted with the parent (or single child) ch�
Queues one or more screening checks against a saved entity and returns 202 Accepted with the parent (or single child) check UUID. The screening runs in the background - poll GET /v1/checks/{uuid} and wait for status to be complete or failed before reading the results. Each requested check type is charged at launch time.
entity_uuid
The entity UUID
Idempotency-Key
Optional client-generated key (typically a UUID) that lets you safely retry a write request without risk of duplicate work or duplicate billing. A retry with the same key and body returns the original response verbatim, with the `Idempotent-Replay: true` response header. Honoured on `POST` requests
check_types
One or more operation names to launch. See the operation enum in the Check schema for the supported set.
config
Per-operation configuration map keyed by operation name. Each listed operation has defaults that apply when its key is omitted, so you only need to send a block when you want to override a default. The five operations not listed below (`adverse_media`, `phone_check`, `email_check`, `adc_check`, `adc
config.pep_sanction_check
Per-operation configuration for a `pep_sanction_check` launch. Every property is optional - any key you omit is filled with its default value before the check runs, and the resolved values are echoed back on the launch response so you can confirm what the check is using.
config.pep_sanction_check.search_type
Match strictness. `narrow_search` requires close name matches and returns the fewest false positives; `broad_search` returns more candidates for review; `medium_search` is the balanced default. Defaults to `medium_search`.
config.pep_sanction_check.similarity_threshold
Minimum name similarity percentage (10..100). Match candidates below this score are dropped. Sent as a string. Defaults to `"80"`.
config.pep_sanction_check.pep_countries
Two-letter ISO country codes (lowercase) to scope the PEP search. An empty array searches all PEP jurisdictions (the default).
config.pep_sanction_check.sanction_countries
Two-letter ISO country codes (lowercase) to scope the sanction search. Defaults to `["au", "ca", "nz", "gb", "us"]`.
config.pep_sanction_check.max_results
Maximum number of match candidates to return. Sent as an integer. Defaults to `25`.
config.pep_sanction_check.pep_sanction_extended_result
When `true`, includes the extended biographical and source-list detail on each match. Defaults to `true`.
config.banned_disqualified_persons
Per-operation configuration for a `banned_disqualified_persons` launch. Every property is optional - any key you omit is filled with its default value before the check runs.
config.banned_disqualified_persons.search_type
Match strictness. `narrow_search` requires close name matches and returns the fewest false positives; `broad_search` returns more candidates for review; `medium_search` is the balanced default. Defaults to `medium_search`.
config.banned_disqualified_persons.similarity_threshold
Minimum name similarity percentage (10..100), sent as a string. Defaults to `"80"`.
config.banned_disqualified_persons.banned_types
Restrict the search to one or more specific banned/disqualified registers. An empty array (the default) searches every register.
config.court_check
Per-operation configuration for a `court_check` launch. Every property is optional - any key you omit is filled with its default value before the check runs.
config.court_check.listing
Which court listings to search. `criminal` is the default; `civil` searches civil matters only; `all` searches both.
config.court_check.search_party
Whether the subject should be matched as the `defendant`, `plaintiff`, or `any` party to the case. Defaults to `defendant`.
config.business_check
Per-operation configuration for a `business_check` launch. Every property is optional - any key you omit is filled with its default value before the check runs. Each property selects whether the corresponding business-record signal raises an alert (`yes`), is recorded for audit but does not raise an
config.business_check.name_match
How strictly the trading name on the entity must match the registered ASIC name. Defaults to `similar`.
config.business_check.abn_active
Alert when the ABN is not active. Defaults to `yes`.
config.business_check.acn_active
Alert when the ACN is not active. Defaults to `yes`.
config.business_check.gst_registered
Alert when GST registration changes. Defaults to `yes`.
config.business_check.recent_documents
Alert when ASIC documents have been lodged within the last N months. `no` disables the check; `1`..`12` set the months-back window. Defaults to `"3"`.
config.business_check.recent_business_names
Alert when registered business names have changed within the last N months. `no` disables the check; `1`..`12` set the months-back window. Defaults to `"3"`.
config.uk_business_check
Per-operation configuration for a `uk_business_check` launch. Every property is optional - any key you omit is filled with its default value before the check runs.
config.uk_business_check.name_match
How strictly the trading name must match the Companies House record. Defaults to `similar`.
config.uk_business_check.company_status
Alert when the company status is not `active`. Defaults to `yes`.
config.uk_business_check.recent_filings
Alert when filings have been lodged within the last N months. Defaults to `"3"`.
config.uk_business_check.officer_changes
Alert when officers have changed within the last N months. Defaults to `"3"`.
config.uk_business_check.registered_address_change
Whether to record registered address changes. Defaults to `on_change`.
config.uk_business_check.sic_codes_change
Whether to record SIC code changes. Defaults to `on_change`.
config.realestate_check
Per-operation configuration for a `realestate_check` launch. Every property is optional.
config.realestate_check.date_from
ISO 8601 date (`YYYY-MM-DD`). When set, only listings on or after this date are considered. Omit to search all available history.
{
"data": {
"uuid": "string",
"check_number": "string",
"check_type": "string",
"status": "pending",
"config": {},
"detail_url": "/v1/checks/3e36e9ec-0c44-4d65-a2f7-37b1b0a4d57e",
"children": [
{
"uuid": "string",
"check_type": "court_check",
"status": "pending",
"config": {},
"detail_url": "/v1/checks/4d7e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f"
}
]
},
"api_reference": "string"
}
List checks
GET
/checks
Returns checks for the calling account.
List checks
/checks
Returns checks for the calling account.
Returns checks for the calling account. Results are paginated. Each check represents a single screening run against an entity - for example a PEP and Sanction screen, an email verification, a court records search.
page
per_page
The number of checks per page (defaults to 30, max 500)
filter[check_type]
filter[outcome]
filter[program_uuid]
filter[entity_uuid]
filter[parent_uuid]
filter[checked_after]
filter[checked_before]
sort
Field to sort by; prefix with `-` for descending order
archived
Filter by archive status. * `true` - only archived checks * `false` - only non-archived checks Note: The API will accept the string 'true' or the number 1 for true and the string 'false' or the number 0 for false as well as the boolean values.
{
"data": [
{
"uuid": "4d7e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"check_number": "C-A1B2CD",
"check_type": "pep_sanction_check",
"check_type_name": "PEP and Sanction Screening",
"status": "complete",
"failed_reason": null,
"outcome": "warning",
"check_summary": "Found 2 PEP matches",
"data_summary": "John A Smith, 1980-06-23",
"checked_at": "2025-01-01T00:00:00Z",
"archived_at": null,
"program": {
"uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"program_name": "PEP & Sanction Daily"
},
"entity": {
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"entity_number": "E-A1B2CD",
"entity_name": "John A Smith"
},
"parent_uuid": null,
"events_count": 1
}
],
"meta": {
"current_page": 1,
"per_page": 30,
"total": 1,
"last_page": 1
},
"api_reference": "string"
}
Show a check
GET
/checks/{check_uuid}
Returns a single check by its UUID, including:
* The base envelope (program, entity, outcome, timestamps, etc.) - same s�
Show a check
/checks/{check_uuid}
Returns a single check by its UUID, including: * The base envelope (program, entity, outcome, timestamps, etc.) - same s�
Returns a single check by its UUID, including: * The base envelope (program, entity, outcome, timestamps, etc.) - same shape as the list endpoint * results_overview[] - one row per result, with a uniform {title, status, alert_ids} shape across all operation types * children[] - per-child summaries when the check is a group; empty otherwise * details - the typed per-operation details block.
check_uuid
The check UUID
{
"data": {
"uuid": "4d7e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"check_number": "C-A1B2CD",
"check_type": "pep_sanction_check",
"check_type_name": "PEP and Sanction Screening",
"status": "complete",
"failed_reason": null,
"outcome": "warning",
"check_summary": "Found 2 PEP matches",
"data_summary": "John A Smith, 1980-06-23",
"checked_at": "2025-01-01T00:00:00Z",
"archived_at": null,
"program": {
"uuid": "string",
"program_name": "string"
},
"entity": {
"uuid": "string",
"entity_number": "string",
"entity_name": "string"
},
"parent_uuid": "string",
"events_count": 1,
"results_overview": [
{
"title": "Match 1: John Smith - PEP",
"status": "warning",
"alert_ids": [
"NK-12345"
]
}
],
"children": [
{
"uuid": "4d7e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"check_number": "C-A1B2CD",
"check_type": "pep_sanction_check",
"check_type_name": "PEP and Sanction Screening",
"status": "complete",
"failed_reason": null,
"outcome": "warning",
"check_summary": "Found 2 PEP matches",
"checked_at": "2025-01-01T00:00:00Z"
}
],
"details": {}
},
"api_reference": "string"
}
Events
3 endpoints
Events
3 endpoints
List events
GET
/events
Returns events for the calling account.
List events
/events
Returns events for the calling account.
Returns events for the calling account. Results are paginated. Each event represents a "thing your team should look at" produced by a screening check - typically a positive PEP/sanction match, a phone or email match, an adverse media hit, etc. Events have lifecycle status (new -> investigating -> closed_*) that you can transition via the PATCH event endpoint.
page
per_page
The number of events per page (defaults to 30, max 500)
filter[status]
filter[check_type]
filter[entity_uuid]
filter[program_uuid]
filter[check_uuid]
filter[created_at_from]
filter[created_at_to]
sort
Field to sort by; prefix with `-` for descending order
archived
Filter by archive status. * `true` - only archived events * `false` - only non-archived events Note: The API will accept the string 'true' or the number 1 for true and the string 'false' or the number 0 for false as well as the boolean values.
{
"data": [
{
"uuid": "4d7e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"event_number": "V-A1-B2C-3D4",
"status": "new",
"check_type": "pep_sanction_check",
"check_summary": "Searched for "Jane Doe" in PEP and Sanction lists for AU, NZ, US, GB, CA.",
"check_response_index": 0,
"check_result_ids": [
12345,
12346
],
"archived_at": null,
"deleted_at": null,
"entity_uuid": "123e4567-e89b-12d3-a456-426614174000",
"program_uuid": "9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"check_uuid": "0a1b2c3d-4e5f-6789-abcd-ef0123456789",
"notes_count": 0,
"created_at": "2025-01-01T00:00:00Z"
}
],
"meta": {
"current_page": 1,
"per_page": 30,
"total": 1,
"last_page": 1
},
"api_reference": "string"
}
Show an event
GET
/events/{event_uuid}
Returns a single event by its UUID, including the full notes collection.
Show an event
/events/{event_uuid}
Returns a single event by its UUID, including the full notes collection.
Returns a single event by its UUID, including the full notes collection.
event_uuid
The event UUID
{
"data": {
"uuid": "4d7e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"event_number": "V-A1-B2C-3D4",
"status": "new",
"check_type": "pep_sanction_check",
"check_summary": "string",
"check_response_index": 1,
"check_result_ids": [
1
],
"archived_at": "2026-01-31T09:00:00Z",
"deleted_at": "2026-01-31T09:00:00Z",
"entity_uuid": "string",
"program_uuid": "string",
"check_uuid": "string",
"notes_count": 1,
"notes": [
{
"uuid": "7c1c0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"note_text": "Confirmed match against verified passport details.",
"created_by": {
"type": null,
"uuid": null,
"username": null,
"label": null
},
"is_immutable": false,
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
}
],
"created_at": "2026-01-31T09:00:00Z"
},
"api_reference": "string"
}
Update an event
PATCH
/events/{event_uuid}
Update an event's status and/or attach a note.
Update an event
/events/{event_uuid}
Update an event's status and/or attach a note.
Update an event's status and/or attach a note. At least one of status or note must be supplied; sending neither returns 400 No updates to apply.
event_uuid
The event UUID
status
note
Free-text note to attach to the event. Max 5000 characters.
{
"data": {
"uuid": "4d7e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"event_number": "V-A1-B2C-3D4",
"status": "new",
"check_type": "pep_sanction_check",
"check_summary": "string",
"check_response_index": 1,
"check_result_ids": [
1
],
"archived_at": "2026-01-31T09:00:00Z",
"deleted_at": "2026-01-31T09:00:00Z",
"entity_uuid": "string",
"program_uuid": "string",
"check_uuid": "string",
"notes_count": 1,
"notes": [
{
"uuid": "7c1c0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"note_text": "Confirmed match against verified passport details.",
"created_by": {
"type": null,
"uuid": null,
"username": null,
"label": null
},
"is_immutable": false,
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
}
],
"created_at": "2026-01-31T09:00:00Z"
},
"api_reference": "string"
}
Notes
5 endpoints
Notes
5 endpoints
Create a note on an entity
POST
/entities/{entity_uuid}/notes
Create a new note attached to the specified entity.
Create a note on an entity
/entities/{entity_uuid}/notes
Create a new note attached to the specified entity.
Create a new note attached to the specified entity. The note inherits the entity's program and account. Notes created via this endpoint are attributed to the calling API key (the response created_by carries { type: "api_key", uuid, label }). They cannot be edited or deleted from the portal. Any API key on the same account can manage these notes via the PATCH and DELETE endpoints.
entity_uuid
The entity UUID
Idempotency-Key
Optional client-generated key (typically a UUID) that lets you safely retry a write request without risk of duplicate work or duplicate billing. A retry with the same key and body returns the original response verbatim, with the `Idempotent-Replay: true` response header. Honoured on `POST` requests
note_text
Free-text content of the note. Max 5000 characters.
{
"data": {
"uuid": "7c1c0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"note_number": "N-A1-B2C-3D4",
"note_text": "Confirmed match against verified passport details.",
"created_by": {
"type": "user",
"uuid": "string",
"username": "string",
"label": "string"
},
"is_immutable": false,
"entity_uuid": "string",
"program_uuid": "string",
"event_uuid": "string",
"archived_at": "2026-01-31T09:00:00Z",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
Delete a note
DELETE
/notes/{note_uuid}
Soft-delete a note.
Delete a note
/notes/{note_uuid}
Soft-delete a note.
Soft-delete a note. The note remains in the database for audit / compliance purposes but is removed from list / show responses (a subsequent show or list call returns 404). See the Soft Deletion section of the API guide for the full policy (30-day recovery window, portal-only restore).
note_uuid
The note UUID
{
"data": {
"uuid": "7c1c0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"note_number": "N-A1-B2C-3D4",
"note_text": "Confirmed match against verified passport details.",
"created_by": {
"type": "user",
"uuid": "string",
"username": "string",
"label": "string"
},
"is_immutable": false,
"entity_uuid": "string",
"program_uuid": "string",
"event_uuid": "string",
"archived_at": "2026-01-31T09:00:00Z",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
List notes
GET
/notes
Returns notes for the calling account.
List notes
/notes
Returns notes for the calling account.
Returns notes for the calling account. Results are paginated. Notes are always attached to an entity (and the entity's program). Notes created in the context of an event additionally carry an event_uuid. Use the filters to narrow to a specific entity, program, event, or to a specific author or author type.
page
per_page
The number of notes per page (defaults to 30, max 500)
filter[entity_uuid]
filter[event_uuid]
filter[program_uuid]
filter[created_by]
Filter to notes authored by any portal user (`user`) or any API key (`api_key`) on this account.
filter[created_by_user_uuid]
Filter to notes authored by a specific portal user.
filter[created_by_api_key_uuid]
Filter to notes authored by a specific API key.
filter[created_at_from]
filter[created_at_to]
sort
Field to sort by; prefix with `-` for descending order
archived
Filter by archive status. * `true` - only archived notes * `false` - only non-archived notes Note: The API will accept the string 'true' or the number 1 for true and the string 'false' or the number 0 for false as well as the boolean values.
{
"data": [
{
"uuid": "7c1c0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"note_number": "N-A1-B2C-3D4",
"note_text": "Confirmed match against verified passport details.",
"created_by": {
"type": "user",
"uuid": "string",
"username": "string",
"label": "string"
},
"is_immutable": false,
"entity_uuid": "string",
"program_uuid": "string",
"event_uuid": "string",
"archived_at": "2026-01-31T09:00:00Z",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
}
],
"meta": {
"current_page": 1,
"per_page": 30,
"total": 1,
"last_page": 1
},
"api_reference": "string"
}
Show a note
GET
/notes/{note_uuid}
Returns a single note by its UUID.
Show a note
/notes/{note_uuid}
Returns a single note by its UUID.
Returns a single note by its UUID.
note_uuid
The note UUID
{
"data": {
"uuid": "7c1c0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"note_number": "N-A1-B2C-3D4",
"note_text": "Confirmed match against verified passport details.",
"created_by": {
"type": "user",
"uuid": "string",
"username": "string",
"label": "string"
},
"is_immutable": false,
"entity_uuid": "string",
"program_uuid": "string",
"event_uuid": "string",
"archived_at": "2026-01-31T09:00:00Z",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
Update a note
PATCH
/notes/{note_uuid}
Update a note's text.
Update a note
/notes/{note_uuid}
Update a note's text.
Update a note's text. Only note_text can be changed - the note's parent entity, parent event, author and archive state are all immutable from the API. To "move" a note to a different entity or event, delete it and re-create.
note_uuid
The note UUID
note_text
Replacement text for the note. Max 5000 characters.
{
"data": {
"uuid": "7c1c0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"note_number": "N-A1-B2C-3D4",
"note_text": "Confirmed match against verified passport details.",
"created_by": {
"type": "user",
"uuid": "string",
"username": "string",
"label": "string"
},
"is_immutable": false,
"entity_uuid": "string",
"program_uuid": "string",
"event_uuid": "string",
"archived_at": "2026-01-31T09:00:00Z",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
ID Checks
4 endpoints
ID Checks
4 endpoints
Download an ID check certificate as PDF
GET
/id-checks/{id_check_uuid}/pdf
Returns a verification certificate PDF for a completed entity-bound ID check.
Download an ID check certificate as PDF
/id-checks/{id_check_uuid}/pdf
Returns a verification certificate PDF for a completed entity-bound ID check.
Returns a verification certificate PDF for a completed entity-bound ID check. This endpoint does not bill - PDF generation reuses the existing on-record check data.
id_check_uuid
Launch an ID check against an entity
POST
/entities/{entity_uuid}/id-checks
Runs a synchronous identification check against a saved entity and returns **200 OK**
with the full completed check payl�
Launch an ID check against an entity
/entities/{entity_uuid}/id-checks
Runs a synchronous identification check against a saved entity and returns **200 OK** with the full completed check payl�
Runs a synchronous identification check against a saved entity and returns **200 OK** with the full completed check payload inline. Unlike screening checks, ID checks do not queue for background processing and do not expose a status field. Each launch is charged at run time after a successful upstream verification call.
entity_uuid
Idempotency-Key
Optional client-generated key (typically a UUID) that lets you safely retry a write request without risk of duplicate work or duplicate billing. A retry with the same key and body returns the original response verbatim, with the `Idempotent-Replay: true` response header. Honoured on `POST` requests
id_type
Identification type to run. See SELECTABLE_ID_TYPES in the portal field reference.
consent_obtained
Must be `true`. Asserts that your system has obtained express, demonstrable consent from the individual being verified before this check is launched, and that the exact wording shown has been retained by your system for audit and compliance purposes. The specific wording you must show and the record
data
Per-type input fields inside the launch request. Document numbers are never returned in responses. Date of birth must be supplied as `birth_date` in `YYYY-MM-DD` format when required for the selected `id_type`. Other date fields (`card_expiry`, `acquisition_date`, `event_date`, `registration_date`)
data.birth_date
Date of birth in `YYYY-MM-DD` format.
oac
The DVS OAC code to use for this check. Must be one of the OAC codes configured on your account. Required when your account is configured with more than one OAC. When your account has a single OAC this may be omitted and that OAC is used.
{
"data": {
"uuid": "string",
"check_number": "I-A1B2CD",
"id_type": "drivers_licence",
"id_type_name": "Drivers Licence",
"check_type": "drivers_licence_dvs",
"check_type_name": "Drivers Licence (DVS)",
"outcome": "pass",
"outcome_summary": "string",
"data_summary": "string",
"checked_at": "2026-01-31T09:00:00Z",
"archived_at": "2026-01-31T09:00:00Z",
"program": {
"uuid": "string",
"program_name": "string"
},
"entity": {
"uuid": "string",
"entity_number": "string",
"entity_name": "string"
},
"idpass": {},
"consent": {},
"verification_details": [
{
"field": "string",
"value": "string"
}
],
"details": {}
},
"api_reference": "string"
}
List ID checks
GET
/id-checks
Returns entity-bound identification checks for the calling account.
List ID checks
/id-checks
Returns entity-bound identification checks for the calling account.
Returns entity-bound identification checks for the calling account. Results are paginated. Each record represents a synchronous document verification run against a saved entity (DVS or non-DVS). The list endpoint returns a compact envelope; use show ID check to read consent, verification details and the typed details block. ID checks run synchronously - there is no status field.
page
per_page
archived
filter[program_uuid]
filter[entity_uuid]
filter[id_type]
filter[check_type]
filter[outcome]
filter[checked_after]
filter[checked_before]
sort
{
"data": [
{
"uuid": "string",
"check_number": "I-A1B2CD",
"id_type": "drivers_licence",
"id_type_name": "Drivers Licence",
"check_type": "drivers_licence_dvs",
"check_type_name": "Drivers Licence (DVS)",
"outcome": "pass",
"outcome_summary": "string",
"data_summary": "string",
"checked_at": "2026-01-31T09:00:00Z",
"archived_at": "2026-01-31T09:00:00Z",
"program": {
"uuid": "string",
"program_name": "string"
},
"entity": {
"uuid": "string",
"entity_number": "string",
"entity_name": "string"
},
"idpass": {}
}
],
"meta": {
"current_page": 1,
"per_page": 1,
"total": 1,
"last_page": 1
},
"api_reference": "string"
}
Show an ID check
GET
/id-checks/{id_check_uuid}
Returns a single entity-bound ID check by UUID, including consent, verification details
and the typed details block. Doc�
Show an ID check
/id-checks/{id_check_uuid}
Returns a single entity-bound ID check by UUID, including consent, verification details and the typed details block. Doc�
Returns a single entity-bound ID check by UUID, including consent, verification details and the typed details block. Document numbers and other sensitive input fields are never returned - see the ID check field reference for per-type input shapes.
id_check_uuid
{
"data": {
"uuid": "string",
"check_number": "I-A1B2CD",
"id_type": "drivers_licence",
"id_type_name": "Drivers Licence",
"check_type": "drivers_licence_dvs",
"check_type_name": "Drivers Licence (DVS)",
"outcome": "pass",
"outcome_summary": "string",
"data_summary": "string",
"checked_at": "2026-01-31T09:00:00Z",
"archived_at": "2026-01-31T09:00:00Z",
"program": {
"uuid": "string",
"program_name": "string"
},
"entity": {
"uuid": "string",
"entity_number": "string",
"entity_name": "string"
},
"idpass": {},
"consent": {},
"verification_details": [
{
"field": "string",
"value": "string"
}
],
"details": {}
},
"api_reference": "string"
}
IDPass
6 endpoints
IDPass
6 endpoints
Download an IDPass certificate as PDF
GET
/idpasses/{idpass_uuid}/pdf
Returns the verification certificate PDF for a completed IDPass.
Download an IDPass certificate as PDF
/idpasses/{idpass_uuid}/pdf
Returns the verification certificate PDF for a completed IDPass.
Returns the verification certificate PDF for a completed IDPass. This endpoint does not bill - the certificate is generated from the on-record IDPass data.
idpass_uuid
Download an IDPass image
GET
/idpasses/{idpass_uuid}/images/{image_type}
Returns a single IDPass image as its raw bytes, mirroring the
download IDPass PDF endpoint. The Content-Type is the imag�
Download an IDPass image
/idpasses/{idpass_uuid}/images/{image_type}
Returns a single IDPass image as its raw bytes, mirroring the download IDPass PDF endpoint. The Content-Type is the imag�
Returns a single IDPass image as its raw bytes, mirroring the download IDPass PDF endpoint. The Content-Type is the image's stored MIME type (typically image/jpeg) and a Content-Disposition header suggests an inline filename. The image_type is one of the file types listed in the images array of the show IDPass response (e.g.
idpass_uuid
image_type
The image file type, as listed in the `images` array of the show response.
Launch an adhoc IDPass
POST
/adhoc-idpasses
Creates a remote identity verification (IDPass) that is not tied to a saved entity and
returns **202 Accepted** with the�
Launch an adhoc IDPass
/adhoc-idpasses
Creates a remote identity verification (IDPass) that is not tied to a saved entity and returns **202 Accepted** with the�
Creates a remote identity verification (IDPass) that is not tied to a saved entity and returns **202 Accepted** with the IDPass shell, including its hosted idpass_link. Use this for one-off verifications where you do not need to persist the individual as an entity.
Idempotency-Key
Optional client-generated key (typically a UUID) that lets you safely retry a write request without risk of duplicate work or duplicate billing. A retry with the same key and body returns the original response verbatim, with the `Idempotent-Replay: true` response header. Honoured on `POST` requests
data
The identity being verified.
data.first_name
Required unless `last_name` is supplied.
data.middle_name
data.last_name
Required unless `first_name` is supplied.
data.dob
Date of birth in `YYYY-MM-DD` format. Optional - when omitted, the identity documents are still fully DVS-verified, but the supplied details are matched against the documents on name only. For an entity-bound launch a supplied date of birth must match the entity's recorded date of birth.
oac
The DVS OAC code the IDPass should be issued under. Must be one of the OAC codes configured on your account. The selected OAC determines the requesting organisation name and privacy policy shown to the person being verified. Required when your account is configured with more than one OAC. When your
config
config.link_validity_days
config.check_liveness
Whether to perform a liveness check during verification.
config.document_1_allowed_types
config.document_2_allowed_types
Optional second verification step. Requires document 1 to be supplied, and a step cannot reuse a document type already consumed by an earlier step.
config.document_3_allowed_types
Optional third verification step. Requires document 2 to be supplied, and a step cannot reuse a document type already consumed by an earlier step.
config.require_id_photo
Whether the individual must also supply a standalone ID photo.
config.id_photo_purpose
Required when `require_id_photo` is `true`.
config.return_url
config.return_verification_images
Whether the verification images should be retained and made available for download afterwards via the IDPass image endpoint.
config.delivery_method
config.delivery_phone
Australian mobile number (04XXXXXXXX). Required when `delivery_method` is `sms`, in which case the hosted link is sent to this number.
{
"data": {
"uuid": "string",
"source": "entity",
"status": "new",
"status_name": "In Progress",
"completed": true,
"verification_status": "passed",
"verification_status_name": "string",
"requester_name": "string",
"check_liveness": true,
"require_id_photo": true,
"document_allowed_types": {
"document_1": [
"string"
],
"document_2": [
"string"
],
"document_3": [
"string"
]
},
"link_validity_days": 1,
"return_verification_images": true,
"delivery_method": "manual",
"idpass_link": "string",
"sent_at": "2026-01-31T09:00:00Z",
"created_at": "2026-01-31T09:00:00Z",
"detail_url": "/v1/idpasses/5b1c7c8e-0b6e-4f0a-9b3a-1f2e3d4c5b6a",
"id_photo_purpose": "string",
"return_url": "string",
"privacy_policy_url": "string",
"dvs_oac": "string",
"delivery_phone": "string",
"verification_description": "string",
"document_summary": {},
"validation_summary": {},
"log": [
{}
],
"consent_given_at": "2026-01-31T09:00:00Z",
"images": [
{
"type": "id_photo",
"title": "ID Photo",
"mime_type": "image/jpeg",
"url": "/v1/idpasses/5b1c7c8e/images/id_photo"
}
],
"id_check": {
"type": "entity",
"uuid": "string",
"check_number": "string",
"url": "string"
},
"pdf_url": "/v1/idpasses/5b1c7c8e/pdf"
},
"api_reference": "string"
}
Launch an IDPass against an entity
POST
/entities/{entity_uuid}/idpasses
Creates a remote identity verification (IDPass) for a saved individual entity and returns
**202 Accepted** with the IDPa�
Launch an IDPass against an entity
/entities/{entity_uuid}/idpasses
Creates a remote identity verification (IDPass) for a saved individual entity and returns **202 Accepted** with the IDPa�
Creates a remote identity verification (IDPass) for a saved individual entity and returns **202 Accepted** with the IDPass shell, including its hosted idpass_link. The entity must be an individual.
entity_uuid
Idempotency-Key
Optional client-generated key (typically a UUID) that lets you safely retry a write request without risk of duplicate work or duplicate billing. A retry with the same key and body returns the original response verbatim, with the `Idempotent-Replay: true` response header. Honoured on `POST` requests
data
The identity being verified.
data.first_name
Required unless `last_name` is supplied.
data.middle_name
data.last_name
Required unless `first_name` is supplied.
data.dob
Date of birth in `YYYY-MM-DD` format. Optional - when omitted, the identity documents are still fully DVS-verified, but the supplied details are matched against the documents on name only. For an entity-bound launch a supplied date of birth must match the entity's recorded date of birth.
oac
The DVS OAC code the IDPass should be issued under. Must be one of the OAC codes configured on your account. The selected OAC determines the requesting organisation name and privacy policy shown to the person being verified. Required when your account is configured with more than one OAC. When your
config
config.link_validity_days
config.check_liveness
Whether to perform a liveness check during verification.
config.document_1_allowed_types
config.document_2_allowed_types
Optional second verification step. Requires document 1 to be supplied, and a step cannot reuse a document type already consumed by an earlier step.
config.document_3_allowed_types
Optional third verification step. Requires document 2 to be supplied, and a step cannot reuse a document type already consumed by an earlier step.
config.require_id_photo
Whether the individual must also supply a standalone ID photo.
config.id_photo_purpose
Required when `require_id_photo` is `true`.
config.return_url
config.return_verification_images
Whether the verification images should be retained and made available for download afterwards via the IDPass image endpoint.
config.delivery_method
config.delivery_phone
Australian mobile number (04XXXXXXXX). Required when `delivery_method` is `sms`, in which case the hosted link is sent to this number.
{
"data": {
"uuid": "string",
"source": "entity",
"status": "new",
"status_name": "In Progress",
"completed": true,
"verification_status": "passed",
"verification_status_name": "string",
"requester_name": "string",
"check_liveness": true,
"require_id_photo": true,
"document_allowed_types": {
"document_1": [
"string"
],
"document_2": [
"string"
],
"document_3": [
"string"
]
},
"link_validity_days": 1,
"return_verification_images": true,
"delivery_method": "manual",
"idpass_link": "string",
"sent_at": "2026-01-31T09:00:00Z",
"created_at": "2026-01-31T09:00:00Z",
"detail_url": "/v1/idpasses/5b1c7c8e-0b6e-4f0a-9b3a-1f2e3d4c5b6a",
"id_photo_purpose": "string",
"return_url": "string",
"privacy_policy_url": "string",
"dvs_oac": "string",
"delivery_phone": "string",
"verification_description": "string",
"document_summary": {},
"validation_summary": {},
"log": [
{}
],
"consent_given_at": "2026-01-31T09:00:00Z",
"images": [
{
"type": "id_photo",
"title": "ID Photo",
"mime_type": "image/jpeg",
"url": "/v1/idpasses/5b1c7c8e/images/id_photo"
}
],
"id_check": {
"type": "entity",
"uuid": "string",
"check_number": "string",
"url": "string"
},
"pdf_url": "/v1/idpasses/5b1c7c8e/pdf"
},
"api_reference": "string"
}
List IDPasses
GET
/idpasses
Returns a paginated list of IDPasses on the calling account.
List IDPasses
/idpasses
Returns a paginated list of IDPasses on the calling account.
Returns a paginated list of IDPasses on the calling account. Each IDPass is a remote identity verification that the individual completes via a hosted link; the result is updated asynchronously, so poll show IDPass until status is terminal.
page
per_page
filter[status]
filter[verification_status]
filter[source]
filter[entity_uuid]
filter[program_uuid]
filter[created_after]
filter[created_before]
sort
Sort field. Prefix with `-` for descending. Defaults to `-created_at`.
{
"data": [
{
"uuid": "string",
"source": "entity",
"status": "new",
"status_name": "In Progress",
"completed": true,
"verification_status": "passed",
"verification_status_name": "string",
"requester_name": "string",
"check_liveness": true,
"require_id_photo": true,
"document_allowed_types": {
"document_1": [],
"document_2": [],
"document_3": []
},
"link_validity_days": 1,
"return_verification_images": true,
"delivery_method": "manual",
"idpass_link": "string",
"sent_at": "2026-01-31T09:00:00Z",
"created_at": "2026-01-31T09:00:00Z",
"detail_url": "/v1/idpasses/5b1c7c8e-0b6e-4f0a-9b3a-1f2e3d4c5b6a"
}
],
"meta": {
"current_page": 1,
"per_page": 1,
"total": 1,
"last_page": 1
},
"api_reference": "string"
}
Show an IDPass
GET
/idpasses/{idpass_uuid}
Returns a single IDPass by UUID with its full configuration, current status, verification
outcome, document/validation s�
Show an IDPass
/idpasses/{idpass_uuid}
Returns a single IDPass by UUID with its full configuration, current status, verification outcome, document/validation s�
Returns a single IDPass by UUID with its full configuration, current status, verification outcome, document/validation summaries, activity log, available image metadata and a link back to the originating ID check.
idpass_uuid
{
"data": {
"uuid": "string",
"source": "entity",
"status": "new",
"status_name": "In Progress",
"completed": true,
"verification_status": "passed",
"verification_status_name": "string",
"requester_name": "string",
"check_liveness": true,
"require_id_photo": true,
"document_allowed_types": {
"document_1": [
"string"
],
"document_2": [
"string"
],
"document_3": [
"string"
]
},
"link_validity_days": 1,
"return_verification_images": true,
"delivery_method": "manual",
"idpass_link": "string",
"sent_at": "2026-01-31T09:00:00Z",
"created_at": "2026-01-31T09:00:00Z",
"detail_url": "/v1/idpasses/5b1c7c8e-0b6e-4f0a-9b3a-1f2e3d4c5b6a",
"id_photo_purpose": "string",
"return_url": "string",
"privacy_policy_url": "string",
"dvs_oac": "string",
"delivery_phone": "string",
"verification_description": "string",
"document_summary": {},
"validation_summary": {},
"log": [
{}
],
"consent_given_at": "2026-01-31T09:00:00Z",
"images": [
{
"type": "id_photo",
"title": "ID Photo",
"mime_type": "image/jpeg",
"url": "/v1/idpasses/5b1c7c8e/images/id_photo"
}
],
"id_check": {
"type": "entity",
"uuid": "string",
"check_number": "string",
"url": "string"
},
"pdf_url": "/v1/idpasses/5b1c7c8e/pdf"
},
"api_reference": "string"
}
Adhoc ID Checks
5 endpoints
Adhoc ID Checks
5 endpoints
Delete an adhoc ID check
DELETE
/adhoc-id-checks/{adhoc_id_check_uuid}
Soft-deletes the adhoc ID check.
Delete an adhoc ID check
/adhoc-id-checks/{adhoc_id_check_uuid}
Soft-deletes the adhoc ID check.
Soft-deletes the adhoc ID check. See the Soft Deletion section of the API guide for the full policy (30-day recovery window, portal-only restore). The record is no longer returned by list/show endpoints but remains in the database for compliance and audit purposes. The deleted adhoc ID check record is returned in the response as confirmation.
adhoc_id_check_uuid
The adhoc ID check UUID
{
"data": {
"uuid": "string",
"check_number": "string",
"id_type": "string",
"id_type_name": "string",
"check_type": "string",
"check_type_name": "string",
"outcome": "pass",
"outcome_summary": "string",
"data_summary": "string",
"checked_at": "2026-01-31T09:00:00Z",
"created_by": {
"type": "user",
"uuid": "string",
"username": "string",
"label": "string"
},
"idpass": {
"uuid": "string",
"status": "new",
"verification_status": "passed",
"idpass_link": "string",
"idpass_url": "/v1/idpasses/5b1c7c8e-0b6e-4f0a-9b3a-1f2e3d4c5b6a"
}
},
"api_reference": "string"
}
Download an adhoc ID check certificate as PDF
GET
/adhoc-id-checks/{adhoc_id_check_uuid}/pdf
Returns a verification certificate PDF for a completed adhoc ID check.
Download an adhoc ID check certificate as PDF
/adhoc-id-checks/{adhoc_id_check_uuid}/pdf
Returns a verification certificate PDF for a completed adhoc ID check.
Returns a verification certificate PDF for a completed adhoc ID check.
adhoc_id_check_uuid
Launch an adhoc ID check
POST
/adhoc-id-checks
Runs a synchronous quick ID check and returns **200 OK** with the full completed payload.
Launch an adhoc ID check
/adhoc-id-checks
Runs a synchronous quick ID check and returns **200 OK** with the full completed payload.
Runs a synchronous quick ID check and returns **200 OK** with the full completed payload. See launch entity ID check for consent, idempotency and billing behaviour.
Idempotency-Key
Optional client-generated key (typically a UUID) that lets you safely retry a write request without risk of duplicate work or duplicate billing. A retry with the same key and body returns the original response verbatim, with the `Idempotent-Replay: true` response header. Honoured on `POST` requests
id_type
Identification type to run. See SELECTABLE_ID_TYPES in the portal field reference.
consent_obtained
Must be `true`. Asserts that your system has obtained express, demonstrable consent from the individual being verified before this check is launched, and that the exact wording shown has been retained by your system for audit and compliance purposes. The specific wording you must show and the record
data
Per-type input fields inside the launch request. Document numbers are never returned in responses. Date of birth must be supplied as `birth_date` in `YYYY-MM-DD` format when required for the selected `id_type`. Other date fields (`card_expiry`, `acquisition_date`, `event_date`, `registration_date`)
data.birth_date
Date of birth in `YYYY-MM-DD` format.
oac
The DVS OAC code to use for this check. Must be one of the OAC codes configured on your account. Required when your account is configured with more than one OAC. When your account has a single OAC this may be omitted and that OAC is used.
{
"data": {
"uuid": "string",
"check_number": "string",
"id_type": "string",
"id_type_name": "string",
"check_type": "string",
"check_type_name": "string",
"outcome": "pass",
"outcome_summary": "string",
"data_summary": "string",
"checked_at": "2026-01-31T09:00:00Z",
"created_by": {
"type": "user",
"uuid": "string",
"username": "string",
"label": "string"
},
"idpass": {},
"consent": {},
"verification_details": [
{
"field": "string",
"value": "string"
}
],
"details": {}
},
"api_reference": "string"
}
List adhoc ID checks
GET
/adhoc-id-checks
Returns quick (adhoc) identification checks for the calling account.
List adhoc ID checks
/adhoc-id-checks
Returns quick (adhoc) identification checks for the calling account.
Returns quick (adhoc) identification checks for the calling account. These are one-off checks not tied to a program or entity record. Actor attribution is via the created_by discriminator (user for a portal launch or api_key for an API launch). Filter by created_by, created_by_user_uuid or created_by_api_key_uuid to narrow results.
page
per_page
filter[id_type]
filter[check_type]
filter[outcome]
filter[created_by]
filter[created_by_user_uuid]
filter[created_by_api_key_uuid]
filter[checked_after]
filter[checked_before]
sort
{
"data": [
{
"uuid": "string",
"check_number": "string",
"id_type": "string",
"id_type_name": "string",
"check_type": "string",
"check_type_name": "string",
"outcome": "pass",
"outcome_summary": "string",
"data_summary": "string",
"checked_at": "2026-01-31T09:00:00Z",
"created_by": {
"type": "user",
"uuid": "string",
"username": "string",
"label": "string"
},
"idpass": {}
}
],
"meta": {
"current_page": 1,
"per_page": 1,
"total": 1,
"last_page": 1
},
"api_reference": "string"
}
Show an adhoc ID check
GET
/adhoc-id-checks/{adhoc_id_check_uuid}
Returns a single adhoc ID check by UUID, including consent, verification details and the
typed details block.
Show an adhoc ID check
/adhoc-id-checks/{adhoc_id_check_uuid}
Returns a single adhoc ID check by UUID, including consent, verification details and the typed details block.
Returns a single adhoc ID check by UUID, including consent, verification details and the typed details block.
adhoc_id_check_uuid
{
"data": {
"uuid": "string",
"check_number": "string",
"id_type": "string",
"id_type_name": "string",
"check_type": "string",
"check_type_name": "string",
"outcome": "pass",
"outcome_summary": "string",
"data_summary": "string",
"checked_at": "2026-01-31T09:00:00Z",
"created_by": {
"type": "user",
"uuid": "string",
"username": "string",
"label": "string"
},
"idpass": {},
"consent": {},
"verification_details": [
{
"field": "string",
"value": "string"
}
],
"details": {}
},
"api_reference": "string"
}
Adhoc Checks
5 endpoints
Adhoc Checks
5 endpoints
Delete an adhoc check
DELETE
/adhoc-checks/{adhoc_check_uuid}
Soft-deletes the adhoc check.
Delete an adhoc check
/adhoc-checks/{adhoc_check_uuid}
Soft-deletes the adhoc check.
Soft-deletes the adhoc check. For a group check (check_type = group), its child checks are deleted alongside it. See the Soft Deletion section of the API guide for the full policy (30-day recovery window, portal-only restore). The records are no longer returned by list/show endpoints but remain in the database for compliance and audit purposes.
adhoc_check_uuid
The adhoc check UUID
{
"data": {
"uuid": "6f9e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"check_number": "Q-A1B2CD",
"check_type": "pep_sanction_check",
"check_type_name": "PEP and Sanction Screening",
"status": "complete",
"failed_reason": null,
"outcome": "warning",
"check_summary": "Found 2 PEP matches",
"data_summary": "John A Smith, 1980-06-23",
"checked_at": "2025-01-01T00:00:00Z",
"created_by": {
"type": "user",
"uuid": "string",
"username": "string",
"label": "string"
},
"parent_uuid": null
},
"api_reference": "string"
}
Download an adhoc check as PDF
GET
/adhoc-checks/{adhoc_check_uuid}/pdf
Returns a printable PDF report for the adhoc check, suitable for inclusion in
customer-facing files. The PDF mirrors the�
Download an adhoc check as PDF
/adhoc-checks/{adhoc_check_uuid}/pdf
Returns a printable PDF report for the adhoc check, suitable for inclusion in customer-facing files. The PDF mirrors the�
Returns a printable PDF report for the adhoc check, suitable for inclusion in customer-facing files. The PDF mirrors the on-screen quick-check report in the portal: subject snapshot, configuration in force, per-match details and a results summary. The response is application/pdf with a Content-Disposition header naming the file after the check's check_number (e.g. adhoc-check-Q-A1B2CD.pdf).
adhoc_check_uuid
The adhoc check UUID
Launch adhoc screening checks
POST
/adhoc-checks
Queues one or more "quick check" screening operations against a freeform
subject supplied in the request body and return�
Launch adhoc screening checks
/adhoc-checks
Queues one or more "quick check" screening operations against a freeform subject supplied in the request body and return�
Queues one or more "quick check" screening operations against a freeform subject supplied in the request body and returns 202 Accepted with the parent (or single child) adhoc-check UUID. The screening runs in the background - poll GET /v1/adhoc-checks/{uuid} and wait for status to be complete or failed before reading the results. Each requested check type is charged at launch time.
Idempotency-Key
Optional client-generated key (typically a UUID) that lets you safely retry a write request without risk of duplicate work or duplicate billing. A retry with the same key and body returns the original response verbatim, with the `Idempotent-Replay: true` response header. Honoured on `POST` requests
check_types
One or more operation names to launch. See the operation enum in the AdhocCheck schema for the supported set.
config
Per-operation configuration map keyed by operation name. Each listed operation has defaults that apply when its key is omitted, so you only need to send a block when you want to override a default. The five operations not listed below (`adverse_media`, `phone_check`, `email_check`, `adc_check`, `adc
config.pep_sanction_check
Per-operation configuration for a `pep_sanction_check` launch. Every property is optional - any key you omit is filled with its default value before the check runs, and the resolved values are echoed back on the launch response so you can confirm what the check is using.
config.pep_sanction_check.search_type
Match strictness. `narrow_search` requires close name matches and returns the fewest false positives; `broad_search` returns more candidates for review; `medium_search` is the balanced default. Defaults to `medium_search`.
config.pep_sanction_check.similarity_threshold
Minimum name similarity percentage (10..100). Match candidates below this score are dropped. Sent as a string. Defaults to `"80"`.
config.pep_sanction_check.pep_countries
Two-letter ISO country codes (lowercase) to scope the PEP search. An empty array searches all PEP jurisdictions (the default).
config.pep_sanction_check.sanction_countries
Two-letter ISO country codes (lowercase) to scope the sanction search. Defaults to `["au", "ca", "nz", "gb", "us"]`.
config.pep_sanction_check.max_results
Maximum number of match candidates to return. Sent as an integer. Defaults to `25`.
config.pep_sanction_check.pep_sanction_extended_result
When `true`, includes the extended biographical and source-list detail on each match. Defaults to `true`.
config.banned_disqualified_persons
Per-operation configuration for a `banned_disqualified_persons` launch. Every property is optional - any key you omit is filled with its default value before the check runs.
config.banned_disqualified_persons.search_type
Match strictness. `narrow_search` requires close name matches and returns the fewest false positives; `broad_search` returns more candidates for review; `medium_search` is the balanced default. Defaults to `medium_search`.
config.banned_disqualified_persons.similarity_threshold
Minimum name similarity percentage (10..100), sent as a string. Defaults to `"80"`.
config.banned_disqualified_persons.banned_types
Restrict the search to one or more specific banned/disqualified registers. An empty array (the default) searches every register.
config.court_check
Per-operation configuration for a `court_check` launch. Every property is optional - any key you omit is filled with its default value before the check runs.
config.court_check.listing
Which court listings to search. `criminal` is the default; `civil` searches civil matters only; `all` searches both.
config.court_check.search_party
Whether the subject should be matched as the `defendant`, `plaintiff`, or `any` party to the case. Defaults to `defendant`.
config.business_check
Per-operation configuration for a `business_check` launch. Every property is optional - any key you omit is filled with its default value before the check runs. Each property selects whether the corresponding business-record signal raises an alert (`yes`), is recorded for audit but does not raise an
config.business_check.name_match
How strictly the trading name on the entity must match the registered ASIC name. Defaults to `similar`.
config.business_check.abn_active
Alert when the ABN is not active. Defaults to `yes`.
config.business_check.acn_active
Alert when the ACN is not active. Defaults to `yes`.
config.business_check.gst_registered
Alert when GST registration changes. Defaults to `yes`.
config.business_check.recent_documents
Alert when ASIC documents have been lodged within the last N months. `no` disables the check; `1`..`12` set the months-back window. Defaults to `"3"`.
config.business_check.recent_business_names
Alert when registered business names have changed within the last N months. `no` disables the check; `1`..`12` set the months-back window. Defaults to `"3"`.
config.uk_business_check
Per-operation configuration for a `uk_business_check` launch. Every property is optional - any key you omit is filled with its default value before the check runs.
config.uk_business_check.name_match
How strictly the trading name must match the Companies House record. Defaults to `similar`.
config.uk_business_check.company_status
Alert when the company status is not `active`. Defaults to `yes`.
config.uk_business_check.recent_filings
Alert when filings have been lodged within the last N months. Defaults to `"3"`.
config.uk_business_check.officer_changes
Alert when officers have changed within the last N months. Defaults to `"3"`.
config.uk_business_check.registered_address_change
Whether to record registered address changes. Defaults to `on_change`.
config.uk_business_check.sic_codes_change
Whether to record SIC code changes. Defaults to `on_change`.
config.realestate_check
Per-operation configuration for a `realestate_check` launch. Every property is optional.
config.realestate_check.date_from
ISO 8601 date (`YYYY-MM-DD`). When set, only listings on or after this date are considered. Omit to search all available history.
data
The subject fields to screen. Required keys depend on the requested operation - see [Adhoc check data fields](/documentation/api/watcheye_api/adhoc-check-data-fields) for the full per-operation reference. Common fields include `first_name`, `last_name`, `dob`, `business_name`, `business_number`, `ph
{
"data": {
"uuid": "string",
"check_number": "string",
"check_type": "string",
"status": "pending",
"config": {},
"detail_url": "/v1/adhoc-checks/3e36e9ec-0c44-4d65-a2f7-37b1b0a4d57e",
"children": [
{
"uuid": "string",
"check_type": "court_check",
"status": "pending",
"config": {},
"detail_url": "/v1/adhoc-checks/4d7e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f"
}
]
},
"api_reference": "string"
}
List adhoc checks
GET
/adhoc-checks
Returns adhoc ("quick") checks for the calling account.
List adhoc checks
/adhoc-checks
Returns adhoc ("quick") checks for the calling account.
Returns adhoc ("quick") checks for the calling account. Results are paginated. An adhoc check is a one-off screening run performed from the portal by an account user against a free-form subject - they do not belong to a program or entity record.
page
per_page
The number of adhoc checks per page (defaults to 30, max 500)
filter[check_type]
filter[outcome]
filter[created_by]
filter[created_by_user_uuid]
filter[created_by_api_key_uuid]
filter[parent_uuid]
filter[checked_after]
filter[checked_before]
sort
Field to sort by; prefix with `-` for descending order
{
"data": [
{
"uuid": "6f9e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"check_number": "Q-A1B2CD",
"check_type": "pep_sanction_check",
"check_type_name": "PEP and Sanction Screening",
"status": "complete",
"failed_reason": null,
"outcome": "warning",
"check_summary": "Found 2 PEP matches",
"data_summary": "John A Smith, 1980-06-23",
"checked_at": "2025-01-01T00:00:00Z",
"created_by": {
"type": "user",
"uuid": "string",
"username": "string",
"label": "string"
},
"parent_uuid": null
}
],
"meta": {
"current_page": 1,
"per_page": 30,
"total": 1,
"last_page": 1
},
"api_reference": "string"
}
Show an adhoc check
GET
/adhoc-checks/{adhoc_check_uuid}
Returns a single adhoc check by its UUID, including:
* The base envelope (created_by, outcome, timestamps, etc.) - same �
Show an adhoc check
/adhoc-checks/{adhoc_check_uuid}
Returns a single adhoc check by its UUID, including: * The base envelope (created_by, outcome, timestamps, etc.) - same �
Returns a single adhoc check by its UUID, including: * The base envelope (created_by, outcome, timestamps, etc.) - same shape as the list endpoint * results_overview[] - one row per result, with a uniform {title, status, alert_ids} shape across all operation types * children[] - per-child summaries when the check is a group; empty otherwise * details - the typed per-operation details block.
adhoc_check_uuid
The adhoc check UUID
{
"data": {
"uuid": "6f9e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"check_number": "Q-A1B2CD",
"check_type": "pep_sanction_check",
"check_type_name": "PEP and Sanction Screening",
"status": "complete",
"failed_reason": null,
"outcome": "warning",
"check_summary": "Found 2 PEP matches",
"data_summary": "John A Smith, 1980-06-23",
"checked_at": "2025-01-01T00:00:00Z",
"created_by": {
"type": "user",
"uuid": "string",
"username": "string",
"label": "string"
},
"parent_uuid": "string",
"results_overview": [
{
"title": "Match 1: John Smith - PEP",
"status": "warning",
"alert_ids": [
"NK-12345"
]
}
],
"children": [
{
"uuid": "6f9e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"check_number": "Q-A1B2CD",
"check_type": "pep_sanction_check",
"check_type_name": "PEP and Sanction Screening",
"status": "complete",
"failed_reason": null,
"outcome": "warning",
"check_summary": "Found 2 PEP matches",
"checked_at": "2025-01-01T00:00:00Z"
}
],
"details": {}
},
"api_reference": "string"
}
Audits
2 endpoints
Audits
2 endpoints
List audit entries
GET
/audits
Returns audit log entries for the calling account.
List audit entries
/audits
Returns audit log entries for the calling account.
Returns audit log entries for the calling account. Results are paginated. The audit log records significant activity on your account: who did what, when, from which IP, and against which resource. Use it to feed external SIEM / compliance systems, to reconstruct an entity's history, or to surface activity in your own UI.
page
per_page
The number of audit entries per page (defaults to 30, max 500)
filter[action]
Exact action key
filter[action_type]
filter[user_uuid]
filter[api_key_uuid]
filter[entity_uuid]
filter[created_at_from]
filter[created_at_to]
sort
Field to sort by; prefix with `-` for descending order
{
"data": [
{
"uuid": "5e1c0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"action": "created_watcheye_entity",
"action_label": "Entity created",
"action_type": "password",
"description": "Entity created",
"client_ip_address": "203.0.113.42",
"agent": {
"type": "user",
"uuid": "11111111-2222-3333-4444-555555555555",
"name": "Jane Doe"
},
"subject": {
"type": "watcheyeEntity",
"uuid": "123e4567-e89b-12d3-a456-426614174000"
},
"created_at": "2025-01-01T00:00:00Z"
}
],
"meta": {
"current_page": 1,
"per_page": 30,
"total": 1,
"last_page": 1
},
"api_reference": "string"
}
Show an audit entry
GET
/audits/{audit_uuid}
Returns a single audit entry by its UUID, including the full properties object for the
action.
The shape of the properti�
Show an audit entry
/audits/{audit_uuid}
Returns a single audit entry by its UUID, including the full properties object for the action. The shape of the properti�
Returns a single audit entry by its UUID, including the full properties object for the action. The shape of the properties object varies by action. Treat it as an action-specific bag of contextual data rather than a fixed schema; new keys may be added over time as new features are added.
audit_uuid
The audit entry UUID
{
"data": {
"uuid": "5e1c0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f",
"action": "updated_watcheye_entity",
"action_label": "Entity updated",
"action_type": "string",
"description": "string",
"client_ip_address": "string",
"agent": {
"type": "user",
"uuid": "string",
"name": "string"
},
"subject": {
"type": "string",
"uuid": "string"
},
"properties": {
"attributes": {
"entity_name": "Jane A Doe",
"entity_type": "individual",
"risk_level": "low"
}
},
"created_at": "2025-01-01T00:00:00Z"
},
"api_reference": "string"
}
Test
1 endpoint
Test
1 endpoint
Test endpoint
GET
/test
Test endpoint which just returns a message indicating the API is connected and working.
Test endpoint
/test
Test endpoint which just returns a message indicating the API is connected and working.
Test endpoint which just returns a message indicating the API is connected and working.
{
"message": "Ok",
"api_reference": "123e4567-e89b-12d3-a456-426614174000"
}
Response Codes
Every endpoint returns one of the HTTP status codes below. The exact response body for each status is documented on the relevant endpoint page.
OK
The request was successful. The response body contains the result payload for the endpoint.
Bad Request
A required input parameter is missing or malformed. Check the request body and query string against the endpoint schema.
Unauthorized
The request is not authorized. Common causes: API Key Inactive, Account Inactive, Account Expired, or IP Restricted.
Insufficient Credit
The account has run out of credit and cannot process this request. Top up the account or contact sales.
No Access
The API key has no permission to process this request. Contact your account administrator to enable the relevant endpoint scope.
Rate Limited
The request rate limit has been reached. Inspect the x-ratelimit-remaining response header and back off until the window resets.
Service Unavailable
An upstream dependency (e.g. DVS) returned a system error. The request was not successful and should be retried later.
Internal Error
An internal system error occurred. All 5xx errors generate an internal audit trail and automatic investigation ticket.
Rate Limits
Every response includes rate-limit headers. Inspect them to throttle your integration before the limit is breached. When the limit is exceeded the API returns a 429 Rate Limited response and rejects further requests until the window resets.
x-ratelimit-limit
Maximum requests permitted per time window.
x-ratelimit-remaining
Number of requests remaining in the current window.
Versioning & Changes
The Global Data API uses a major-version path prefix (e.g. /api/v2). Breaking changes are introduced in a new major version. Backwards-compatible additions, such as new optional response fields, are made within the current major version. Subscribe to release notes for advance notice of deprecations.
Need a hand with integration?
Our technical team can help with implementation questions, error investigation, and architecture review.
Common Questions About Our API
Our RESTful API is designed to make integration into your software effortless and seamless.
rocket_launch
Implementation
What are the benefits of using an API for my business?
add
What are the benefits of using an API for my business?
The benefits of using an API for your business can include streamlining operations, automating processes and gaining access to new data sources.
rocket_launch
Implementation
How does an API integrate with my current systems and processes?
add
How does an API integrate with my current systems and processes?
Our API can be easily integrated with your current systems and processes through simple API calls and webhooks.
rocket_launch
Implementation
What kind of data can I access through the API?
add
What kind of data can I access through the API?
Our API allows you to access a wide range of data, including consumer information, market insights and demographics
shield_lock
Security
How does your API handle security and data privacy?
add
How does your API handle security and data privacy?
Our API uses industry-standard security protocols to ensure that your data is kept safe and secure.
rocket_launch
Implementation
Can you provide examples of businesses similar to mine that have successfully integrated your API?
add
Can you provide examples of businesses similar to mine that have successfully integrated your API?
Yes, we have a diverse range of clients across various industries that have successfully integrated our API into their business operations.
rocket_launch
Implementation
Are there any limitations or usage restrictions on the API?
add
Are there any limitations or usage restrictions on the API?
There may be certain usage restrictions and limitations based on your specific plan or subscription. We recommend reviewing the API documentation or speaking with our team for more information.
Who We Work With
Tailored solutions for highly regulated industries.
Trusted & Compliant Data Solutions
We recognise the vital need for reliable, privacy-compliant data in today’s landscape. Our solutions provide you access to billions of data points, drawing from a wide range of trusted sources, including AML-CTF data, credit bureau data, superannuation and payroll data, government authoritative data, high-net asset data, as well as insurance and treasury data. Our data ensures that clients receive the most accurate, reliable, and trustworthy information available
- check_circle Direct-to-source verifications
- check_circle Real-time dynamic updates
- check_circle Continuous quality assurance
50 M+
Phone & Email Records
40 M+
Adverse Court records
980 M+
Social Media & Employment Records
18 M+
Real Estate Records
7 M+
Deceased Records
2 BN+
Australian Universe Record
Our Products
A comprehensive suite of verification and data enrichment tools engineered to protect your platform.
WatchEye
WatchEye brings everything together, including real-time KYC/KYB alerts, ongoing monitoring, plus identity, document, and biometric verification. It is an all-in-one customer onboarding system.
IDFEX ID Check
IDFEX provides fast, one-to-one Australian identity, document, and data verification checks, in an easy-to-use SaaS platform. Instantly verify government IDs online.
ID Pass
ID Pass lets customers verify their identity and biometrics on their smartphone easily while keeping full control of their data. Generate and send your customers a link to verify themselves.
Australian Death Check
The Australian Death Check is Australia’s only official national death data source. Our platform provides accurate, compliant, and instant access to millions of death records.
Caspar KYC
CASPAR is Australia’s top data tool for finding, verifying, and identifying consumers. It uncovers hidden KYC data with rich background and contact details on your customers.
API
Our RESTful API connects smoothly with all software environments, providing tailored, pre-configured, and ready-to-use queries within our SaaS systems. Built to address data issues and drive automation.
Insiight Enrichment
Insiight improves customer data quality by verifying, correcting, and enriching records so they remain accurate and useful. Instantly append fresh information across your database.
Quester Marketing
Quester makes it easy to build targeted Australian marketing lists. Use smart filters to create privacy-compliant campaigns that match your audience. Only pay for the data that you download
Ready to see our API in action?
SOME OF OUR TRUSTED CLIENTS
Request a Demo
"*" indicates required fields
