List customers
List individual customers in your organisation. Use this as a
polling source — pass updated_since so each poll only returns
records that changed since the previous run.
Pagination is cursor-based: pass the next_cursor value from the
previous response as cursor on the next call.
Polling pattern
Passupdated_since set to the timestamp of your last poll. Each call
then returns only customers updated since then:
cursor field. See
Polling for status for a robust loop, and
Pagination for the cursor mechanics.
Filtering
| Query parameter | Effect |
|---|---|
status | KYC status (e.g. IN_PROGRESS, VERIFIED). |
aml_status | AML compliance status (e.g. NEEDS_REVIEW, CLEAR). |
updated_since | ISO-8601 timestamp lower bound. |
external_id | Lookup by your CRM identifier. |
limit | 1–100. Default 50. |
cursor | Continuation cursor from the previous response. |
Returned shape
Only individual customer types (INDIVIDUAL, SOLE_TRADER) are
returned. Entity customers (companies, trusts, partnerships) are not
exposed in v1.Authorizations
Bearer API key issued from Settings → Developers in your
Instant Compliance organisation. Format: ic_live_….
Query Parameters
Number of records to return (1–100).
1 <= x <= 100Opaque cursor from the previous response's next_cursor.
Filter by KYC status.
NOT_STARTED, PENDING, IN_PROGRESS, VERIFIED, FAILED, NOT_REQUIRED, AWAITING_RESUBMISSION Filter by AML compliance status.
NOT_SCREENED, IN_PROGRESS, CLEAR, NEEDS_REVIEW, RESOLVED ISO-8601 timestamp. Return only customers updated after this time.
Lookup by your CRM identifier.
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.
total_count Response
Paginated customer list.
Always "list" for paginated envelopes.
list True if at least one more page exists. Use as the loop condition.
Pass as cursor on the next request, or null when no more pages.
The limit echoed back after defaulting/clamping (1–100, default 50).
Total records matching the filter set (not the page). Only present
when the request included include=total_count.

