Skip to content

List all contacts

Request

You can fetch a list of all contacts (ie. users or leads) in your workspace.

Merged contacts

Contacts that have been merged (via POST /contacts/merge) will not appear in list results. Only the target contact from the merge remains accessible.

Pagination

You can use pagination to limit the number of results returned. The default is 50 results per page. See the pagination section for more details on how to use the starting_after param.

Security
bearerAuth
Query
pageinteger

The page of results to fetch. Defaults to first page

Example:page=1
per_pageinteger

How many results to display per page. Defaults to 15

Example:per_page=15
starting_afterstring

String used to get the next page of conversations.

Headers
Intercom-Versionstring(intercom_version)

Intercom API version.
By default, it's equal to the version set in the app package.

Default:"2.11"
Enum:"1.0""1.1""1.2""1.3""1.4""2.0""2.1""2.2""2.3""2.4"
Example:2.11
curl -i -X GET \
  'https://api.intercom.io/contacts?page=1&per_page=15&starting_after=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Intercom-Version: 2.11'

Responses

successful

Bodyapplication/json
typestringrequired

Always list

Value:"list"
Example:"list"
dataArray of objects(Contact)required

The list of contact objects

total_countintegerrequired

A count of the total number of objects.

Example:100

Cursor-based pagination is a technique used in the Intercom API to navigate through large amounts of data. A "cursor" or pointer is used to keep track of the current position in the result set, allowing the API to return the data in small chunks or "pages" as needed.

Response
{ "type": "list", "data": [], "total_count": 0, "pages": { "type": "pages", "page": 1, "per_page": 10, "total_pages": 0 } }