Skip to main content

Developer Docs

API Reference

Base URL: https://checkify.com.au/api/v1

Introduction

The Checkify API gives you access to Australian and New Zealand address validation and lookup data through a single REST interface. All responses are JSON. All requests require a Bearer token passed via the Authorization header.

Quick start curl
# 1. Register and grab your API key from the dashboard
# 2. Make your first request

$ curl -H "Authorization: Bearer ck_prv_..." \
  "https://checkify.com.au/api/v1/autocomplete?query=1+george+st"

Base URL

https://checkify.com.au/api/v1

Format

application/json

Auth

Bearer token

Authentication

Every request requires a Bearer token in the Authorization header. There are two token types — choose the right one for your use case. Create and manage both from your dashboard.

HTTP header
Authorization: Bearer ck_prv_...  # private token
Authorization: Bearer ck_pub_...  # public token
Public token ck_pub_...

Safe to embed in JavaScript, browser widgets, and mobile apps. Can also be used server-side.

  • Browser requests locked to your registered domain
  • Dev domains always allowed — localhost, *.test, *.ddev.site, 127.0.0.1
  • Server-side calls bypass the domain check

Register only your production domain (e.g. myapp.com.au). Dev environments are automatically trusted.

Private token ck_prv_...

For server-side use — backend controllers, queue workers, cron jobs, and internal tooling.

  • Not domain-restricted — works from any server origin
  • Higher rate limits on paid plans

Never expose a private token in client-side code. If a private token appears in browser source, a mobile app binary, or a public repository, rotate it immediately from your dashboard. Use a public token for anything browser-facing.

GET

/account

Free

Returns your current plan, unit usage, billing period, subscription status, and a per-endpoint breakdown of API calls for the current period. Useful for monitoring usage programmatically or building dashboards.

Request

$ curl -H "Authorization: Bearer ck_prv_..." \
  "https://checkify.com.au/api/v1/account"

Response

{
  "plan":             "business",
  "plan_name":        "Business",
  "status":           "active",
  "cancels_at":       null,
  "units_used":       1240,
  "units_limit":      50000,
  "units_remaining":  48760,
  "period_start":     "2026-03-01",
  "period_end":       "2026-03-31",
  "usage": {
    "abn":                    295,
    "autocomplete":           520,
    "autocomplete-details":   380,
    "sanctions-screening":    45
  }
}

Fields

Field Type Description
planstringPlan slug (free, starter, business, enterprise)
plan_namestringHuman-readable plan name
statusstringfree, active, cancelling, cancelled, past_due, or incomplete
cancels_atstring|nullISO 8601 date when subscription ends (only when status is cancelling)
units_usedintegerUnits consumed in the current billing period
units_limitintegerTotal units included in your plan
units_remainingintegerUnits remaining this period
period_startstringCurrent billing period start date (YYYY-MM-DD)
period_endstringCurrent billing period end date (YYYY-MM-DD)
usageobjectPer-endpoint call counts for the current period. Keys are endpoint slugs, values are total calls.

This endpoint costs 0 units. Usage breakdown is cached for 5 minutes.

Rate Limits

Requests are rate-limited per API token. When the limit is exceeded the API returns 429 Too Many Requests.

Plan Limit Window
Free 30 per minute, per token
Starter 120 per minute, per token
Business 300 per minute, per token
Enterprise 600 per minute, per token
VIP 600 per minute, per token

Errors

The API uses standard HTTP status codes. Error bodies always include an error key with a human-readable message.

Code Meaning
200Success
401Missing or invalid token
403Token domain restriction
404Record not found
422Validation error (bad params)
429Rate limit exceeded
500Server error
Error response
{
  "error": "Address not found"
}

Address APIs

GET

/autocomplete

Free Try demo →

Type-ahead address search across 17.8M+ Australian and New Zealand addresses. Returns a map of address IDs to highlighted HTML strings ready for display.

Don't need a custom UI? The JavaScript widget handles the dropdown, field mapping, and selection in one script tag.

