# List all contact activities

You can fetch a list of contact activity events for your workspace, such as when contacts are created, role updated, merged, or deleted. Events are returned oldest first.
You can use pagination to limit the number of results returned. The default is `50` results per page, with a maximum of `150`.
See the [pagination section](https://developers.intercom.com/docs/build-an-integration/learn-more/rest-apis/pagination/#pagination-for-list-apis) for more details on how to use the `starting_after` param.

Endpoint: GET /contacts/activities
Version: Preview
Security: bearerAuth

## Query parameters:

  - `per_page` (integer)
    The number of results to return per page. Defaults to 50, minimum 1, maximum 150.

  - `starting_after` (string)
    The cursor value from `pages.next.starting_after` in a previous response. Used to paginate through results.

## Header parameters:

  - `Intercom-Version` (string)

## Response 200 fields (application/json):

  - `type` (string)
    Always list
    Enum: "list"

  - `data` (array)
    The list of contact activity objects.

  - `data.type` (string)
    Always contact_activity
    Enum: "contact_activity"

  - `data.id` (string)
    The unique identifier for the activity event.
    Example: 1717000000000.0000a1

  - `data.event_type` (string)
    The type of activity event.
    Enum: "contact.created", "contact.role_updated", "contact.deleted", "contact.merged", "contact.merge_failed"

  - `data.contact_id` (string)
    The unique identifier for the contact the event relates to.
    Example: 6329bd9ffe4e2e91dc5d6a1e

  - `data.external_id` (string)
    The external identifier of the contact, if one is set.
    Example: user-42

  - `data.role` (string)
    The role of the contact at the time of the event, either user, lead, or visitor.
    Example: user

  - `data.merge_source_id` (string)
    For merge events, the identifier of the contact that was merged away.
    Example: 5f7f0d217c3f2e001a4e8b12

  - `data.merge_target_id` (string)
    For merge events, the identifier of the contact that was merged into.
    Example: 6329bd9ffe4e2e91dc5d6a1e

  - `data.failure_reason` (string)
    For failed events, the reason the activity did not succeed.
    Example: duplicate_external_id

  - `data.created_at` (integer)
    The time the activity event occurred, as a Unix timestamp in seconds.
    Example: 1717000000

  - `pages` (object)
    Pagination information.

  - `pages.type` (string)
    Enum: "pages"

  - `pages.per_page` (integer)
    The number of results per page.
    Example: 10

  - `pages.next` (object)
    Cursor for the next page of results.

  - `pages.next.starting_after` (string)
    The cursor value to use for the next page.
    Example: 1717000000000.0000a1

## Response 401 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (string, required)
    A string indicating the kind of error, used to further qualify the HTTP response code
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

  - `errors.field` (string)
    Optional. Used to identify a particular field or query parameter that was in error.
    Example: email

