# List side conversations

List side conversations for a given conversation. Side conversations are internal threads created by teammates from within a conversation.
Each side conversation includes its conversation parts (messages). Results are paginated.
Requires the `read_conversations` OAuth scope.

Endpoint: GET /conversations/{id}/side_conversations
Version: Preview
Security: bearerAuth

## Path parameters:

  - `id` (string, required)
    The identifier for the conversation as given by Intercom.

## Query parameters:

  - `page` (integer)
    The page number of results to return (starting from 1).

  - `per_page` (integer)
    The number of side conversations to return per page (max 50).

## Header parameters:

  - `Intercom-Version` (string)

## Response 200 fields (application/json):

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

  - `side_conversations` (array)
    An array of side conversation objects.

  - `side_conversations.side_conversation_id` (string)
    The unique identifier for the side conversation.
    Example: 456

  - `side_conversations.conversation_parts` (array)
    The conversation parts (messages) in this side conversation.

  - `side_conversations.conversation_parts.type` (string)
    Always conversation_part
    Example: conversation_part

  - `side_conversations.conversation_parts.id` (string)
    The id representing the conversation part.
    Example: 3

  - `side_conversations.conversation_parts.part_type` (string)
    The type of conversation part.
    Example: comment

  - `side_conversations.conversation_parts.body` (string)
    The message body, which may contain HTML. For Twitter, this will show a generic message regarding why the body is obscured.
    Example: <p>Okay!</p>

  - `side_conversations.conversation_parts.created_at` (integer)
    The time the conversation part was created.
    Example: 1663597223

  - `side_conversations.conversation_parts.updated_at` (integer)
    The last time the conversation part was updated.
    Example: 1663597260

  - `side_conversations.conversation_parts.notified_at` (integer)
    The time the user was notified with the conversation part.
    Example: 1663597260

  - `side_conversations.conversation_parts.assigned_to` (object)
    reference to another object

  - `side_conversations.conversation_parts.assigned_to.type` (string)
    Example: contact

  - `side_conversations.conversation_parts.assigned_to.id` (string)
    Example: 1a2b3c

  - `side_conversations.conversation_parts.author` (object)
    The author of this conversation part. Can be a Contact, Admin, or Bot.

  - `side_conversations.conversation_parts.author.type` (string)
    The type of the author
    Example: admin

  - `side_conversations.conversation_parts.author.id` (string)
    The id of the author
    Example: 274

  - `side_conversations.conversation_parts.author.name` (string)
    The name of the author
    Example: Operator

  - `side_conversations.conversation_parts.author.email` (string)
    The email of the author
    Example: operator+abcd1234@intercom.io

  - `side_conversations.conversation_parts.author.from_ai_agent` (boolean)
    If this conversation part was sent by the AI Agent
    Example: true

  - `side_conversations.conversation_parts.author.is_ai_answer` (boolean)
    If this conversation part body was generated by the AI Agent
    Example: false

  - `side_conversations.conversation_parts.attachments` (array)
    A list of attachments for the part.

  - `side_conversations.conversation_parts.attachments.type` (string)
    The type of attachment
    Example: upload

  - `side_conversations.conversation_parts.attachments.name` (string)
    The name of the attachment
    Example: example.png

  - `side_conversations.conversation_parts.attachments.url` (string)
    The URL of the attachment
    Example: https://picsum.photos/200/300

  - `side_conversations.conversation_parts.attachments.content_type` (string)
    The content type of the attachment
    Example: image/png

  - `side_conversations.conversation_parts.attachments.filesize` (integer)
    The size of the attachment
    Example: 100

  - `side_conversations.conversation_parts.attachments.width` (integer)
    The width of the attachment
    Example: 100

  - `side_conversations.conversation_parts.attachments.height` (integer)
    The height of the attachment
    Example: 100

  - `side_conversations.conversation_parts.external_id` (string)
    The external id of the conversation part
    Example: abcd1234

  - `side_conversations.conversation_parts.redacted` (boolean)
    Whether or not the conversation part has been redacted.
    Example: false

  - `side_conversations.conversation_parts.email_message_metadata` (object)
    Contains metadata if the message was sent as an email

  - `side_conversations.conversation_parts.email_message_metadata.subject` (string)
    The subject of the email
    Example: Question about my order

  - `side_conversations.conversation_parts.email_message_metadata.email_address_headers` (array)
    A list of an email address headers.

  - `side_conversations.conversation_parts.email_message_metadata.email_address_headers.type` (string)
    The type of email address header
    Example: from

  - `side_conversations.conversation_parts.email_message_metadata.email_address_headers.email_address` (string)
    The email address
    Example: jdoe@example.com

  - `side_conversations.conversation_parts.email_message_metadata.email_address_headers.name` (string)
    The name associated with the email address
    Example: Joe Example

  - `side_conversations.conversation_parts.email_message_metadata.message_id` (string)
    The unique identifier for the email message as specified in the Message-ID header
    Example: <CADKw7xrXzqSn8v3mP8K8Q8yZ6K8Q8yZ6@mail.gmail.com>

  - `side_conversations.conversation_parts.metadata` (object)
    Metadata for a conversation part

  - `side_conversations.conversation_parts.metadata.quick_reply_options` (array)
    The quick reply options sent by the Admin or bot, presented in this conversation part.

  - `side_conversations.conversation_parts.metadata.quick_reply_options.text` (string, required)
    The text to display in this quick reply option.

  - `side_conversations.conversation_parts.metadata.quick_reply_options.uuid` (string, required)
    A unique identifier for this quick reply option. This value will be available within the metadata of the comment conversation part that is created when a user clicks on this reply option.

  - `side_conversations.conversation_parts.metadata.quick_reply_uuid` (string)
    The unique identifier for the quick reply option that was clicked by the end user.
    Example: 123e4567-e89b-12d3-a456-426614174000

  - `side_conversations.conversation_parts.state` (string)
    Indicates the current state of conversation when the conversation part was created.
    Enum: "open", "closed", "snoozed"

  - `side_conversations.conversation_parts.tags` (array)
    A list of tags objects associated with the conversation part.

  - `side_conversations.conversation_parts.tags.type` (string)
    value is "tag"
    Example: tag

  - `side_conversations.conversation_parts.tags.id` (string)
    The id of the tag
    Example: 123456

  - `side_conversations.conversation_parts.tags.name` (string)
    The name of the tag
    Example: Test tag

  - `side_conversations.conversation_parts.event_details` (object)

  - `side_conversations.conversation_parts.event_details.workflow` (object)

  - `side_conversations.conversation_parts.event_details.workflow.name` (string)
    Name of the workflow
    Example: Workflow 1

  - `side_conversations.conversation_parts.event_details.attribute` (object)

  - `side_conversations.conversation_parts.event_details.attribute.name` (string)
    Name of the CDA updated
    Example: flight_category

  - `side_conversations.conversation_parts.event_details.value` (object)

  - `side_conversations.conversation_parts.event_details.value.name` (string)
    Value of the CDA updated
    Example: vip_status

  - `side_conversations.conversation_parts.event_details.action` (object)

  - `side_conversations.conversation_parts.event_details.action.name` (string)
    Name of the action
    Example: Jira Create Issue

  - `side_conversations.conversation_parts.event_details.event` (object)

  - `side_conversations.conversation_parts.event_details.event.type` (string)
    Type of the workflow event initiated
    Example: wait_finished

  - `side_conversations.conversation_parts.event_details.event.result` (string)
    Result of the workflow event
    Example: Finsihed waiting

  - `side_conversations.conversation_parts.event_details.tags_added` (array)
    Array of tag names that were added
    Example: ["feature-shopify-multi-store","second-tag"]

  - `side_conversations.conversation_parts.event_details.tags_removed` (array)
    Array of tag names that were removed
    Example: ["feature-embercom-app-serializer-limit-external-plans"]

  - `side_conversations.conversation_parts.event_details.until` (string)
    Human-readable description of snooze duration
    Example: until tomorrow

  - `side_conversations.conversation_parts.event_details.custom_until_time` (string)
    ISO timestamp for custom snooze times (null for general snoozes)
    Example: 2025-09-03T18:44:20.146Z

  - `side_conversations.conversation_parts.event_details.current_priority` (string)
    Current priority level
    Enum: "none", "low", "medium", "high", "urgent"

  - `side_conversations.conversation_parts.event_details.previous_priority` (string)
    Previous priority level
    Enum: "none", "low", "medium", "high", "urgent"

  - `side_conversations.conversation_parts.event_details.sla_name` (string)
    Name of the SLA that was applied
    Example: Premium SLA

  - `side_conversations.conversation_parts.event_details.sla_definition` (object)
    Target times configured for the SLA (in seconds)

  - `side_conversations.conversation_parts.event_details.sla_definition.first_reply_time` (integer)
    First response time target in seconds
    Example: 300

  - `side_conversations.conversation_parts.event_details.sla_definition.next_reply_time` (integer)
    Next reply time target in seconds
    Example: 600

  - `side_conversations.conversation_parts.event_details.sla_definition.resolution_time` (integer)
    Resolution time target in seconds
    Example: 3600

  - `side_conversations.conversation_parts.event_details.sla_definition.time_to_close` (integer)
    Time to close target in seconds
    Example: 7200

  - `side_conversations.conversation_parts.event_details.sla_name` (string)
    Name of the SLA
    Example: HandleConversation

  - `side_conversations.conversation_parts.event_details.sla_target_type` (string)
    Which specific target was missed
    Enum: "first_reply_time", "next_reply_time", "resolution_time", "time_to_close"

  - `side_conversations.conversation_parts.event_details.current_sla_status` (string)
    Overall SLA status
    Enum: "hit", "missed", "active", "paused", "canceled"

  - `side_conversations.conversation_parts.event_details.sla_name` (string)
    Name of the SLA being paused
    Example: Premium SLA

  - `side_conversations.conversation_parts.event_details.current_sla_status` (string)
    Overall SLA status at pause time
    Enum: "active", "hit", "missed", "canceled"

  - `side_conversations.conversation_parts.event_details.sla_name` (string)
    Name of the SLA being unpaused
    Example: Premium SLA

  - `side_conversations.conversation_parts.event_details.sla_name` (string)
    Name of the SLA that was removed
    Example: Standard SLA

  - `side_conversations.conversation_parts.event_details.call_id` (string)
    The id of the call the summary describes
    Example: 3822007689

  - `side_conversations.conversation_parts.app_package_code` (string)
    The app package code if this part was created via API. null if the part was not created via API.
    Example: test-integration

  - `side_conversations.conversation_parts.translations` (object)
    A map of the reply text keyed by locale code, with values in the same HTML format as `body`. Only present on the Preview API version and backs the `conversation.admin.replied.translated` webhook topic. The special `original` key holds the source locale code of the reply; every other key is a locale code whose value is the reply text translated into that locale. The `translations` field does not modify `body`; `body` carries the reply as authored. Available in the Preview API version only (set `Intercom-Version: Preview`).
    Example: {"original":"en","en":"<p>Hello</p>","fr":"<p>Bonjour</p>"}

  - `side_conversations.conversation_parts.translations.original` (string, required)
    The locale code identifying the language the reply was originally written in.
    Example: en

  - `side_conversations.total_count` (integer)
    The total number of conversation parts in this side conversation.
    Example: 1

  - `total_count` (integer)
    The total number of side conversations.
    Example: 1

  - `pages` (object)
    Pagination metadata.

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

  - `pages.page` (integer)
    The current page number.
    Example: 1

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

  - `pages.total_pages` (integer)
    The total number of pages.
    Example: 1

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

