Skip to content
In force

Tranche 2 started 1 July — AML/CTF obligations now extend beyond financial services.

See who is coveredarrow_forward
WatchEyeOnboarding & monitoring

Customer onboarding, screening and ongoing monitoring in one system, with real-time KYC and KYB alerts when a customer's risk changes.

Visit WatchEyearrow_forwardcheck_circleIncluded in the Global Data Portal
IDFEX ID CheckIdentity verification

One-to-one identity, document and data checks against the DVS and Australian data sources, run from the Portal or by API.

Visit IDFEX ID Checkarrow_forwardcheck_circleIncluded in the Global Data Portal
ID PassSelf-service verification

Customers verify their own identity and biometrics from a link on their phone. The result comes back to you, and they keep control of their data.

Visit ID Passarrow_forwardcheck_circleIncluded in the Global Data Portal
InsiightData quality

Verifies, corrects and enriches customer records so they stay accurate — one at a time or across your whole database.

Visit Insiightarrow_forwardcheck_circleIncluded in the Global Data Portal
Australian Death CheckDeceased data

The official national death data source. Match your records against it to find and remove deceased individuals.

Visit Australian Death Checkarrow_forwardcheck_circleIncluded in the Global Data Portal
QuesterMarketing lists

Build targeted, privacy-compliant Australian marketing lists with smart filters. Pay only for the records you download.

Visit Questerarrow_forwardcheck_circleIncluded in the Global Data Portal
verified_userVerify identities6 solutions

Confirm a person or business is who they claim to be: government IDs, biometrics, business registries and employment checks against authoritative Australian sources.

All solutionsarrow_forwardcheck_circleAvailable in the Portal and by API
policy_alertStay compliant6 solutions

Meet AUSTRAC obligations and understand customer risk: screening, risk assessment, fraud controls and investigation tools with evidence recorded for each check.

All solutionsarrow_forwardcheck_circleAvailable in the Portal and by API
databaseImprove your data3 solutions

Keep customer records accurate and put them to work: correct and enrich existing data, unify it into a single view, or build compliant marketing lists from opted-in records.

All solutionsarrow_forwardcheck_circleAvailable in the Portal and by API
policyAML & screening6 use cases

Obligations under the AML/CTF Act, from screening at onboarding through to ongoing monitoring — with the evidence for each check recorded.

All use casesarrow_forwardcheck_circleMapped to the products and data that cover it
how_to_regOnboarding & identity3 use cases

Verifying who a customer, employee or account holder is — at sign-up and during ongoing checks — against authoritative Australian sources.

All use casesarrow_forwardcheck_circleMapped to the products and data that cover it
databaseData & enrichment4 use cases

Keeping customer records accurate, current and complete: validate contact detail, fill the gaps, locate people and remove deceased records.

All use casesarrow_forwardcheck_circleMapped to the products and data that cover it
Global Data
Portalarrow_forward
Productsexpand_more
Solutionsexpand_more
Use casesexpand_more
Dataexpand_more
APIarrow_forwardIndustriesarrow_forwardResourcesarrow_forwardAboutarrow_forwardContactarrow_forward Request a Demo
Talk to the team

9am–5pm AEST, Monday to Friday.

call03 9948 4089
RESTful API's

Integrate compliance at the API level

Automate identity verification, liveness checks, and risk screening directly from your backend with our low-latency REST API.

lock api.example.com/v2
POST /identity/verify HTTP/1.1
Authorization: Bearer sk_live_...
Content-Type: application/json
200 OK 98ms
{
  "status": "verified",
  "verification_id": "req_99b4x",
  "results": {
    "liveness": "passed",
    "id_match": true
  }
}
ap-southeast-2 · Sydney
SDK v1.2.4
Global Data APIs

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.

Getting Started

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.

Environments

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.

Production
Live

Real data, billable transactions. Requires a Live API key issued after onboarding.

https://gdapi.globaldata.net.au/api/v2
Testing
Sandbox

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.

Authorization

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.

Header Format
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.

Talk to Sales

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.

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.

Request Schema 1 param
Authorization
Required
string

header

Example Request
GET /test

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 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.

Request Schema 3 params
partial_address
Required
integer · (4 to 100 chars)

The first 4 or more characters of the address, street, suburb or postcode.

type
Optional
string

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
Optional
integer · (1 to 100)

Maximum number of results to return. Default 20.