Parameters

Param Type Required Description
query string Yes Search term, min 3 characters
country string No Country dataset: au (default) or nz

Request

$ curl -H "Authorization: Bearer ck_prv_..." \
  "https://checkify.com.au/api/v1/autocomplete?query=1+smith+st"

Response

{
  "CKNSW717780562": "<strong>1</strong> <strong>Smith</strong> <strong>St</strong>reet, SYDNEY NSW 2000",
  "CKNSW718422105": "<strong>1</strong> <strong>Smith</strong> Rd, MARRICKVILLE NSW 2204"
}

Address IDs are stable and suitable for use as a primary key. Pass them to /autocomplete-details to retrieve the full structured record.

GET

/autocomplete-details

1 unit Try demo →

Fetch the full structured record for an address ID returned by /autocomplete. Returns all address components, coordinates, and mesh block.

The JavaScript widget calls this endpoint automatically when the user selects an address and maps the response to your form fields.

Parameters

Param Type Required Description
id string Yes Address ID from /autocomplete
country string No Country dataset: au (default) or nz

Request

$ curl -H "Authorization: Bearer ck_prv_..." \
  "https://checkify.com.au/api/v1/autocomplete-details?id=CKNSW717780562"

Response

{
  "unit":          null,
  "level":         null,
  "unitLevel":     null,
  "streetNumber":  "123",
  "streetName":    "SMITH",
  "streetType":    "ST",
  "street":        "123 SMITH ST",
  "city":          "SYDNEY",
  "postcode":      "2000",
  "state":         "NSW",
  "stateFull":     "New South Wales",
  "country":       "AU",
  "countryFull":   "Australia",
  "latitude":      -33.8688,
  "longitude":     151.2093,
  "meshBlockCode": "20563140000",
  "buildingName":  null
}

Fields

Field Type Description
unitstring|nullFlat/unit number and type
levelstring|nullFloor/level descriptor
unitLevelstring|nullCombined unit and level
streetNumberstringHouse/lot number
streetNamestringStreet name only
streetTypestringStreet type code (ST, RD, AVE…)
streetstringNumber + full street name combined
citystringLocality/suburb name
postcodestring4-digit postcode
statestring|nullState abbreviation (NSW, VIC…) — AU only
stateFullstring|nullFull state name — AU only
regionstring|nullRegion/city (e.g. Auckland) — NZ only
latitudenumber|nullDecimal degrees
longitudenumber|nullDecimal degrees
meshBlockCodestring|nullABS Mesh Block identifier — AU only
buildingNamestring|nullNamed building or complex — AU only
GET

/reverse

1 unit Try demo →

Find the nearest address(es) to a coordinate pair. Returns results ordered by distance with distanceMetres included in each record.

Parameters

Param Type Required Description
latnumberYesLatitude (AU: −44 to −9, NZ: −47 to −34)
lngnumberYesLongitude (AU: 112–155, NZ: 166–178)
radiusnumberNoSearch radius in metres (1–5000, default: 100)
limitintegerNoMax results (1–10, default: 1)
countrystringNoCountry dataset: au (default) or nz

Request

$ curl -H "Authorization: Bearer ck_prv_..." \
  "https://checkify.com.au/api/v1/reverse?lat=-33.8688&lng=151.2093&radius=50"

Response

[
  {
    "addressId":      "CKNSW716506198",
    "addressFull":    "1 MACQUARIE ST SYDNEY NSW 2000",
    "unit":          null,
    "streetNumber":  "1",
    "street":        "1 MACQUARIE ST",
    "city":          "SYDNEY",
    "postcode":      "2000",
    "state":         "NSW",
    "latitude":      -33.86885,
    "longitude":     151.21356,
    "distanceMetres": 12.4
  }
]
GET

/autocomplete-suburb

Free Try demo →

Search for suburbs and localities across Australia and New Zealand. Returns a map of locality IDs to highlighted strings. Use the ID to fetch full suburb details.

