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.
# 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.
Authorization: Bearer ck_prv_... # private token
Authorization: Bearer ck_pub_... # 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.
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.
/account
FreeReturns 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 |
|---|---|---|
| plan | string | Plan slug (free, starter, business, enterprise) |
| plan_name | string | Human-readable plan name |
| status | string | free, active, cancelling, cancelled, past_due, or incomplete |
| cancels_at | string|null | ISO 8601 date when subscription ends (only when status is cancelling) |
| units_used | integer | Units consumed in the current billing period |
| units_limit | integer | Total units included in your plan |
| units_remaining | integer | Units remaining this period |
| period_start | string | Current billing period start date (YYYY-MM-DD) |
| period_end | string | Current billing period end date (YYYY-MM-DD) |
| usage | object | Per-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 |
|---|---|
| 200 | Success |
| 401 | Missing or invalid token |
| 403 | Token domain restriction |
| 404 | Record not found |
| 422 | Validation error (bad params) |
| 429 | Rate limit exceeded |
| 500 | Server error |
{ "error": "Address not found" }
Address APIs
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.
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 |
|---|---|---|
| unit | string|null | Flat/unit number and type |
| level | string|null | Floor/level descriptor |
| unitLevel | string|null | Combined unit and level |
| streetNumber | string | House/lot number |
| streetName | string | Street name only |
| streetType | string | Street type code (ST, RD, AVE…) |
| street | string | Number + full street name combined |
| city | string | Locality/suburb name |
| postcode | string | 4-digit postcode |
| state | string|null | State abbreviation (NSW, VIC…) — AU only |
| stateFull | string|null | Full state name — AU only |
| region | string|null | Region/city (e.g. Auckland) — NZ only |
| latitude | number|null | Decimal degrees |
| longitude | number|null | Decimal degrees |
| meshBlockCode | string|null | ABS Mesh Block identifier — AU only |
| buildingName | string|null | Named building or complex — AU only |
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 |
|---|---|---|---|
| lat | number | Yes | Latitude (AU: −44 to −9, NZ: −47 to −34) |
| lng | number | Yes | Longitude (AU: 112–155, NZ: 166–178) |
| radius | number | No | Search radius in metres (1–5000, default: 100) |
| limit | integer | No | Max results (1–10, default: 1) |
| country | string | No | Country 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 } ]
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 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.
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
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
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", ... ] }
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" } ] }, ... ] }
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 }
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
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 |
|---|---|---|
| match | boolean | true if any results meet the confidence threshold |
| results | array | Matching entries sorted by confidence (descending). Empty if no match. |
| results[].source | string | Source list: dfat, ofac, eu, uk, un, ca, nz, fr, hk, wb, idb |
| results[].reference | string | Source-specific reference number |
| results[].name | string | Primary name of the sanctioned individual or entity |
| results[].type | string | Individual, Entity, or Vessel |
| results[].aliases | array | Known aliases including non-Latin scripts |
| results[].confidence | float | 0-1 confidence score. Higher when birth details match. |
| results[].sanctions | object | Active sanction types: financial, travel ban, arms embargo, maritime |
| results[].date_of_birth | string|null | Listed birth date(s) — may contain multiple years |
| results[].place_of_birth | string|null | Listed place of birth |
| results[].citizenship | string|null | Listed citizenship/nationality |
| results[].committees | string|null | Sanctions committee reference (e.g. 1988 Taliban) |
| results[].listing_information | string|null | Details of the listing (committee, dates, amendments) |
| results[].source_updated_at | string | Date 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).
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 |
|---|---|---|
| directorId | string | Normalised digits only |
| directorIdFormatted | string | Grouped with spaces (e.g. 036 XXXXX XXXXX XX) |
| valid | boolean | Always true on a 200 response |
| notice | string | Reminder that this is a structural check only |
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 |
|---|---|---|
| tfn | string | Normalised digits only |
| tfnFormatted | string | Grouped with spaces (e.g. 123 456 789) |
| valid | boolean | Always true on a 200 response |
| notice | string | Reminder that this is a structural check only |
Communication APIs
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 |
|---|---|---|---|
| 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 |
|---|---|---|
| string | The normalised (lowercased) email address | |
| valid | boolean | True only if both format and DNS checks pass |
| format.valid | boolean | RFC-compliant email format |
| format.account | string|null | Local part (before @), null if format invalid |
| format.domain | string|null | Domain part (after @), null if format invalid |
| dns.valid | boolean | Domain has valid MX or A records |
| deliverable | boolean|null | Whether the email address can receive mail |
| canConnectSmtp | boolean|null | Whether a connection to the mail server could be established |
| inboxFull | boolean|null | Whether the recipient's inbox is full — a possible cause of bounced emails |
| disabled | boolean|null | Whether the account is disabled and unable to receive email |
| catchAll | boolean|null | Whether the domain accepts all email regardless of the local part (catch-all configuration) |
| score | number|null | Quality score from 0 to 1 — higher is better |
| free | boolean|null | Whether the email uses a free provider (e.g. Gmail, Yahoo) |
| disposable | boolean|null | Whether the email uses a disposable/temporary provider (e.g. Mailinator) |
| role | boolean|null | Whether this is a role-based address (e.g. support@, info@) rather than a personal mailbox |
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 |
|---|---|---|
| phone | string | E.164 format (e.g. +61412345678) |
| phoneNational | string | National format as dialled locally (e.g. 0412 345 678) |
| phoneInternational | string | International format with country code (e.g. +61 412 345 678) |
| valid | boolean | Whether the phone number is valid |
| country | string | Detected ISO 3166-1 alpha-2 country code |
| type | string|null | Line type: mobile, fixed-line, toll-free, voip, etc. |
| carrier | string|null | Telecom carrier name (e.g. Telstra) |
| location | string|null | Geographic location associated with the number, if available |
Batch
/bulk
Business & EnterpriseSubmit 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
|
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
| pending | Job created, waiting to be processed |
| processing | Currently processing rows |
| completed | All rows processed — results available for download |
| failed | All 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
<!-- 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
// 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.
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.
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.
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.
CheckifyAutocomplete.initSuburb('#suburb', { city: '#suburb-name', state: '#state', postcode: '#postcode', });