Example Response 200 OK
{ 
  "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.

Returns the GNAF ID which corresponds to a given email address or phone number from the Global Data universe.

Request Schema 2 params
email
Optional
string

The email address to search for. Example: jsmith1998@example.co

phone
Optional
string

The phone number to search for. Example: 0491222111

Example Request
{
  "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.

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.

Request Schema 6 params
street_address
Required
string · (4 to 100 chars)

First line of the address. Requires at least one of suburb or postcode.

suburb
Optional
string · (2 to 60 chars)

Suburb name. Requires street_address.

state
Optional
enum

ACT, NSW, NT, QLD, SA, TAS, VIC, WA. Requires street_address.

postcode
Optional
string · (3 to 4 chars)

Postcode. Requires street_address.

suburb_state_postcode
Required
string · (4 to 100 chars)

Combined suburb, state and postcode. Requires street_address.

full_address
Conditional
string · (4 to 255 chars)

Full address as a single string. Use this when you don't have the components separated.

Example Request
{
  "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.

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..

Request Schema 3 params
requests
Required
array · (1 to 200 items)

Array of address validation requests.

requests[].check_id
Optional
string

Optional correlation ID echoed back in the result.

requests[].street_address, suburb, state, postcode, suburb_state_postcode, full_address
Conditional
mixed

Same input modes and combinations as the single Address Validate endpoint.

Example Request
{
  "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.

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.

Request Schema 2 params
gnaf_id
Required
string

The address GNAF ID.

timeout
Optional
string

Maximum seconds to wait for checks to complete.

Example Request
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�

Bulk version of the real estate search endpoint that allows up to 50 address lookups to be performed in a single request.

Request Schema 2 params
date_from
Optional
string

Date filter in YYYY-MM-DD format.

requests
Required
array

The list of address lookups to perform (uses standard address parameters).

Example Request
{
  "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.

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

Request Schema 7 params
gnaf_id
Conditional
string · (max 15 chars)

The GNAF address ID. Most efficient lookup. Mutually exclusive with full_address and the structured parts.

full_address
Conditional
string · (4 to 255 chars)

A complete address as a single string. Mutually exclusive with the other modes.

street_address
Conditional
string · (4 to 100 chars)

Street address component. Use with suburb, state, postcode for structured mode.

suburb
Optional
string · (3 to 60 chars)

Suburb. Used with street_address.

state
Optional
enum

ACT, NSW, NT, QLD, SA, TAS, VIC, WA. Used with street_address.

postcode
Optional
string · (3 to 4 chars)

Postcode. Used with street_address.

date_from
Optional
date

Optional. Only return records on or after this date.

Example Request
{
  "gnaf_id": "GAVIC421647320",
  "date_from": "2015-01-01"
}

Phone

4 endpoints

Check phone connectivity API

GET /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).

Request Schema 2 params
phones
Required
string

One or more comma-separated 10 digit Australian phone numbers.

timeout
Optional
integer

Maximum seconds to wait.

Example Request
{
  "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.

Tests the DNC (Do Not Call) status of one or more supplied phone numbers against the Australian DNC register.

Request Schema 1 param
phones
Required
string

Comma separated 10 digit Australian phone numbers.

Example Request
{
  "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.

Retrieve the person or persons linked to a specific Australian phone number in the Global Data Universe.

Request Schema 1 param
phones
Required
array

The phone numbers to search for in E.164 format.

Example Request
{
  "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.

Validates the link between a specific Australian phone number and a person associated with that phone number. Returns match, possible match, or no match.

Request Schema 4 params
requests
Required
array

List of validations.

phone
Required
string

E.164 format.

first_name
Required
string

First name

last_name
Required
string

Last name

Example Request
{
  "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.

Tests the deliverability of one or more supplied email addresses.

Request Schema 1 param
emails
Required
string

One or more comma-separated email addresses.

Example Request
{
  "emails": "test@example.com"
}

Person

5 endpoints

Banned and Disqualified Person Search API

POST /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.

Request Schema 4 params
search_type
Required
enum

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
Optional
array

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
Optional
integer

Minimum average similarity percentage to include in results. Default 80.

requests
Required
array

Array of person checks, each with check_id, first_name, middle_name, last_name.

Example Request
{
  "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.

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.

Request Schema 4 params
first_name
Required
string

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
Required
string

Last name.

birth_date
Optional
string

Date of birth. Triggers DOB-mode matching, which lets you skip middle names.

death_date
Optional
string

Date of death. If sent on its own (no DOB), the first name has to match exactly including any middle names.

Example Request
{
  "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.

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.

Request Schema 11 params
first_name
Required
string

Required as part of the minimum-search combinations.

middle_name
Optional
string

Optional middle name.

last_name
Required
string

Required when combined with DOB or address.

dob
Required
string

Date of birth. Required if you're not sending an address (and vice versa).

phone
Required
string

0NSN format. A phone is enough on its own to meet the minimum requirement.

email
Required
string

An email is enough on its own too.

street_address
Optional
string

Address line 1.

suburb
Optional
string

Suburb.

state
Optional
enum

ACT, NSW, NT, QLD, SA, TAS, VIC or WA.

postcode
Optional
string

Four-digit postcode.

opt-in
Optional
boolean

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.

Example Request
{
  "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.

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.

Request Schema 10 params
phone
Required
string

Australian phone in either 0NSN (0299995000) or E.164 (+61299995000) format. Pick one lookup key per request.

email
Required
string

Email address. Case insensitive.

gnaf_id
Required
string

GNAF address identifier, for example GANSW716615055.

full_address
Required
string

A single free-text Australian address. The API parses this and resolves it to a GNAF.

street_address
Required
string

street_address plus postcode (with optional suburb and state to improve match accuracy)

suburb
Required
string

Suburb component of the address.

state
Required
string

ACT, NSW, NT, QLD, SA, TAS, VIC or WA.

postcode
Required
string

Required when street_address is supplied.

max_records
Optional
integer

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
Optional
boolean

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.

Example Request
{
  "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.

Query and retrieve additional historical data for a specific individual. Includes an automatic Australian Death Check (ADC).

Request Schema 5 params
first_name
Required
string
last_name
Required
string
birth_date
Optional
string
phone
Optional
string
email
Optional
string

(At least one optional contact/dob parameter required).

Example Request
{
  "first_name": "John",
  "last_name": "Smith",
  "birth_date": "1998-03-21",
  "phone": "0491222111",
  "email": "jsmith1998@example.com"
}

Deceased Check

2 endpoints

ADC Check API

POST /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.

Request Schema 4 params
first_name
Required
string

First name. Has to match exactly.

middle_name
Optional
string

Optional. Middle names can match partially.

last_name
Required
string

Last name. Has to match exactly.

birth_date
Required
string

Date of birth in YYYY-MM-DD.

Example Request
{
  "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.

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.

Request Schema 6 params
requests
Required
array

Array of ADC check requests. Each accepts the same fields as the single check.

requests[].check_id
Optional
string

Your own ID for the request. Echoed back in the result so you can correlate.

requests[].first_name
Required
string

First name (exact match).

requests[].middle_name
Optional
string

Optional. Partial matches allowed.

requests[].last_name
Required
string

Last name (exact match).

requests[].birth_date
Required
string

YYYY-MM-DD.

Example Request
{
  "requests": [
    {
      "check_id": "abcd123456789",
      "first_name": "John",
      "middle_name": "Andrew",
      "last_name": "Smith",
      "birth_date": "1998-03-21"
    }
  ]
}

DVS

14 endpoints

Validate a birth certificate API

POST /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.

Request Schema 7 params
preflight
Optional
string

Input validation only.

consent
Required
string

Individual's consent.

first_name, last_name, birth_date
Required
string

Name and DOB on the certificate.

registration_number
Required
string

Required (or certificate_number) for ACT, NSW, NT, SA, VIC, WA.

certificate_number
Required
string

Recommended for all states. Required for QLD or TAS if no registration_date.

registration_date
Required
string

Required for QLD or TAS if no certificate_number.

state
Required
enum

State of issue.

Example Request
{
  "consent": true,
  "first_name": "John",
  "last_name": "Smith",
  "birth_date": "1980-01-01",
  "certificate_number": "123456789",
  "state": "VIC"
}

Validate a change of name certificate API

POST /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.

Request Schema 6 params
preflight
Optional
boolean

Input validation only.

consent
Required
boolean

Individual's consent.

first_name, last_name
Required
string

New name on the certificate.

birth_date
Required
string

YYYY-MM-DD.

registration_number, certificate_number, registration_date
Required
string

State-specific identifiers.

state
Required
enum

State of issue.

Example Request
{
  "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.

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.

Request Schema 5 params
preflight
Required
boolean

Input validation only.

consent
Required
boolean

Individual's consent.

first_name, last_name, birth_date
Required
string

Identity of the document holder.

acquisition_date
Required
string

Acquisition date printed on the certificate.

stock_number
Required
string

Stock number printed on the certificate.

Example Request
{
  "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.

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.

Request Schema 8 params
preflight
Optional
boolean

Input validation only.

consent
Required
boolean

Individual's consent.

first_name, last_name
Required
string

Names on the death certificate.

event_date
Required
string

Date of death.

registration_number
Required
string

Required (or certificate_number) in most states.

certificate_number
Required
string

Most reliable identifier. Recommended in all cases.

registration_date
Required
string

Relevant for QLD and TAS.

state
Required
string

State of issue.

Example Request
{
  "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.

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.

Request Schema 7 params
preflight
Optional
boolean

Input validation only.

consent
Required
boolean

Individual's consent.

first_name, middle_name, last_name
Required
string

Names on the licence.

birth_date
Required
string

YYYY-MM-DD.

licence_number
Required
string

Licence number being validated.

card_number
Required
string

Card number printed on the physical card

state
Required
string

State of issue.

Example Request
{
  "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.

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.

Request Schema 7 params
preflight
Required
boolean

Input validation only.

consent
Required
boolean

Individual's consent.

first_name1, last_name1
Required
string

Name of the first person.

first_name2, last_name2
Required
string

Name of the second person.

event_date
Required
string

Date of marriage.

certificate details
Required
string

State-specific identifiers. Same rules as birth and death certificates.

state
Required
enum

State of issue.

Example Request
{
  "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.

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).

Request Schema 8 params
preflight
Required
boolean

Input validation only.

consent
Required
boolean

Individual's consent.

full_name1, full_name2, full_name3, full_name4
Required
string

Name lines as printed on the card. Medicare uses up to four lines.

birth_date
Required
string

YYYY-MM-DD.

card_number
Required
string

10-digit Medicare card number

individual_ref_number
Required
string

Individual reference number for the card holder string (1 to 9).

card_expiry
Required
string

Card expiry (YYYY-MM) .

card_type
Required
string

G (green), Y (yellow) or B (blue).

Example Request
{
  "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.

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.

Request Schema 5 params
preflight
Optional
boolean

Input validation only.

consent
Required
boolean

Individual's consent

first_name, last_name, birth_date
Required
string

Identity on the certificate.

acquisition_date
Required
string

Acquisition date printed on the certificate.

stock_number
Required
string

Stock number printed on the certificate.

Example Request
{
  "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.

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.

Request Schema 7 params
preflight
Optional
boolean

Input validation only.

consent
Required
boolean

Individual's consent.

full_name
Required
string

Full name of the card holder.

birth_date
Required
string

YYYY-MM-DD.

card_number
Required
string

Card number printed on the ASIC or MSIC card

card_expiry
Required
string

Card expiry string (YYYY-MM)

card_type
Required
enum

ASIC or MSIC.

Example Request
{
  "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.

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.

Request Schema 4 params
preflight
Optional
string

Input validation only.

consent
Required
string

Individual's consent.

first_name, last_name, birth_date
Required
string

Identity on the card.

card_number
Required
string

The card number follows a 3-letter + 6-digit format.

Example Request
{
  "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.

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.

Request Schema 6 params
preflight
Optional
string

Input validation only.

consent
Required
string

Individual's consent.

first_name, last_name
Required
string

Name as printed on the document.

birth_date
Required
string

YYYY-MM-DD.

travel_document_number
Required
string

Document number being validated.

gender
Required
enum

M, F or X.

Example Request
{
  "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.

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.

Request Schema 4 params
preflight
Optional
boolean

Input validation only.

consent
Required
boolean

Individual's consent.

first_name, last_name, birth_date
Required
string

Identity on the document.

passport_number
Required
string

Foreign passport number linked to the visa.

Example Request
{
  "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.

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.

Request Schema 7 params
preflight
Optional
string

Validates the input shape without performing the check.

consent
Required
string

The individual's consent to perform the check.

first_name and last_name
Required
string

Name on the AEC roll.

birth_date
Required
string

YYYY-MM-DD.

state, postcode, suburb
Required
string

Address components.

street_address
Optional
string

Full street line. Don't combine this with the parsed parts below.

street_number, street_name, street_type, flat_unit_number, habitation_building_name
Optional
string

Parsed components as an alternative to street_address.

Example Request
{
  "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 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.

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".

Request Schema 8 params
name_combined, name_first, name_middle, name_last
Conditional
string

Name fields. name_last is the minimum requirement.

dob
Optional
string · YYYY-MM-DD

Date of birth.

phone1, phone2, phone3, phone4
Optional
string

Up to four known phone numbers.

email1, email2, email3, email4
Optional
string

Up to four known email addresses.

Address components
Optional
string · full_address, suburb_state_postcode

Address scoping for distance-based scoring.

option_relatives
Optional
boolean

Include possible relatives. Records that don't match the full name but have an association.

first_result, max_results
Optional
integer · max_results is capped at 30

Pagination.

sort_by, sort_order
Optional
enum

Default is score DESC, which is the most useful ordering for autotrace.

Example Request
{
  "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.

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.

Request Schema 16 params
name_combined, name_first, name_middle, name_last
Conditional
string

Person name fields. At minimum, name_last (or another search key) has to be supplied.

dob_from, dob_to
Optional
date

DOB range bounds.

secondary_name_first, secondary_name_last, secondary_dob_from, secondary_dob_to
Required
string

Secondary person search. Finds two people at the same address.

street_address, suburb, state, postcode, full_address, suburb_state_postcode
Conditional
string

Address components, a full address, or address line 2.

phone
Conditional
string · 0NSN or E.164 format

Phone number.

email
Conditional
string

Email address.

ip_address
Optional
string · IPv4

IPv4 only. IPv6 is not supported.

social_url
Optional
boolean · URL

Facebook, LinkedIn, Twitter/X, YouTube, Instagram, Indeed, GitHub, Meetup, Quora, Gravatar, Foursquare or Pinterest profile URL.

option_smartname
Optional
boolean

Matches initials, first-name equivalents (Robert / Bob / Rob) and similar-sounding last names (Smith / Smyth).

option_smartemail
Optional
boolean

Matches the email username across different domains and TLDs.

option_smartphone
Optional
boolean

Matches partial phone numbers across area codes and mobile prefixes.

option_smartaddress
Optional
boolean

Matches similar or misspelled addresses in the selected area or neighbouring suburbs.

option_smartsearch
Optional
boolean

Changes the search logic to (Name AND Address) OR Phone OR Email OR IP OR Social

option_marketing_opt_in
Optional
boolean

Include per-contact marketing_opt_in flags on each record.

first_result, max_results
Optional
integer

Pagination. max_results is capped at 30.

sort_by, sort_order
Optional
enum

Result ordering.

Example Response 200 OK
{
  "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 API

POST /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

Request Schema 8 params
super_consent
Required
boolean

Individual's consent to search super records.

payroll_consent
Required
number

Individual's consent to search payroll records.

first_name, last_name, birth_date
Required
string

Minimum required for a valid lookup.

middle_name
Optional
string

Optional Middle name.

address
Optional
object · (street_address, suburb, state, postcode)

Address components for cross-matching.

email
Optional
string

Additional fields evaluated for match outcome.

phone
Optional
string

Additional fields evaluated for match outcome.

employer_abn
Optional
string

Additional fields evaluated for match outcome.

Example Request
{
  "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.

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.

Request Schema 5 params
consent
Required
boolean

Individual's consent to search payroll records.

first_name, last_name, birth_date
Required
mixed

Minimum required for a valid lookup.

middle_name
Optional
string

Optional Middle name.

address
Optional
object · (street_address, suburb, state, postcode)

Address components for cross-matching.

email, phone, employer_abn
Optional
string

Additional fields evaluated for match outcome.

Example Request
{
  "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.

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.

Request Schema 7 params
consent
Required
string

Individual's consent to search super records.

first_name, last_name, birth_date
Required
mixed

Minimum required for a valid lookup.

middle_name
Optional
string

Optional Middle name

address
Optional
string

street_address, suburb, state, postcode

email
Optional
string

Additional fields evaluated for match outcome.

phone
Optional
integer

Additional fields evaluated for match outcome.

employer_abn
Optional
string

Additional fields evaluated for match outcome.

Example Request
{
  "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

PEP / Sanction Bulk Search API

POST /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.

Request Schema 2 params
Shared config: search_type, pep_countries, sanction_countries, max_results, similarity_threshold, pep_sanction_extended_result
Required
mixed

Applied to every request in the batch.

requests
Required
array

Individual, company or vessel checks. Each one can carry a check_id for result correlation.

Example Request
{
  "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.

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.

Request Schema 10 params
first_name, middle_name, last_name, full_name
Conditional
string

For individuals, supply first and last (or full_name). For companies, use company_name. For vessels, use vessel_name.

company_name
Conditional
string

Search a company entity against sanctions.

vessel_name
Conditional
string

Search a vessel against sanctions.

birth_date
Optional
string

Individual's birth date.

search_type
Required
string

narrow_search (exact first + last + DOB), medium_search (exact last + DOB year + partial others), or broad_search (partial everything).

pep_countries
Optional
array · array of country codes

Scope PEP records to specific countries.

sanction_countries
Optional
string · array of country codes

Scope sanctions to specific countries.

similarity_threshold
Optional
integer · (0 to 100)

Default 80.

max_results
Optional
string · (1 to 100)

Default 20.

pep_sanction_extended_result
Optional
boolean

Return full extended dataset details for each match.

Example Request
{
  "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 API

POST /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.

Request Schema 14 params
last_name
Required
string

The only required field. Everything else is optional.

first_name, middle_name
Optional
string

Optional name parts. Match outcomes graded as match, alias_match, partial_match, fuzzy_match, or no_match.

birth_date
Optional
date · YYYY-MM-DD.

Date of Birth.

gnaf_id
Optional
string · GAVIC421647320 or GANT_717247498

GNAF identifier. Mutually exclusive with full_address and the address parts.

full_address
Optional
string

Free-text address. Mutually exclusive with gnaf_id and the parts.

street_address, suburb, state, postcode
Optional
string

Individual address parts. Any combination can be supplied. They don't all have to be there together.

phone, phone2, phone3, phone4
Optional
string · 0NSN or E.164 format

Up to four phones (with or without leading +).

email, email2, email3, email4
Optional
string

Up to four emails.

return_multiple_candidates
Optional
boolean

Return up to five best-first candidates instead of a single best.

ignore_errors
Optional
boolean

Soft-drops fields that fail validation and reports them as not_used instead of failing the request with a 400.

include_deceased
Optional
boolean

Include deceased records in the candidate pool. Defaults to false.

first_name_matching
Optional
array · Default ["exact"].

Accepted match types for first_name: exact, alias, partial, fuzzy.

middle_name_matching
Optional
array · middle_name does not gate candidates.

Same options for middle_name.

last_name_matching
Optional
array · Exact or fuzzy.

Adding fuzzy widens the candidate search to metaphone-equivalent surnames sharing a leading letter

Example Request
{
  "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

Cancel an ID Pass API

POST /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.

Request Schema 1 param
id
Required
uuid

The ID Pass to cancel.

Example Request
{
  "id": "fe4291ca-d831-4760-96df-c9cb03b3cd95"
}

Create an ID Pass API

POST /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.

Request Schema 11 params
link_validity_days
Optional
integer · (1 to 14)

How many days the link stays live. Default 7.

image_retention_days
Optional
integer · (0 to 5000)

How many days to retain captured images. 0 deletes them on completion. Default 0.

check_liveness
Optional
boolean

Whether to run face liveness during the flow.

document_1_allowed_types, document_2_allowed_types, document_3_allowed_types
Optional
array

Allowed document types per slot: licence, passport, medicare, visa, centrelink.

document_verification
Optional
enum

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
Optional
boolean

Require a customer-supplied ID photo.

id_photo_purpose
Conditional
string · (3 to 255 chars)

Required when require_id_photo is true. Shown on the photo capture page (for example "the SampleCo Membership Card").

webhook_url
Optional
url

Webhook receiver for lifecycle events.

webhook_events
Optional
array

Which events to notify on: opened, in_progress, complete, expired, failed, cancelled.

return_url
Optional
url

Page to link to from the completion screen.

requested_identity
Optional
object

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.

Example Request
{
  "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.

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.

Request Schema 5 params
id
Required
uuid

The ID Pass identifier returned from register.

cipher_key
Optional
string

Supply to receive decrypted sensitive fields. Omit to receive encrypted payloads for local decryption.

return_logs
Optional
boolean

Include the debug log of user steps.

return_images
Optional
boolean

Include captured images (within retention window).

return_documents
Optional
boolean

Include full OCR and validation detail for each document.

Example Request
{
  "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 API

POST /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.

Request Schema 8 params
type
Required
enum

name (individual) or company.

report
Required
enum

summary (counts) or detail (full records).

listing
Required
enum

civil, criminal, or all.

name_first, name_middle, name_last
Conditional
string

Required for type=name summary reports.

name_full
Conditional
string

Required for type=name detailed reports. Format is "LAST, FIRST MIDDLE".

company
Conditional
string

Required for type=company.

state
Optional
enum

ACT, NSW, NT, QLD, SA, TAS, VIC, WA. Omit to search all states.

max_results, first_result
Optional
integer

Pagination.

Example Request
{
  "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.

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.

Request Schema 2 params
Shared config: report, listing, max_results, first_result, optional start_date
Required
string

Applied across all requests in the batch.

requests
Required
array · (1 to 20 items)

Each item carries an optional check_id plus type and the right name or company fields, with an optional state filter.

Example Request
{
  "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" }
  ]
}

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.

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.

Request Schema 1 param
abn
Required
string

The 11-digit ABN to investigate.

Example Request
{
  "abn": "12345678901"
}

Retrieve a Business Intelligence Request API

Experimental
GET /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 Schema 1 param
request_uuid
Required
uuid · (path parameter)

The request UUID returned by the create call.

Example Request
GET /business_intelligence/fe4291ca-d831-4760-96df-c9cb03b3cd95

ASIC

8 endpoints

ASIC Banned Persons Search API

POST /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.

Request Schema 4 params
search_type
Required
enum

narrow_search, medium_search or broad_search.

banned_types
Optional
array · strings

afs_banned_disqualified, banned_futures, banned_securities, credit_banned_disqualified, disqualified_director.

similarity_threshold
Optional
number · (0 to 100)

Default 80.

requests
Required
array · objects

Bulk-style array with check_id, first_name, middle_name, last_name.

Example Request
{
  "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.

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

Request Schema 9 params
type
Required
enum

company or person.

extract_type
Required
enum

Companies: current, historical, or relational. Persons: current or historical only.

abn
Conditional
string

Required for company when ACN isn't supplied. 11 digits, whitespace ignored.

acn
Conditional
string · 9 digits.

Required for company when ABN isn't supplied.

person_id
Conditional
string

Required for person extracts. From asic_extract_person_search.

additional_person_ids
Optional
array · (unique)

Linked ASIC person IDs from the search result. Don't repeat the primary person_id.

search_id
Conditional
string

Required for person extracts. From the search response.

name
Conditional
string

Required for person extracts. Uppercase legal name matching the search result.

birth_date
Conditional
date

Required for person extracts. From the search result.

Example Request
{
  "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.

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.

Request Schema 5 params
search
Required
string

Company name, ABN, or ACN. Whitespace ignored for numbers. Letter casing ignored for names.

max_results
Optional
integer

Max results for name searches. Default 20. Ignored for ABN/ACN lookups.

status
Optional
enum

registered, deregistered, or all (default). Ignored for ABN/ACN.

postcode
Optional
string · (4 chars)

Limits name searches to registered offices in that postcode or neighbouring postcodes.

state
Optional
string

State code filter for name searches. If both postcode and state are supplied, only postcode applies.

Example Request
{
  "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.

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

Request Schema 5 params
first_name
Required
string

First given name. Combined with middle_name, maximum three given names allowed.

middle_name
Optional
string

Optional middle names.

last_name
Required
string

Family name as recorded with ASIC.

birth_date
Required
date · YYYY-MM-DD

Must be after 1900-01-01.

extract_type
Required
enum

current (people with current roles or shareholdings) or historical (includes ceased roles).

Example Request
{
  "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.

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.

Request Schema 4 params
first_name
Required
string

First given name.

middle_name
Optional
string

Middle names. Soft-matched (doesn't gate the result).

last_name
Required
string

Family name.

birth_date
Required
date · YYYY-MM-DD.

Must be after 1900-01-01.

Example Request
{
  "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.

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.

Request Schema 2 params
number
Conditional
string · (format JURISDICTION:number, e.g. NSW:1234567).

ABN (11 digits), ACN (9 digits), or state number.

business_name
Conditional
string

Exact business name to search for.

Example Request
{
  "number": "12345678901",
  "business_name": "Acme Services"
}

ASIC Search Bulk API

POST /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.

Request Schema 3 params
requests
Required
array

Array of search items.

requests[].check_id
Optional
string

Optional correlation ID.

requests[].number, requests[].business_name
Conditional
string

Same input options as the single ASIC Search.

Example Request
{
  "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.

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.

Request Schema 2 params
api_reference
Required
uuid · (path)

Reference returned by the order call.

pdf
Optional
boolean · (query)

When true, returns a PDF document (application/pdf) instead of JSON

Example Request
GET /asic_extract/fe4291ca-d831-4760-96df-c9cb03b3cd95
GET /asic_extract/fe4291ca-d831-4760-96df-c9cb03b3cd95?pdf=true

Company Risk

3 endpoints

ASIC Company Search (Risk) API

POST /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.

Request Schema 5 params
search
Required
string

Company name, ABN, or ACN.

max_results
Optional
integer · (1 to 90)

Max results for name searches. Default 20.

status
Optional
enum · all (default).

registered, deregistered, or all (default).

postcode
Optional
string · (4 chars)

: Limits name searches to registered offices in that postcode or neighbouring postcodes.

state
Optional
string

State code filter for name searches.

Example Request
{
  "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.

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.

Request Schema 2 params
abn
Conditional
string

Supply ABN or ACN, not both. 11 digits, whitespace ignored.

acn
Conditional
string

9 digits.

Example Request
{
  "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.

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.

Request Schema 2 params
api_reference
Required
uuid · (path)

Returned by the create call.

pdf
Optional
boolean · (query)

When true, returns a PDF instead of JSON.

Example Request
GET /company_risk/fe4291ca-d831-4760-96df-c9cb03b3cd95
GET /company_risk/fe4291ca-d831-4760-96df-c9cb03b3cd95?pdf=true

Social

2 endpoints

Social Check API

GET /social_check

Runs a social media intelligence check using phone numbers, email addresses or social profile URLs.

Runs a social media intelligence check using phone numbers, email addresses or social profile URLs. The response is a rich social profile: linked accounts, employment history, education history, interests, skills, location, and a confidence-graded match score. Accepts batch input in a single call (a comma-separated list of phones, emails and profile URLs).

Request Schema 1 param
records
Required
string

Comma-separated list of phones (0NSN or E.164), emails, and/or social media profile URLs. URLs must include a profile path (for example linkedin.com/in/handle) and come from one of 28 supported networks.

Example Request
{
  "records": "test@example.com,0412345678,https://www.linkedin.com/in/johnsmith"
}

Social Contact Expand API

POST /social_contact_expand

Take a contact identifier (phone, email, or social profile URL) and surface additional phones and emails associated with the same person.

Take a contact identifier (phone, email, or social profile URL) and surface additional phones and emails associated with the same person. Each input runs through a two-stage process: a social media check on the original input, plus a universe lookup for each phone or email known for that contact. The response keeps social_search and universe_search blocks separate so you can see which lookup found what. Suppressed phones and emails are excluded.

Request Schema 3 params
requests
Required
array · (1 to 50)

Up to 50 records to expand per call.

requests[].search_id
Optional
string · (≤50 chars)

Optional correlation ID.

requests[].search
Required
string · (≤200 chars)

Phone (0NSN or E.164), email, or social profile URL.

Example Request
{
  "requests": [
    {
      "search_id": "abc-1",
      "search": "john@example.com"
    }
  ]
}

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.

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.

Request Schema 3 params
photo
Required
string · (base64 / data URI)

Reference image. Typically the ID document portrait. JPEG or PNG. Max 5 MB.

probe_image
Required
string · (base64 / data URI)

Probe image. Typically a live selfie. JPEG or PNG. Max 5 MB.

similarity_threshold
Optional
number · (0 to 100)

Override the default threshold. If omitted, the system default is applied.

Example Request
{
  "photo": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ...",
  "probe_image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ...",
  "similarity_threshold": 80
}

Liveness Check

2 endpoints

Create a Liveness Check API

POST /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.

Request Schema 5 params
return_url
Required
url

Where to redirect the user after the flow completes (or hits a terminal state).

webhook_url
Optional
url

Optional webhook for lifecycle events.

link_valid_mins
Optional
integer · (5 to 30)

Link validity window. Default 10.

threshold
Optional
integer · (0 to 99)

Custom liveness score threshold. Default is the system value (currently 70).

audit_images
Optional
integer · (0 to 4)

Number of additional audit frame images to retain (beyond the single probe image).

Example Request
{
  "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.

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.

Request Schema 1 param
token
Required
string · (query)

Token from the create endpoint response.

Example Request
GET /liveness_check?token=u2Qe8C9vYl1kP4a7bD6fT3mN9xR5sZ0q

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.

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.

Request Schema 3 params
document_type
Required
enum

passport, licence, or medicare.

document_photo
Required
string · (base64 JPEG)

Front of the document. JPEG only. Max 16 MB.

document_back
Conditional
string · (base64 JPEG)

Required when document_type is licence. Same format and limits.

Example Request
{
  "document_type": "passport",
  "document_photo": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ..."
}

Adverse Media

1 endpoint

Adverse Media Check API

Experimental
POST /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.

Request Schema 7 params
type
Required
enum

person or business.

first_name
Conditional
string

Required for person checks.

middle_name
Optional
string · string or null

Optional.

last_name
Conditional
string

Required for person checks.

birth_date
Optional
date · date or null

Optional. Used to filter results when the source mentions an age or age range.

business_name
Conditional
string

Required for business checks.

country
Optional
string · (ISO 3166)

Prefer results from this country.

Example Request
{
  "type": "person",
  "first_name": "John",
  "middle_name": "James",
  "last_name": "Doe",
  "birth_date": "1990-01-01",
  "country": "AU"
}

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).

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.

Request Schema 3 params
name
Required
string · (≤255 chars)

Officer name to search.

date_of_birth
Optional
date · (YYYY-MM-DD)

Optional DOB filter (YYYY-MM-DD). Day component is accepted but not used. Only year and month match.

max_results
Optional
integer · (1 to 100)

Default 50.

Example Request
{
  "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.

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.

Request Schema 3 params
company
Required
string

Company name or company number.

is_operational
Optional
boolean · (≤255 chars)

When true, filters results to companies with an active or operational status. Default false.

max_results
Optional
integer · (1 to 200)

Max records returned. Default 200.

Example Request
{
  "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.

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.

Request Schema 3 params
officer_id
Required
string

Officer ID returned from the officer search.

disqualified
Optional
boolean

When true, searches the disqualified officers register instead of the standard one.

type
Optional
enum

natural (individual) or corporate. Only used when disqualified is true.

Example Request
{
  "officer_id": "ABC123DEF456",
  "disqualified": false,
  "type": "natural"
}

Create UK Company Report API

POST /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.

Request Schema 1 param
company_number
Required
string · (8 chars)

UK Companies House company number, including any jurisdiction prefix.

Example Request
{
  "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.

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.

Request Schema 2 params
api_reference
Required
uuid · (path)

Returned by the create call.

pdf
Optional
boolean · (query)

When true, returns the report as a PDF.

Example Request
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.

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.

Request Schema 2 params
api_reference
Required
uuid · (path)

Returned by the create call.

pdf
Optional
boolean · (query)

PDF response when true.

Example Request
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.

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.

Request Schema 1 param
documentId
Required
string · (path)

The unique document ID from a company's filing history.

Example Request
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.

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�

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.

Example Response 200 OK
{
  "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

List users

GET /users

List all users on the account.

List all users on the account.

Request Schema 3 params
page
Optional
integer · query

The page number to return

per_page
Optional
integer · query

The number of users per page (defaults to 30, max 500)

enabled
Optional
boolean · query

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.

Example Response 200 OK
{
  "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.

Return a single user by UUID.

Request Schema 1 param
user_uuid
Optional
uuid · path

The user UUID

Example Response 200 OK
{
  "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 a single user by UUID. The update user record is returned in the response.

Request Schema 2 params
user_uuid
Optional
uuid · path

The user UUID

enabled
Optional
boolean

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.

Example Response 200 OK
{
  "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

Create a program

POST /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.

Request Schema 8 params
Idempotency-Key
Optional
string · header, max 255 chars

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
Required
string · max 255 chars
status
Optional
enum · active | paused
report_emails
Optional
array · of string

Email addresses (max 5) that receive event report notifications

data_retention_months
Optional
enum · 0 | 1 | 3 | 6 | 12 | 24 | 36 | 48 | …
event_grouping
Optional
enum · separate | grouped
max_separate_events
Optional
integer

Required when `event_grouping` is `separate`; ignored when `grouped`. Range 5-100.

default_risk_level
Optional
enum · low | medium | high

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`.

Example Response 200 OK
{
  "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�

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.

Request Schema 1 param
program_uuid
Required
uuid · path

The program UUID

Example Response 200 OK
{
  "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.

Returns the programs belonging to the calling account. Soft-deleted programs are excluded. Results are paginated.

Request Schema 4 params
page
Optional
integer · query

The page number to return

per_page
Optional
integer · query

The number of programs per page (defaults to 30, max 500)

filter[status]
Optional
enum · query, active | paused
sort
Optional
enum · query, created_at | -created_at | program_name | -program_name

Field to sort by; prefix with `-` for descending order

Example Response 200 OK
{
  "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.

Returns a single program by its UUID. Unknown UUIDs return 404.

Request Schema 1 param
program_uuid
Required
uuid · path

The program UUID

Example Response 200 OK
{
  "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 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.

Request Schema 8 params
program_uuid
Required
uuid · path

The program UUID

program_name
Optional
string · max 255 chars
status
Optional
enum · active | paused
report_emails
Optional
array · of string
data_retention_months
Optional
enum · 0 | 1 | 3 | 6 | 12 | 24 | 36 | 48 | …
event_grouping
Optional
enum · separate | grouped
max_separate_events
Optional
integer
default_risk_level
Optional
enum · low | medium | high

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`.

Example Response 200 OK
{
  "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

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�

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.

Request Schema 2 params
entity_uuid
Required
uuid · path

The entity UUID

Idempotency-Key
Optional
string · header, max 255 chars

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

Example Response 200 OK
{
  "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 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.

Request Schema 29 params
program_uuid
Required
uuid · path

The program UUID

Idempotency-Key
Optional
string · header, max 255 chars

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
Optional
string

An optional customer-supplied reference number, must be unique within the program

entity_type
Required
enum · individual | business | vessel | property
first_name
Optional
string
middle_name
Optional
string
last_name
Optional
string
birth_date
Optional
date · YYYY-MM-DD

Date of birth in `YYYY-MM-DD` format

business_name
Optional
string
business_number
Optional
string
business_number_type
Optional
enum · au_abn | au_acn | uk_crn | other
vessel_name
Optional
string
property_name
Optional
string
address_line1
Optional
string
address_line2
Optional
string
address_suburb
Optional
string
address_state
Optional
string
address_postcode
Optional
string
address_country
Optional
string
phone1
Optional
string
phone2
Optional
string
phone3
Optional
string
phone4
Optional
string
email1
Optional
email
email2
Optional
email
email3
Optional
email
email4
Optional
email
flags
Optional
array · of string
risk_level
Required
enum · low | medium | high
Example Response 200 OK
{
  "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 �

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).

Request Schema 1 param
entity_uuid
Required
uuid · path

The entity UUID

Example Response 200 OK
{
  "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.

Returns the entities in the specified program. Results are paginated.

Request Schema 9 params
program_uuid
Required
uuid · path

The program UUID

page
Optional
integer · query

The page number to return

per_page
Optional
integer · query

The number of entities per page (defaults to 30, max 500)

filter[entity_type]
Optional
enum · query, individual | business | vessel | property
filter[risk_level]
Optional
enum · query, low | medium | high
filter[flags]
Optional
enum · query, sanction | pep | adverse_media | fraud | hardship | bankruptcy | deceased | court_actions | …

Return entities flagged with the given value

filter[reference_number]
Optional
string · query
sort
Optional
enum · query, created_at | -created_at | entity_name | -entity_name

Field to sort by; prefix with `-` for descending order

archived
Optional
boolean · query

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.

Example Response 200 OK
{
  "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.

Returns a single entity by its UUID. Unknown UUIDs return 404.

Request Schema 1 param
entity_uuid
Required
uuid · path

The entity UUID

Example Response 200 OK
{
  "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�

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.

Request Schema 2 params
entity_uuid
Required
uuid · path

The entity UUID

Idempotency-Key
Optional
string · header, max 255 chars

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

Example Response 200 OK
{
  "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 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.

Request Schema 27 params
entity_uuid
Required
uuid · path

The entity UUID

reference_number
Optional
string
first_name
Optional
string
middle_name
Optional
string
last_name
Optional
string
birth_date
Optional
date · YYYY-MM-DD
business_name
Optional
string
business_number
Optional
string
business_number_type
Optional
enum · au_abn | au_acn | uk_crn | other
vessel_name
Optional
string
property_name
Optional
string
address_line1
Optional
string
address_line2
Optional
string
address_suburb
Optional
string
address_state
Optional
string
address_postcode
Optional
string
address_country
Optional
string
phone1
Optional
string
phone2
Optional
string
phone3
Optional
string
phone4
Optional
string
email1
Optional
email
email2
Optional
email
email3
Optional
email
email4
Optional
email
flags
Optional
array · of string
risk_level
Optional
enum · low | medium | high
Example Response 200 OK
{
  "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

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 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.

Request Schema 8 params
entity_uuid
Required
uuid · path

The entity UUID (the `from` side of the relationship)

Idempotency-Key
Optional
string · header, max 255 chars

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
Required
uuid

UUID of the entity the relationship points to. Must be on your account and different from the path entity.

relationship_type
Required
enum · spouse_of | director_of | shareholder_of | trustee_of | beneficiary_of | parent_of | sibling_of | employee_of | …

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
number · float

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 · YYYY-MM-DD

Optional date the relationship is effective from (YYYY-MM-DD).

effective_to
Optional
date · YYYY-MM-DD

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
Optional
string · max 255 chars

Free-text comment. Max 255 characters. Optional for most relationship types, but required for some (such as `associated_with`).

Example Response 200 OK
{
  "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.

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.

Request Schema 1 param
relationship_uuid
Required
uuid · path

The relationship UUID

Example Response 200 OK
{
  "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�

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.

Request Schema 4 params
entity_uuid
Required
uuid · path

The entity UUID

page
Optional
integer · query
per_page
Optional
integer · query

The number of relationships per page (defaults to 30, max 500)

sort
Optional
enum · query, created_at | -created_at | updated_at | -updated_at

Field to sort by; prefix with `-` for descending order

Example Response 200 OK
{
  "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�

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.

Request Schema 3 params
entity_uuid
Required
uuid · path

The entity UUID

threshold
Optional
number · query, float

The minimum ownership percentage for an owner to be returned (0-100, default 25).

as_of
Optional
date · query, YYYY-MM-DD

Evaluate ownership as at this date (YYYY-MM-DD, defaults to today).

Example Response 200 OK
{
  "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

Create a monitor

POST /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.

Request Schema 7 params
program_uuid
Required
uuid · path

The program UUID

Idempotency-Key
Optional
string · header, max 255 chars

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
Required
string · max 255 chars
monitor_check_type
Required
string

The screening operation to run. Must be one of the operation types enabled on the calling account.

status
Required
enum · active | paused
schedule
Required
enum · manual | every_day | weekdays | weekends | monday | tuesday | wednesday | thursday | …
config
Optional
object

Per-operation configuration; see the Configuration section above.

Example Response 200 OK
{
  "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.

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).

Request Schema 1 param
monitor_uuid
Required
uuid · path

The monitor UUID

Example Response 200 OK
{
  "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.

Returns the monitors that belong to the given program. Soft-deleted monitors are excluded. Results are paginated.

Request Schema 8 params
program_uuid
Required
uuid · path

The program UUID

page
Optional
integer · query

The page number to return

per_page
Optional
integer · query

The number of monitors per page (defaults to 30, max 500)

filter[status]
Optional
enum · query, active | paused
filter[process_status]
Optional
enum · query, pending | processing | failed | paused
filter[monitor_check_type]
Optional
string · query
filter[schedule]
Optional
string · query
sort
Optional
enum · query, created_at | -created_at | last_run_at | -last_run_at | monitor_name | -monitor_name

Field to sort by; prefix with `-` for descending order

Example Response 200 OK
{
  "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�

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.

Request Schema 3 params
monitor_uuid
Required
uuid · path

The monitor UUID

Idempotency-Key
Optional
string · header, max 255 chars

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
Required
enum · new | all

Which entities to process. See the description above for the difference between `new` and `all`.

Example Response 200 OK
{
  "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.

Returns a single monitor by its UUID. Unknown UUIDs return 404.

Request Schema 1 param
monitor_uuid
Required
uuid · path

The monitor UUID

Example Response 200 OK
{
  "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 an existing monitor using PATCH semantics: only the fields you supply are changed; everything else is left as-is.

Request Schema 5 params
monitor_uuid
Required
uuid · path

The monitor UUID

monitor_name
Optional
string · max 255 chars
status
Optional
enum · active | paused
schedule
Optional
enum · manual | every_day | weekdays | weekends | monday | tuesday | wednesday | thursday | …
config
Optional
object

Per-operation configuration; merged with the existing configuration.

Example Response 200 OK
{
  "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

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�

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).

Request Schema 1 param
check_uuid
Required
uuid · path

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�

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.

Request Schema 34 params
entity_uuid
Required
uuid · path

The entity UUID

Idempotency-Key
Optional
string · header, max 255 chars

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
Required
array · of string

One or more operation names to launch. See the operation enum in the Check schema for the supported set.

config
Optional
object

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
Optional
object

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
Optional
enum · broad_search | medium_search | narrow_search

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
Optional
enum · 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | …

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
Optional
array · of string

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
Optional
array · of string

Two-letter ISO country codes (lowercase) to scope the sanction search. Defaults to `["au", "ca", "nz", "gb", "us"]`.

config.pep_sanction_check.max_results
Optional
enum · 10 | 15 | 20 | 25 | 50 | 100

Maximum number of match candidates to return. Sent as an integer. Defaults to `25`.

config.pep_sanction_check.pep_sanction_extended_result
Optional
boolean

When `true`, includes the extended biographical and source-list detail on each match. Defaults to `true`.

config.banned_disqualified_persons
Optional
object

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
Optional
enum · broad_search | medium_search | narrow_search

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
Optional
enum · 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | …

Minimum name similarity percentage (10..100), sent as a string. Defaults to `"80"`.

config.banned_disqualified_persons.banned_types
Optional
array · of string

Restrict the search to one or more specific banned/disqualified registers. An empty array (the default) searches every register.

config.court_check
Optional
object

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
Optional
enum · all | civil | criminal

Which court listings to search. `criminal` is the default; `civil` searches civil matters only; `all` searches both.

config.court_check.search_party
Optional
enum · any | plaintiff | defendant

Whether the subject should be matched as the `defendant`, `plaintiff`, or `any` party to the case. Defaults to `defendant`.

config.business_check
Optional
object

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
Optional
enum · exact | similar | no

How strictly the trading name on the entity must match the registered ASIC name. Defaults to `similar`.

config.business_check.abn_active
Optional
enum · yes | on_change | no

Alert when the ABN is not active. Defaults to `yes`.

config.business_check.acn_active
Optional
enum · yes | on_change | no

Alert when the ACN is not active. Defaults to `yes`.

config.business_check.gst_registered
Optional
enum · yes | on_change | no

Alert when GST registration changes. Defaults to `yes`.

config.business_check.recent_documents
Optional
enum · no | 1 | 2 | 3 | 6 | 12

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
Optional
enum · no | 1 | 2 | 3 | 6 | 12

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
Optional
object

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
Optional
enum · exact | similar | no

How strictly the trading name must match the Companies House record. Defaults to `similar`.

config.uk_business_check.company_status
Optional
enum · yes | on_change | no

Alert when the company status is not `active`. Defaults to `yes`.

config.uk_business_check.recent_filings
Optional
enum · no | 1 | 2 | 3 | 6 | 12

Alert when filings have been lodged within the last N months. Defaults to `"3"`.

config.uk_business_check.officer_changes
Optional
enum · no | 1 | 2 | 3 | 6 | 12

Alert when officers have changed within the last N months. Defaults to `"3"`.

config.uk_business_check.registered_address_change
Optional
enum · on_change | no

Whether to record registered address changes. Defaults to `on_change`.

config.uk_business_check.sic_codes_change
Optional
enum · on_change | no

Whether to record SIC code changes. Defaults to `on_change`.

config.realestate_check
Optional
object

Per-operation configuration for a `realestate_check` launch. Every property is optional.

config.realestate_check.date_from
Optional
date · YYYY-MM-DD

ISO 8601 date (`YYYY-MM-DD`). When set, only listings on or after this date are considered. Omit to search all available history.

Example Response 200 OK
{
  "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.

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.

Request Schema 11 params
page
Optional
integer · query
per_page
Optional
integer · query

The number of checks per page (defaults to 30, max 500)

filter[check_type]
Optional
string · query
filter[outcome]
Optional
enum · query, pass | warning
filter[program_uuid]
Optional
uuid · query
filter[entity_uuid]
Optional
uuid · query
filter[parent_uuid]
Optional
uuid · query
filter[checked_after]
Optional
date · query, ISO 8601 date-time
filter[checked_before]
Optional
date · query, ISO 8601 date-time
sort
Optional
enum · query, checked_at | -checked_at | check_type | -check_type | outcome | -outcome

Field to sort by; prefix with `-` for descending order

archived
Optional
boolean · query

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.

Example Response 200 OK
{
  "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�

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.

Request Schema 1 param
check_uuid
Required
uuid · path

The check UUID

Example Response 200 OK
{
  "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

List events

GET /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.

Request Schema 11 params
page
Optional
integer · query
per_page
Optional
integer · query

The number of events per page (defaults to 30, max 500)

filter[status]
Optional
enum · query, new | investigating | closed_dismissed | closed_duplicate | closed_error | closed_confirmed
filter[check_type]
Optional
string · query
filter[entity_uuid]
Optional
uuid · query
filter[program_uuid]
Optional
uuid · query
filter[check_uuid]
Optional
uuid · query
filter[created_at_from]
Optional
date · query, ISO 8601 date-time
filter[created_at_to]
Optional
date · query, ISO 8601 date-time
sort
Optional
enum · query, created_at | -created_at | status | -status

Field to sort by; prefix with `-` for descending order

archived
Optional
boolean · query

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.

Example Response 200 OK
{
  "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.

Returns a single event by its UUID, including the full notes collection.

Request Schema 1 param
event_uuid
Required
uuid · path

The event UUID

Example Response 200 OK
{
  "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'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.

Request Schema 3 params
event_uuid
Required
uuid · path

The event UUID

status
Optional
enum · new | investigating | closed_dismissed | closed_duplicate | closed_error | closed_confirmed
note
Optional
string · max 5000 chars

Free-text note to attach to the event. Max 5000 characters.

Example Response 200 OK
{
  "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

Create a note on an entity

POST /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.

Request Schema 3 params
entity_uuid
Required
uuid · path

The entity UUID

Idempotency-Key
Optional
string · header, max 255 chars

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
Required
string · max 5000 chars

Free-text content of the note. Max 5000 characters.

Example Response 200 OK
{
  "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.

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).

Request Schema 1 param
note_uuid
Required
uuid · path

The note UUID

Example Response 200 OK
{
  "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.

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.

Request Schema 12 params
page
Optional
integer · query
per_page
Optional
integer · query

The number of notes per page (defaults to 30, max 500)

filter[entity_uuid]
Optional
uuid · query
filter[event_uuid]
Optional
uuid · query
filter[program_uuid]
Optional
uuid · query
filter[created_by]
Optional
enum · query, user | api_key

Filter to notes authored by any portal user (`user`) or any API key (`api_key`) on this account.

filter[created_by_user_uuid]
Optional
uuid · query

Filter to notes authored by a specific portal user.

filter[created_by_api_key_uuid]
Optional
uuid · query

Filter to notes authored by a specific API key.

filter[created_at_from]
Optional
date · query, ISO 8601 date-time
filter[created_at_to]
Optional
date · query, ISO 8601 date-time
sort
Optional
enum · query, created_at | -created_at | updated_at | -updated_at

Field to sort by; prefix with `-` for descending order

archived
Optional
boolean · query

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.

Example Response 200 OK
{
  "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.

Returns a single note by its UUID.

Request Schema 1 param
note_uuid
Required
uuid · path

The note UUID

Example Response 200 OK
{
  "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'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.

Request Schema 2 params
note_uuid
Required
uuid · path

The note UUID

note_text
Required
string · max 5000 chars

Replacement text for the note. Max 5000 characters.

Example Response 200 OK
{
  "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

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.

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.

Request Schema 1 param
id_check_uuid
Required
uuid · path

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�

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.

Request Schema 7 params
entity_uuid
Required
uuid · path
Idempotency-Key
Optional
string · header, max 255 chars

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
Required
string

Identification type to run. See SELECTABLE_ID_TYPES in the portal field reference.

consent_obtained
Required
boolean

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
Required
object

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
Optional
date · YYYY-MM-DD

Date of birth in `YYYY-MM-DD` format.

oac
Optional
string

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.

Example Response 200 OK
{
  "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.

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.

Request Schema 11 params
page
Optional
integer · query
per_page
Optional
integer · query
archived
Optional
boolean · query
filter[program_uuid]
Optional
uuid · query
filter[entity_uuid]
Optional
uuid · query
filter[id_type]
Optional
string · query
filter[check_type]
Optional
string · query
filter[outcome]
Optional
enum · query, pass | fail | pending
filter[checked_after]
Optional
date · query, ISO 8601 date-time
filter[checked_before]
Optional
date · query, ISO 8601 date-time
sort
Optional
string · query
Example Response 200 OK
{
  "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�

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.

Request Schema 1 param
id_check_uuid
Required
uuid · path
Example Response 200 OK
{
  "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

Download an IDPass certificate as PDF

GET /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.

Request Schema 1 param
idpass_uuid
Required
uuid · path

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�

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.

Request Schema 2 params
idpass_uuid
Required
uuid · path
image_type
Required
string · path

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�

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.

Request Schema 19 params
Idempotency-Key
Optional
string · header, max 255 chars

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
Required
object

The identity being verified.

data.first_name
Optional
string · max 50 chars

Required unless `last_name` is supplied.

data.middle_name
Optional
string · max 50 chars
data.last_name
Optional
string · max 50 chars

Required unless `first_name` is supplied.

data.dob
Optional
date · YYYY-MM-DD

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
Optional
string

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
Required
object
config.link_validity_days
Required
integer
config.check_liveness
Required
boolean

Whether to perform a liveness check during verification.

config.document_1_allowed_types
Required
array · of string
config.document_2_allowed_types
Optional
array · of string

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
array · of string

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
Required
boolean

Whether the individual must also supply a standalone ID photo.

config.id_photo_purpose
Optional
string

Required when `require_id_photo` is `true`.

config.return_url
Optional
url
config.return_verification_images
Required
boolean

Whether the verification images should be retained and made available for download afterwards via the IDPass image endpoint.

config.delivery_method
Required
enum · manual | sms
config.delivery_phone
Optional
string

Australian mobile number (04XXXXXXXX). Required when `delivery_method` is `sms`, in which case the hosted link is sent to this number.

Example Response 200 OK
{
  "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�

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.

Request Schema 20 params
entity_uuid
Required
uuid · path
Idempotency-Key
Optional
string · header, max 255 chars

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
Required
object

The identity being verified.

data.first_name
Optional
string · max 50 chars

Required unless `last_name` is supplied.

data.middle_name
Optional
string · max 50 chars
data.last_name
Optional
string · max 50 chars

Required unless `first_name` is supplied.

data.dob
Optional
date · YYYY-MM-DD

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
Optional
string

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
Required
object
config.link_validity_days
Required
integer
config.check_liveness
Required
boolean

Whether to perform a liveness check during verification.

config.document_1_allowed_types
Required
array · of string
config.document_2_allowed_types
Optional
array · of string

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
array · of string

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
Required
boolean

Whether the individual must also supply a standalone ID photo.

config.id_photo_purpose
Optional
string

Required when `require_id_photo` is `true`.

config.return_url
Optional
url
config.return_verification_images
Required
boolean

Whether the verification images should be retained and made available for download afterwards via the IDPass image endpoint.

config.delivery_method
Required
enum · manual | sms
config.delivery_phone
Optional
string

Australian mobile number (04XXXXXXXX). Required when `delivery_method` is `sms`, in which case the hosted link is sent to this number.

Example Response 200 OK
{
  "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.

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.

Request Schema 10 params
page
Optional
integer · query
per_page
Optional
integer · query
filter[status]
Optional
enum · query, new | opened | in_progress | complete | expired | failed | cancelled
filter[verification_status]
Optional
enum · query, passed | review | failed
filter[source]
Optional
enum · query, entity | adhoc
filter[entity_uuid]
Optional
uuid · query
filter[program_uuid]
Optional
uuid · query
filter[created_after]
Optional
date · query, ISO 8601 date-time
filter[created_before]
Optional
date · query, ISO 8601 date-time
sort
Optional
enum · query, created_at | -created_at | status | -status

Sort field. Prefix with `-` for descending. Defaults to `-created_at`.

Example Response 200 OK
{
  "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�

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.

Request Schema 1 param
idpass_uuid
Required
uuid · path
Example Response 200 OK
{
  "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

Delete an adhoc ID check

DELETE /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.

Request Schema 1 param
adhoc_id_check_uuid
Required
uuid · path

The adhoc ID check UUID

Example Response 200 OK
{
  "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.

Returns a verification certificate PDF for a completed adhoc ID check.

Request Schema 1 param
adhoc_id_check_uuid
Required
uuid · path

Launch an adhoc ID check

POST /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.

Request Schema 6 params
Idempotency-Key
Optional
string · header, max 255 chars

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
Required
string

Identification type to run. See SELECTABLE_ID_TYPES in the portal field reference.

consent_obtained
Required
boolean

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
Required
object

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
Optional
date · YYYY-MM-DD

Date of birth in `YYYY-MM-DD` format.

oac
Optional
string

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.

Example Response 200 OK
{
  "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.

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.

Request Schema 11 params
page
Optional
integer · query
per_page
Optional
integer · query
filter[id_type]
Optional
string · query
filter[check_type]
Optional
string · query
filter[outcome]
Optional
enum · query, pass | fail | pending
filter[created_by]
Optional
enum · query, user | api_key
filter[created_by_user_uuid]
Optional
uuid · query
filter[created_by_api_key_uuid]
Optional
uuid · query
filter[checked_after]
Optional
date · query, ISO 8601 date-time
filter[checked_before]
Optional
date · query, ISO 8601 date-time
sort
Optional
string · query
Example Response 200 OK
{
  "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.

Returns a single adhoc ID check by UUID, including consent, verification details and the typed details block.

Request Schema 1 param
adhoc_id_check_uuid
Required
uuid · path
Example Response 200 OK
{
  "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

Delete an adhoc check

DELETE /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.

Request Schema 1 param
adhoc_check_uuid
Required
uuid · path

The adhoc check UUID

Example Response 200 OK
{
  "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�

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).

Request Schema 1 param
adhoc_check_uuid
Required
uuid · path

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�

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.

Request Schema 34 params
Idempotency-Key
Optional
string · header, max 255 chars

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
Required
array · of string

One or more operation names to launch. See the operation enum in the AdhocCheck schema for the supported set.

config
Optional
object

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
Optional
object

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
Optional
enum · broad_search | medium_search | narrow_search

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
Optional
enum · 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | …

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
Optional
array · of string

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
Optional
array · of string

Two-letter ISO country codes (lowercase) to scope the sanction search. Defaults to `["au", "ca", "nz", "gb", "us"]`.

config.pep_sanction_check.max_results
Optional
enum · 10 | 15 | 20 | 25 | 50 | 100

Maximum number of match candidates to return. Sent as an integer. Defaults to `25`.

config.pep_sanction_check.pep_sanction_extended_result
Optional
boolean

When `true`, includes the extended biographical and source-list detail on each match. Defaults to `true`.

config.banned_disqualified_persons
Optional
object

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
Optional
enum · broad_search | medium_search | narrow_search

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
Optional
enum · 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | …

Minimum name similarity percentage (10..100), sent as a string. Defaults to `"80"`.

config.banned_disqualified_persons.banned_types
Optional
array · of string

Restrict the search to one or more specific banned/disqualified registers. An empty array (the default) searches every register.

config.court_check
Optional
object

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
Optional
enum · all | civil | criminal

Which court listings to search. `criminal` is the default; `civil` searches civil matters only; `all` searches both.

config.court_check.search_party
Optional
enum · any | plaintiff | defendant

Whether the subject should be matched as the `defendant`, `plaintiff`, or `any` party to the case. Defaults to `defendant`.

config.business_check
Optional
object

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
Optional
enum · exact | similar | no

How strictly the trading name on the entity must match the registered ASIC name. Defaults to `similar`.

config.business_check.abn_active
Optional
enum · yes | on_change | no

Alert when the ABN is not active. Defaults to `yes`.

config.business_check.acn_active
Optional
enum · yes | on_change | no

Alert when the ACN is not active. Defaults to `yes`.

config.business_check.gst_registered
Optional
enum · yes | on_change | no

Alert when GST registration changes. Defaults to `yes`.

config.business_check.recent_documents
Optional
enum · no | 1 | 2 | 3 | 6 | 12

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
Optional
enum · no | 1 | 2 | 3 | 6 | 12

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
Optional
object

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
Optional
enum · exact | similar | no

How strictly the trading name must match the Companies House record. Defaults to `similar`.

config.uk_business_check.company_status
Optional
enum · yes | on_change | no

Alert when the company status is not `active`. Defaults to `yes`.

config.uk_business_check.recent_filings
Optional
enum · no | 1 | 2 | 3 | 6 | 12

Alert when filings have been lodged within the last N months. Defaults to `"3"`.

config.uk_business_check.officer_changes
Optional
enum · no | 1 | 2 | 3 | 6 | 12

Alert when officers have changed within the last N months. Defaults to `"3"`.

config.uk_business_check.registered_address_change
Optional
enum · on_change | no

Whether to record registered address changes. Defaults to `on_change`.

config.uk_business_check.sic_codes_change
Optional
enum · on_change | no

Whether to record SIC code changes. Defaults to `on_change`.

config.realestate_check
Optional
object

Per-operation configuration for a `realestate_check` launch. Every property is optional.

config.realestate_check.date_from
Optional
date · YYYY-MM-DD

ISO 8601 date (`YYYY-MM-DD`). When set, only listings on or after this date are considered. Omit to search all available history.

data
Required
object

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

Example Response 200 OK
{
  "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.

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.

Request Schema 11 params
page
Optional
integer · query
per_page
Optional
integer · query

The number of adhoc checks per page (defaults to 30, max 500)

filter[check_type]
Optional
string · query
filter[outcome]
Optional
enum · query, pass | warning
filter[created_by]
Optional
enum · query, user | api_key
filter[created_by_user_uuid]
Optional
uuid · query
filter[created_by_api_key_uuid]
Optional
uuid · query
filter[parent_uuid]
Optional
uuid · query
filter[checked_after]
Optional
date · query, ISO 8601 date-time
filter[checked_before]
Optional
date · query, ISO 8601 date-time
sort
Optional
enum · query, checked_at | -checked_at | check_type | -check_type | outcome | -outcome

Field to sort by; prefix with `-` for descending order

Example Response 200 OK
{
  "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 �

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.

Request Schema 1 param
adhoc_check_uuid
Required
uuid · path

The adhoc check UUID

Example Response 200 OK
{
  "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

List audit entries

GET /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.

Request Schema 10 params
page
Optional
integer · query
per_page
Optional
integer · query

The number of audit entries per page (defaults to 30, max 500)

filter[action]
Optional
string · query

Exact action key

filter[action_type]
Optional
string · query
filter[user_uuid]
Optional
uuid · query
filter[api_key_uuid]
Optional
uuid · query
filter[entity_uuid]
Optional
uuid · query
filter[created_at_from]
Optional
date · query, ISO 8601 date-time
filter[created_at_to]
Optional
date · query, ISO 8601 date-time
sort
Optional
enum · query, created_at | -created_at

Field to sort by; prefix with `-` for descending order

Example Response 200 OK
{
  "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�

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.

Request Schema 1 param
audit_uuid
Required
uuid · path

The audit entry UUID

Example Response 200 OK
{
  "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 endpoint

GET /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.

Example Response 200 OK
{
  "message": "Ok",
  "api_reference": "123e4567-e89b-12d3-a456-426614174000"
}
HTTP Status

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.

200

OK

The request was successful. The response body contains the result payload for the endpoint.

400

Bad Request

A required input parameter is missing or malformed. Check the request body and query string against the endpoint schema.

401

Unauthorized

The request is not authorized. Common causes: API Key Inactive, Account Inactive, Account Expired, or IP Restricted.

402

Insufficient Credit

The account has run out of credit and cannot process this request. Top up the account or contact sales.

403

No Access

The API key has no permission to process this request. Contact your account administrator to enable the relevant endpoint scope.

429

Rate Limited

The request rate limit has been reached. Inspect the x-ratelimit-remaining response header and back off until the window resets.

503

Service Unavailable

An upstream dependency (e.g. DVS) returned a system error. The request was not successful and should be retried later.

5XX

Internal Error

An internal system error occurred. All 5xx errors generate an internal audit trail and automatic investigation ticket.

Throttling

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.

Release Notes

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.

sales@globaldata.net.au
help FREQUENTLY ASKED QUESTIONS

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

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

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

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

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

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

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.

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.

radar

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.

Program Active
Identity Verification Passed
Screening Clear
Monitoring Configured
Explore WatchEye arrow_forward
id_card

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.

Identity Verified
check_circle Customer Data Verified
check_circle ID Documents Authenticated
check_circle AML/CTF Checks Passed
Explore IDFEX ID Check arrow_forward
mobile_camera_front

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.

Self Customer Identity Verification
face
Match 99.2%
Explore ID Pass arrow_forward
deceased

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.

Verify & Remove Deceased Records
> Establishing secure connection...
> Connected to National Registry
> Querying records
> Status: CLEARED
> Latency: 42ms
Explore Australian Death Check arrow_forward
conditions

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.

Precision Search Functions
check_circle Verify KYC and KYB entities
check_circle Reveal critical ECDD data
check_circle Investigate High-Risk Profiles
check_circle Discover hidden connections
Explore Caspar KYC arrow_forward
code_blocks

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.

Embed Our API's directly into your existing systems
> const response = await client.verify({
> applicantId: "app_8x92m...",
> document: {
> type: "driver_licence",
> country: "AU",
> images: [frontImage, backImage] } });
Explore API arrow_forward
insights

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.

Automated Data Cleansing & Enrichment
Profile Completion 100%
Data Accuracy High
New Data Appended 100,000
Explore Insiight Enrichment arrow_forward
campaign

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

Create Targeted B2C Marketing Lists
Campaign Ready group
Segment Matching
Audience: 1.2M
Explore Quester Marketing arrow_forward
enquire now

Ready to see our API in action?

SOME OF OUR TRUSTED CLIENTS

Request a Demo

"*" indicates required fields

This field is for validation purposes and should be left unchanged.
Full Name*