Want a ready-made dropdown? The suburb widget wraps this endpoint with initSuburb() — same script tag, no extra code.

Parameters

Param Type Required Description
query string Yes Search term, min 2 characters
country string No Country dataset: au (default) or nz

Response

{
  "NSW3805": "<strong>Par</strong>ramatta NSW 2150",
  "NSW3806": "<strong>Par</strong>kes NSW 2870"
}
GET

/autocomplete-suburb-details

1 unit Try demo →

Get full details for a locality ID returned by /autocomplete-suburb.

The suburb widget calls this automatically and maps city, postcode, and state/region to your form.

Parameters

Param Type Required Description
id string Yes Locality ID from /autocomplete-suburb
country string No Country dataset: au (default) or nz

Response

{
  "city":        "PARRAMATTA",
  "postcode":    "2150",
  "state":       "NSW",
  "stateFull":   "New South Wales",
  "country":     "AU",
  "countryFull": "Australia"
}

For NZ results, state and stateFull are null; use region instead (e.g. "Auckland"). NZ localities also return postcode: null as NZ postcodes are derived from address data.

GET

/postcode

1 unit Try demo →

Look up all suburbs and localities that belong to a postcode — Australia and New Zealand. Returns up to 50 results ordered alphabetically.

Parameters

Param Type Required Description
postcode string Yes 4-digit postcode
country string No Country dataset: au (default) or nz

Request

$ curl -H "Authorization: Bearer ck_prv_..." \
  "https://checkify.com.au/api/v1/postcode?postcode=2000"

Response

[
  {
    "localityId":  "NSW3325",
    "city":        "SYDNEY",
    "postcode":    "2000",
    "state":       "NSW",
    "stateFull":   "New South Wales",
    "country":     "AU",
    "countryFull": "Australia"
  },
  {
    "localityId":  "NSW1687",
    "city":        "DAWES POINT",
    ...
  }
]

Business APIs

GET

/business-activity

Free Try demo →

Search over 9,000 Australian business activities and industry classifications (ANZSIC codes) with intelligent fuzzy matching, misspelling correction, and relevance scoring. Ideal for ABN registration forms, tax returns, and business industry classification lookups.

Parameters

Param Type Required Description
search string Yes Search query — min 3 characters (e.g. farming breeding)
limit integer No Max results — 1 to 100 (default: 25)

Request

$ curl -H "Authorization: Bearer ck_prv_..." \
  "https://checkify.com.au/api/v1/business-activity?search=farming+breeding&limit=5"

Response

{
  "status": "success",
  "count": 5,
  "activities": [{
    "code":         "76",
    "industryCode": "1420",
    "fullName":     "Breeding, farming or grazing - beef, meat cattle, domesticated buffalo"
  },
  ...
  ]
}

Response fields

Field Description
code Unique activity identifier
industryCode ANZSIC industry classification code (e.g. 1420)
fullName Business activity description

Features

  • Fuzzy matching — finds results even with misspelled queries (e.g. "abbatoir" finds "abattoir")
  • Grammatical variation — strips common suffixes (-ing, -ies, -ed, -er, -ion, -s) for broader matches
  • Frequency-weighted scoring — rare terms score higher than common ones
GET

/abn

1 unit Try demo →

Validate an Australian Business Number (ABN) and retrieve registered business details from the ABR, including entity name, type, trading names, and GST registration status.

Parameters

Param Type Required Description
abn string Yes 11-digit ABN — spaces accepted (e.g. 26 008 672 179)

Request

$ curl -H "Authorization: Bearer ck_prv_..." \
  "https://checkify.com.au/api/v1/abn?abn=26+008+672+179"

Response

{
  "abn":          "26008672179",
  "abnFormatted": "26 008 672 179",
  "acn":          "008672179",
  "acnFormatted": "008 672 179",
  "entityName":   "BUNNINGS GROUP LIMITED",
  "entityType":   "Australian Public Company",
  "abnDetails": {
    "active":     true,
    "activeFrom": "1999-11-01",
    "gst":        "2000-07-01"
  },
  "addresses": [{
    "type":        "serviceAddress",
    "state":       "VIC",
    "postcode":    "3121",
    "activeFrom":  "2022-01-13"
  }],
  "businessNames": [
    "BUNNINGS",
    "BUNNINGS TRADE",
    "BUNNINGS WAREHOUSE",
    ...
  ]
}
GET

