# Get contacts

**GET** `/contacts`

Returns customer profiles with identities, tags, and custom fields. Use filters to
find the segment you want to message, enroll in journeys, or keep in sync.

Authentication: bearerAuth
Required scopes: `contact:list`
Allowed roles: `owner`, `admin`, `agent`
Authorization: List contacts in the caller's contact scope.

## Parameters

- `pageToken` (query string, optional) - Opaque token from the previous response's `nextPageToken`.
- `pageSize` (query integer, optional)
- `search` (query string, optional) - Case-insensitive substring search across name, cf_email, cf_phone, identity phone, and tag name.
- `customFields` (query object, optional) - Filter by custom field values (AND logic)
- `tagIds` (query array<string>, optional) - Include contacts tagged with any of the listed tag IDs (OR semantics).
- `channels` (query array<enum>, optional) - Include contacts that have an identity on any of the listed channels (OR semantics).
- `archived` (query boolean, optional) - Tri-state filter. Omit to exclude archived contacts (default),
set to true to return only archived contacts, or false to return only non-archived.
- `createdAfter` (query string, optional) - Inclusive lower bound on createdAt (RFC3339).
- `createdBefore` (query string, optional) - Exclusive upper bound on createdAt (RFC3339).
- `orderBy` (query enum, optional)
- `orderDirection` (query enum, optional)

## Responses

- `200`: List of contacts
- `default`: Error
