List contacts
Present an API key (sb_live_… / sb_test_…), an OAuth2 access token, or a static token as a Bearer credential. The operator is implied by the credential; it is never in the path. Only a SHA-256 hash of an API key is stored server-side.
In: header
Query Parameters
Filter by archive state. OMITTED (the default) returns BOTH archived and live records — that default is deliberate and will not change, because flipping a list's default filter is a breaking change under docs/api/lifecycle.md. Pass false for live records only, or true to see just the archived ones.
Opaque pagination cursor from meta.cursor.next of the previous page. Do not construct or parse it.
Page size. Values above the maximum are clamped.
1 <= value <= 10025Case-insensitive partial match against first name, last name, company name, or email.
Filter by contact kind.
Value in
- "prospect"
- "lead"
- "customer"
Filter by exact email.
emailFilter by KYC status.
Value in
- "not_required"
- "pending"
- "verified"
- "failed"
- "rejected"
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/contacts"{ "data": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "object": "contact", "kind": "prospect", "first_name": "string", "last_name": "string", "company_name": "string", "company_number": "string", "email": "user@example.com", "phone": "string", "address_line1": "string", "address_line2": "string", "city": "string", "region": "string", "postcode": "string", "country_code": "st", "date_of_birth": "2019-08-24", "is_charity": true, "is_connected_party": true, "is_business": true, "kyc_status": "not_required", "marketing_consent": true, "marketing_consent_at": "2019-08-24T14:15:22Z", "relief_assist_requested": true, "relief_assist_requested_at": "2019-08-24T14:15:22Z", "notes": "string", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "archived_at": "2019-08-24T14:15:22Z" } ], "meta": { "limit": 0, "cursor": { "next": "string", "has_more": true } }}{ "error": { "code": "unauthorized", "message": "Missing or invalid credential." }}{ "error": { "code": "insufficient_scope", "message": "The credential lacks a scope required by this endpoint." }}{ "error": { "code": "rate_limited", "message": "Rate limit exceeded. Retry after 7s." }}{ "error": { "code": "validation_error", "message": "string", "details": [ { "field": "string", "issue": "string" } ] }}