/acn

1 unit Try demo →

Validate an Australian Company Number (ACN) and retrieve registered company details from ASIC, including entity name, type, registration dates, addresses, former names, and recent documents.

Parameters

Param Type Required Description
acn string Yes 9-digit ACN — spaces accepted (e.g. 008 672 179)

Request

$ curl -H "Authorization: Bearer ck_prv_..." \
  "https://checkify.com.au/api/v1/acn?acn=008+672+179"

Response

{
  "abn":          "26008672179",
  "abnFormatted": "26 008 672 179",
  "acn":          "008672179",
  "acnFormatted": "008 672 179",
  "entityName":   "BUNNINGS GROUP LIMITED",
  "entityType":   "Australian Public Company",
  "abnDetails": {
    "activeFrom": "1999-11-01"
  },
  "acnDetails": {
    "active":     true,
    "activeFrom": "1948-06-18",
    "activeTo":   "2026-06-30"
  },
  "addresses": [
    {
      "type":     "registeredOffice",
      "suburb":   "PERTH",
      "state":    "WA",
      "postcode": "6000"
    },
    {
      "type":     "principalPlaceOfBusiness",
      "suburb":   "BURNLEY",
      "state":    "VIC",
      "postcode": "3121"
    }
  ],
  "formerNames": [
    {
      "name":       "BUNNINGS LIMITED",
      "activeFrom": "2005-08-26",
      "activeTo":   "2005-08-31"
    },
    ...
  ],
  "documents": [
    {
      "number":   "6EJOZ7287",
      "date":     "2025-06-23",
      "code":     "484",
      "title":    "CHANGE TO COMPANY DETAILS",
      "pages":    2,
      "contents": [
        { "subCode": "484O", "title": "CHANGES TO SHARE STRUCTURE" },
        { "subCode": "484G", "title": "NOTIFICATION OF SHARE ISSUE" }
      ]
    },
    ...
  ]
}
GET

/company-name

1 unit Try demo →

Check whether a proposed company name is available for registration with ASIC. Returns availability status, objections (if any), and whether the name already exists as a registered business name.

Parameters

Param Type Required Description
name string Yes Proposed company name (max 200 characters)

Request

$ curl -H "Authorization: Bearer ck_prv_..." \
  "https://checkify.com.au/api/v1/company-name?name=Acme+Holdings"

Response

{
  "name":                 "ACME HOLDINGS",
  "availability":         "Available",
  "shortDescription":     "The proposed name is available.",
  "objections":           [],
  "existingBusinessName": false
}
GET

/business-name

1 unit Try demo →

Check whether a proposed business (trading) name is available for registration with ASIC. Same ASIC name availability service as the company name check, but scoped to business names.

Parameters

Param Type Required Description
name string Yes Proposed business name (max 200 characters)

Request

$ curl -H "Authorization: Bearer ck_prv_..." \
  "https://checkify.com.au/api/v1/business-name?name=The+Coffee+Collective"

Response

{
  "name":                 "THE COFFEE COLLECTIVE",
  "availability":         "Available",
  "shortDescription":     "The proposed name is available.",
  "objections":           [],
  "existingBusinessName": false
}

Identity APIs

GET

/sanctions-screening

3 units Try demo →

Screen an individual or entity name against 11 sanctions and debarment lists, including DFAT, UN Security Council, OFAC SDN, EU, UK OFSI, Canada, New Zealand, France, Hong Kong, World Bank, and IDB. Returns matching entries with a confidence score based on name similarity and optional birth details (year, country, city). All lists are synced hourly. Essential for AML/CTF compliance, particularly under Australia's Tranche 2 obligations.

