# List Custom Object Instances

List instances of a custom object type. Three modes are supported:
- **No filter** — returns all instances for the type.
- **`references_contact_id`** — returns instances associated with the given contact.
- **`references_conversation_id`** — returns instances associated with the given conversation.

When **`external_id`** is provided, returns a single matching instance (not a list).

Endpoint: GET /custom_object_instances/{custom_object_type_identifier}
Version: Preview
Security: bearerAuth

## Path parameters:

  - `custom_object_type_identifier` (string, required)
    The unique identifier of the custom object type that defines the structure of the custom object instance.

## Query parameters:

  - `references_contact_id` (string)
    Return instances associated with the given contact ID.

  - `references_conversation_id` (string)
    Return instances associated with the given conversation ID.

  - `external_id` (string)
    Return the single instance with this external ID. When provided, the response is a single object rather than a list.

  - `page` (integer)
    Page number of results to fetch.

  - `per_page` (integer)
    Number of results per page. Maximum 150.

## Header parameters:

  - `Intercom-Version` (string)

## Response 200 fields (application/json):

  - `type` (string)
    The type of the object - `list`.
    Enum: "list"

  - `pages` (object)
    The majority of list resources in the API are paginated to allow clients to traverse data over multiple requests.

Their responses are likely to contain a pages object that hosts pagination links which a client can use to paginate through the data without having to construct a query. The link relations for the pages field are as follows.

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

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

  - `pages.next` (string)
    A link to the next page of results. A response that does not contain a next link does not have further data to fetch.

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

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

  - `total_count` (integer)
    A count of the total number of custom object instances.
    Example: 2

  - `data` (array)
    An array of Custom Object Instance objects.

  - `data.id` (string)
    The Intercom defined id representing the custom object instance.
    Example: 16032025

  - `data.external_id` (string)
    The id you have defined for the custom object instance.
    Example: 0001d1c1e65a7a19e9f59ae2

  - `data.external_created_at` (integer)
    The time when the Custom Object instance was created in the external system it originated from.
    Example: 1571672154

  - `data.external_updated_at` (integer)
    The time when the Custom Object instance was last updated in the external system it originated from.
    Example: 1571672154

  - `data.created_at` (integer)
    The time the attribute was created as a UTC Unix timestamp
    Example: 1671028894

  - `data.updated_at` (integer)
    The time the attribute was last updated as a UTC Unix timestamp
    Example: 1671028894

  - `data.type` (string)
    The identifier of the custom object type that defines the structure of the custom object instance.
    Example: Order

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

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

