# 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.
Requires the `read_users_companies` or `read_write_users` OAuth scope.

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`; larger values are treated as `150`. Only the leading digits are read, so `1.5` is treated as `1`. A value that doesn't start with a positive integer, such as `0` or `abc`, returns a `400` error with code `invalid_per_page`.

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

  - `escape_identity` (boolean)
    By default, `email` values in the response are HTML-escaped (for example, `&` is returned as `&amp;`). Pass `false` to return them unescaped.

## 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` (any, required)
    A string indicating the kind of error, used to further qualify the HTTP response code. A few request validation errors send an HTTP status code as an integer here instead, for example `422`.
    Example: unauthorized

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

## 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` (any, required)
    A string indicating the kind of error, used to further qualify the HTTP response code. A few request validation errors send an HTTP status code as an integer here instead, for example `422`.
    Example: unauthorized

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