Parameters

Param Type Required Description
name string Yes Full name to screen (3-200 characters). Fuzzy matching handles spelling variations.
birth_year integer No Year of birth (1900–2008). Boosts confidence if it matches a listed birth year.
country string No ISO 3166-1 alpha-2 country code (e.g. AU, AF). Boosts confidence if it matches citizenship.
city string No City of birth (max 200 characters). Fuzzy-compared against place of birth for confidence boost.

Request

$ curl -H "Authorization: Bearer ck_prv_..." \
  "https://checkify.com.au/api/v1/sanctions-screening?name=Mohammad+Hassan&birth_year=1950&country=AF"

Response

{
  "match": true,
  "results": [
    {
      "reference":    "2",
      "name":         "MOHAMMAD HASSAN AKHUND",
      "type":         "Individual",
      "aliases":      ["محمد حسن أخوند"],
      "confidence":   0.848,
      "sanctions": {
        "targeted_financial_sanction": true,
        "travel_ban":                  true,
        "arms_embargo":                true,
        "maritime_restriction":         false
      },
      "date_of_birth":  "1945, 1946, ...",
      "place_of_birth": "Pashmul village, Kandahar ...",
      "citizenship":    "Afghanistan",
      "committees":     "1988 (Taliban)",
      "listing_information": "Listed by UN 1267 Committee on ...",
      "source_updated_at":  "2026-03-02 00:00:00"
    }
  ]
}

Fields

Field Type Description
matchbooleantrue if any results meet the confidence threshold
resultsarrayMatching entries sorted by confidence (descending). Empty if no match.
results[].sourcestringSource list: dfat, ofac, eu, uk, un, ca, nz, fr, hk, wb, idb
results[].referencestringSource-specific reference number
results[].namestringPrimary name of the sanctioned individual or entity
results[].typestringIndividual, Entity, or Vessel
results[].aliasesarrayKnown aliases including non-Latin scripts
results[].confidencefloat0-1 confidence score. Higher when birth details match.
results[].sanctionsobjectActive sanction types: financial, travel ban, arms embargo, maritime
results[].date_of_birthstring|nullListed birth date(s) — may contain multiple years
results[].place_of_birthstring|nullListed place of birth
results[].citizenshipstring|nullListed citizenship/nationality
results[].committeesstring|nullSanctions committee reference (e.g. 1988 Taliban)
results[].listing_informationstring|nullDetails of the listing (committee, dates, amendments)
results[].source_updated_atstringDate of last source list update (ISO 8601)

Data sourced from 11 sanctions and debarment lists: DFAT, UN, OFAC SDN, EU, UK OFSI, Canada, New Zealand, France DG Trésor, Hong Kong CEDB, World Bank, and IDB (all synced hourly).

GET

/director-id

1 unit Try demo →

Validate the format and checksum of an Australian Director Identification Number (Director ID) using the official ABRS Damm algorithm. Confirms structural validity — does not perform a live ABRS registry lookup.

Parameters

Param Type Required Description
director_id string Yes 15-digit Director ID starting with 036 — spaces accepted

Request

$ curl -H "Authorization: Bearer ck_prv_..." \
  "https://checkify.com.au/api/v1/director-id?director_id=036123456789010"

Response

{
  "directorId":          "036123456789010",
  "directorIdFormatted": "036 12345 67890 10",
  "valid":              true,
  "notice":             "Structural validity confirmed. This check does not perform a live ABRS registry lookup."
}

A 422 is returned if the Director ID fails the Damm checksum, length, or country code check.

Fields

Field Type Description
directorIdstringNormalised digits only
directorIdFormattedstringGrouped with spaces (e.g. 036 XXXXX XXXXX XX)
validbooleanAlways true on a 200 response
noticestringReminder that this is a structural check only
GET

/tfn

1 unit Try demo →

Validate the format and checksum of an Australian Tax File Number (TFN). Confirms structural validity — does not perform a live ATO registry lookup.

Parameters

