Skip to content

Commit ec561fb

Browse files
committed
feat(custom-objects): add list-all instances endpoint docs
Updates GET /custom_object_instances/{type}: - Replaces the undocumented external_id-only operation with a general listCustomObjectInstances operation covering all three modes: no-filter (list all), references_contact_id, references_conversation_id - Fixes external_id being incorrectly marked required=true - Adds pagination params (page, per_page) - Adds custom_object_instances_paginated_list response schema Companion: intercom/intercom#498284
1 parent b07d3c5 commit ec561fb

1 file changed

Lines changed: 93 additions & 26 deletions

File tree

descriptions/0/api.intercom.io.yaml

Lines changed: 93 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10527,30 +10527,54 @@ paths:
1052710527
order_number: ORDER-12345
1052810528
total_amount: 99.99
1052910529
get:
10530-
summary: Get Custom Object Instance by External ID
10530+
summary: List Custom Object Instances
1053110531
parameters:
10532+
- name: references_contact_id
10533+
in: query
10534+
required: false
10535+
description: Return instances associated with the given contact ID.
10536+
schema:
10537+
type: string
10538+
- name: references_conversation_id
10539+
in: query
10540+
required: false
10541+
description: Return instances associated with the given conversation ID.
10542+
schema:
10543+
type: string
1053210544
- name: external_id
1053310545
in: query
10534-
style: form
10535-
required: true
10546+
required: false
10547+
description: Return the single instance with this external ID. When provided,
10548+
the response is a single object rather than a list.
1053610549
schema:
1053710550
type: string
10538-
description: The unique identifier for the instance in the external system
10539-
it originated from.
10540-
title: Find by external_id
10541-
properties:
10542-
external_id:
10543-
type: string
10544-
required:
10545-
- external_id
10551+
- name: page
10552+
in: query
10553+
required: false
10554+
description: Page number of results to fetch.
10555+
schema:
10556+
type: integer
10557+
- name: per_page
10558+
in: query
10559+
required: false
10560+
description: Number of results per page. Maximum 150.
10561+
schema:
10562+
type: integer
10563+
maximum: 150
1054610564
- name: Intercom-Version
1054710565
in: header
1054810566
schema:
1054910567
"$ref": "#/components/schemas/intercom_version"
1055010568
tags:
1055110569
- Custom Object Instances
10552-
operationId: getCustomObjectInstancesByExternalId
10553-
description: Fetch a Custom Object Instance by external_id.
10570+
operationId: listCustomObjectInstances
10571+
description: |-
10572+
List instances of a custom object type. Three modes are supported:
10573+
- **No filter** — returns all instances for the type (requires `Intercom-Version: Preview`).
10574+
- **`references_contact_id`** — returns instances associated with the given contact.
10575+
- **`references_conversation_id`** — returns instances associated with the given conversation.
10576+
10577+
When **`external_id`** is provided, returns a single matching instance (not a list).
1055410578
responses:
1055510579
'200':
1055610580
description: successful
@@ -10559,22 +10583,40 @@ paths:
1055910583
examples:
1056010584
successful:
1056110585
value:
10562-
id: '24'
10563-
type: Order
10564-
custom_attributes:
10565-
order_number: ORDER-12345
10566-
total_amount: 99.99
10567-
external_id: '123'
10568-
external_created_at:
10569-
external_updated_at:
10570-
created_at: 1734537748
10571-
updated_at: 1734537748
10572-
schema:
10573-
"$ref": "#/components/schemas/custom_object_instance"
10586+
type: list
10587+
pages:
10588+
type: pages
10589+
page: 1
10590+
per_page: 20
10591+
total_pages: 1
10592+
total_count: 2
10593+
data:
10594+
- id: '2'
10595+
type: Order
10596+
custom_attributes:
10597+
order_number: ORDER-98765
10598+
total_amount: 149.99
10599+
external_id: order_002
10600+
external_created_at:
10601+
external_updated_at:
10602+
created_at: 1734537800
10603+
updated_at: 1734537800
10604+
- id: '1'
10605+
type: Order
10606+
custom_attributes:
10607+
order_number: ORDER-12345
10608+
total_amount: 99.99
10609+
external_id: order_001
10610+
external_created_at: 1734537100
10611+
external_updated_at: 1734537100
10612+
created_at: 1734537100
10613+
updated_at: 1734537100
10614+
schema:
10615+
"$ref": "#/components/schemas/custom_object_instances_paginated_list"
1057410616
'401':
1057510617
$ref: "#/components/responses/Unauthorized"
1057610618
'404':
10577-
$ref: "#/components/responses/ObjectNotFound"
10619+
$ref: "#/components/responses/TypeNotFound"
1057810620
delete:
1057910621
summary: Delete a Custom Object Instance by External ID
1058010622
parameters:
@@ -23413,6 +23455,31 @@ components:
2341323455
reference attribute on the parent object.
2341423456
items:
2341523457
"$ref": "#/components/schemas/custom_object_instance"
23458+
custom_object_instances_paginated_list:
23459+
title: Custom Object Instances
23460+
type: object
23461+
x-tags:
23462+
- Custom Object Instances
23463+
description: A paginated list of custom object instances.
23464+
nullable: false
23465+
properties:
23466+
type:
23467+
type: string
23468+
description: The type of the object - `list`.
23469+
enum:
23470+
- list
23471+
example: list
23472+
pages:
23473+
"$ref": "#/components/schemas/pages_link"
23474+
total_count:
23475+
type: integer
23476+
description: A count of the total number of custom object instances.
23477+
example: 2
23478+
data:
23479+
type: array
23480+
description: An array of Custom Object Instance objects.
23481+
items:
23482+
"$ref": "#/components/schemas/custom_object_instance"
2341623483
customer_request:
2341723484
type: object
2341823485
nullable: true

0 commit comments

Comments
 (0)