Skip to main content
GET
List customers
List individual customers in your organisation. This is the primary polling source for syncing status into your CRM.

Polling pattern

Pass updated_since set to the timestamp of your last poll. Each call then returns only customers updated since then:
Walk pages with the cursor field. See Polling for status for a robust loop, and Pagination for the cursor mechanics.

Filtering

Returned shape

Only individual customer types (INDIVIDUAL, SOLE_TRADER) are returned. Entity customers (companies, trusts, partnerships, SMSFs) live on their own list — see GET /entities.

Authorizations

Authorization
string
header
required

Bearer API key issued from Settings → Developers in your Instant Compliance organisation. Format: ic_live_….

Query Parameters

limit
integer
default:50

Number of records to return (1–100).

Required range: 1 <= x <= 100
cursor
string

Opaque cursor from the previous response's next_cursor.

status
enum<string>

Filter by KYC status.

Available options:
NOT_STARTED,
PENDING,
IN_PROGRESS,
VERIFIED,
FAILED,
NOT_REQUIRED,
AWAITING_RESUBMISSION
aml_status
enum<string>

Filter by AML compliance status.

Available options:
NOT_SCREENED,
IN_PROGRESS,
CLEAR,
NEEDS_REVIEW,
RESOLVED
updated_since
string<date-time>

ISO-8601 timestamp. Return only customers updated after this time.

external_id
string

Lookup by your CRM identifier.

include
enum<string>

Comma-separated list of opt-in response fields. Currently the only supported value is total_count, which adds an exact count of the filtered set to the response envelope. Costs an extra COUNT(*) query — omit it on hot polling loops.

Available options:
total_count

Response

Paginated customer list.

object
enum<string>
required

Always "list" for paginated envelopes.

Available options:
list
data
object[]
required
has_more
boolean
required

True if at least one more page exists. Use as the loop condition.

next_cursor
string | null
required

Pass as cursor on the next request, or null when no more pages.

limit
integer
required

The limit echoed back after defaulting/clamping (1–100, default 50).

total_count
integer

Total records matching the filter set (not the page). Only present when the request included include=total_count.