Param Type Required Description
tfn string Yes 8 or 9-digit TFN — spaces and hyphens accepted

Request

$ curl -H "Authorization: Bearer ck_prv_..." \
  "https://checkify.com.au/api/v1/tfn?tfn=123456782"

Response

{
  "tfn":          "123456782",
  "tfnFormatted": "123 456 782",
  "valid":        true,
  "notice":       "Structural validity confirmed. This check does not perform a live ATO registry lookup."
}

A 422 is returned if the TFN fails the checksum or length check.

Fields

Field Type Description
tfnstringNormalised digits only
tfnFormattedstringGrouped with spaces (e.g. 123 456 789)
validbooleanAlways true on a 200 response
noticestringReminder that this is a structural check only

Communication APIs

GET

/email

1 unit Try demo →

Validate an email address — checks RFC format, DNS/MX records, SMTP deliverability, disposable/free/role detection, and quality score. Works for Australian and international addresses.

Parameters

Param Type Required Description
email string Yes Email address to validate, max 254 characters

Request

$ curl -H "Authorization: Bearer ck_prv_..." \
  "https://checkify.com.au/api/v1/email?email=john%40doe.com"

Response

{
  "email":   "[email protected]",
  "valid":   true,
  "format": {
    "valid":    true,
    "account":  "john",
    "domain":   "doe.com"
  },
  "dns": {
    "valid":    true
  },
  "deliverable":    true,
  "canConnectSmtp": true,
  "inboxFull":      false,
  "disabled":       false,
  "catchAll":       null,
  "score":          0.96,
  "free":           true,
  "disposable":     false,
  "role":           false
}

Fields

Field Type Description
emailstringThe normalised (lowercased) email address
validbooleanTrue only if both format and DNS checks pass
format.validbooleanRFC-compliant email format
format.accountstring|nullLocal part (before @), null if format invalid
format.domainstring|nullDomain part (after @), null if format invalid
dns.validbooleanDomain has valid MX or A records
deliverableboolean|nullWhether the email address can receive mail
canConnectSmtpboolean|nullWhether a connection to the mail server could be established
inboxFullboolean|nullWhether the recipient's inbox is full — a possible cause of bounced emails
disabledboolean|nullWhether the account is disabled and unable to receive email
catchAllboolean|nullWhether the domain accepts all email regardless of the local part (catch-all configuration)
scorenumber|nullQuality score from 0 to 1 — higher is better
freeboolean|nullWhether the email uses a free provider (e.g. Gmail, Yahoo)
disposableboolean|nullWhether the email uses a disposable/temporary provider (e.g. Mailinator)
roleboolean|nullWhether this is a role-based address (e.g. support@, info@) rather than a personal mailbox
GET

/phone

1 unit Try demo →

Validate and normalise phone numbers. Detects the country, returns the number in E.164, national, and international formats, and identifies the line type (mobile, fixed-line, toll-free, etc.), carrier, and location. Defaults to Australian number parsing when no country code is provided.

Parameters

Param Type Required Description
phone string Yes Phone number to validate. Include country code (e.g. +61412345678) or provide a local number with the country hint
country string No ISO 3166-1 alpha-2 country code hint for local numbers without a dial prefix. Defaults to AU

Request

$ curl -H "Authorization: Bearer ck_prv_..." \
  "https://checkify.com.au/api/v1/phone?phone=0412345678"

Response

{
  "phone":               "+61412345678",
  "phoneNational":      "0412 345 678",
  "phoneInternational": "+61 412 345 678",
  "valid":              true,
  "country":            "AU",
  "type":               "mobile",
  "carrier":            "Telstra",
  "location":           null
}

Fields

Field Type Description
phonestringE.164 format (e.g. +61412345678)
phoneNationalstringNational format as dialled locally (e.g. 0412 345 678)
phoneInternationalstringInternational format with country code (e.g. +61 412 345 678)
validbooleanWhether the phone number is valid
countrystringDetected ISO 3166-1 alpha-2 country code
typestring|nullLine type: mobile, fixed-line, toll-free, voip, etc.
carrierstring|nullTelecom carrier name (e.g. Telstra)
locationstring|nullGeographic location associated with the number, if available

