# List deleted contacts

Fetch a paginated list of the contacts in your workspace that are no longer active,
so you can recover ones whose `id`, `email`, or `external_id` you no longer have and
then permanently delete them. Each entry carries a `status` describing why the contact
is inactive: `archived`, `blocked`, `merged`, `pending_deletion`, or `permanently_deleted`.
`merged_into_id` is present only when `status` is `merged`, and `external_id` and `email`
are `null` for `permanently_deleted` contacts.

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

## Query parameters:

  - `per_page` (integer)
    The number of results per page. Defaults to `10`, with a maximum of `150`.

  - `page` (integer)
    The page of results to fetch. Defaults to `1`.

## Header parameters:

  - `Intercom-Version` (string)

## Response 200 fields (application/json):

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

  - `data` (array)
    The list of deleted contact objects.
    Example: [{"type":"contact","id":"5ba682d23d7cf92bef87bfd4","external_id":"70","email":"joe@example.com","role":"user","status":"archived","updated_at":1756636800}]

  - `data.type` (string)
    always contact
    Enum: "contact"

  - `data.id` (string)
    The unique identifier for the contact which is given by Intercom.
    Example: 5ba682d23d7cf92bef87bfd4

  - `data.external_id` (string)
    The unique identifier for the contact which is provided by the Client. `null` for permanently deleted contacts.
    Example: 70

  - `data.email` (string)
    The contact's email address. `null` for permanently deleted contacts.
    Example: joe@example.com

  - `data.role` (string)
    The role of the contact.
    Enum: "user", "lead"

  - `data.status` (string)
    Why the contact is no longer active.
    Enum: "archived", "blocked", "merged", "pending_deletion", "permanently_deleted"

  - `data.merged_into_id` (string)
    The id of the contact this one was merged into. Present only when `status` is `merged`.
    Example: 5ba682d23d7cf92bef87bfd9

  - `data.updated_at` (integer)
    The time the contact record was last updated as a UNIX timestamp. This is a last-modified time, not a deletion time.
    Example: 1756636800

  - `total_count` (integer)
    A count of the total number of deleted contacts.
    Example: 100

  - `pages` (object)
    Offset-based pagination metadata.
    Example: {"type":"pages","page":1,"per_page":10,"total_pages":1}

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

  - `pages.page` (integer)
    Example: 1

  - `pages.per_page` (integer)
    Example: 10

  - `pages.total_pages` (integer)
    Example: 1

## Response 400 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

## 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