Batch

POST

/bulk

Business & Enterprise

Submit a batch of records for asynchronous processing. Supports all validation endpoints: ABN, ACN, TFN, Director ID, Email, Phone, and Reverse Geocode. Each row consumes the same units as a single API call. You can also upload a CSV file via the dashboard bulk upload form.

Supported Endpoints

Endpoint Required Fields Units / Row
address-validation address-validation 1
reverse lat, lng 1
abn abn 1
acn acn 1
sanctions-screening sanctions-screening 3
tfn tfn 1
director-id director_id 1
email email 1
phone phone, country (optional) 1

Limits

Plan Max Rows / Batch
Business 10,000
Enterprise 50,000
Vip 50,000

Create a Bulk Job

Param Type Required Description
endpoint string Yes One of the supported endpoint slugs above
items array Yes* Array of objects with required fields, or array of strings for single-field endpoints. *Or upload a CSV file instead.
file file (CSV) Yes* CSV file upload with headers matching the required fields. *Or provide a JSON items array instead.

Request (JSON)

$ curl -X POST -H "Authorization: Bearer ck_prv_..." \
  -H "Content-Type: application/json" \
  -d '{"endpoint":"email","items":["[email protected]","[email protected]"]}' \
  "https://checkify.com.au/api/v1/bulk"

Response (201 Created)

{
  "id":         1,
  "endpoint":   "email",
  "status":     "pending",
  "total_rows": 2,
  "created_at": "2026-03-15T12:00:00+00:00"
}

Check Status

$ curl -H "Authorization: Bearer ck_prv_..." \
  "https://checkify.com.au/api/v1/bulk/1"

Download Results (CSV)

$ curl -H "Authorization: Bearer ck_prv_..." \
  -o results.csv \
  "https://checkify.com.au/api/v1/bulk/1/download"

Statuses

pendingJob created, waiting to be processed
processingCurrently processing rows
completedAll rows processed — results available for download
failedAll rows failed

JS Libraries

Autocomplete Widget

Try demo →

A drop-in JavaScript library that adds unit-level address autocomplete to any input field. No build step required — include one script tag with your public API key and call CheckifyAutocomplete.init().

Use a public token (ck_pub_...) — it is safe to embed in browser-facing code and is locked to your registered domain.

Installation

HTML CDN via jsDelivr
<!-- Add to your page with your public API key -->
<script src="https://cdn.jsdelivr.net/npm/@checkify-api/autocomplete@latest/checkify-autocomplete.js?key=YOUR_PUBLIC_KEY"></script>

Basic usage

JavaScript
// Attach to any text input
CheckifyAutocomplete.init('#street');

Field mapping

Pass a second argument to automatically populate separate form fields when an address is selected.

JavaScript
CheckifyAutocomplete.init('#street', {
  unit:     '#unit',
  street:   '#street-display',
  city:     '#suburb',
  state:    '#state',
  postcode: '#postcode',
});

Events

Listen for checkify:selected on the input to receive the full address object when a user picks a suggestion.

JavaScript
document.querySelector('#street').addEventListener('checkify:selected', (e) => {
  console.log(e.detail);
  // {
  //   unit, street_number, street_name, street_type,
  //   city, state, postcode,
  //   latitude, longitude, ...
  // }
});

Cleanup

Call destroy() to remove event listeners and the suggestion dropdown — useful in single-page apps.

JavaScript
const widget = CheckifyAutocomplete.init('#street');

// Later, e.g. on component unmount:
widget.destroy();

Suburb autocomplete

Use initSuburb() instead of init() to search suburbs and postcodes. The field mapping keys are city, state, stateFull, postcode, and country.

JavaScript Try demo →
CheckifyAutocomplete.initSuburb('#suburb', {
  city:     '#suburb-name',
  state:    '#state',
  postcode: '#postcode',
});