Intercom

Customer messaging and support platform

developers.intercom.com ↗
Version
2.9
OpenAPI
3.0.1
Endpoints
110
Schemas
172
91
Quality
Updated
3 days ago
Customer support customer-support messaging crm
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.intercom.io
https://api.eu.intercom.io
https://api.au.intercom.io

Endpoints

Clear filters

Admins 4 endpoints

GET /admins

You can fetch a list of admins for a given workspace.

operationId: Admins_getAll

Parameters

Name In Required Type Description
Intercom-Version header optional

Responses

200

Successful response

401

Unauthorized

GET /admins
GET /admins/activity_logs

You can get a log of activities by all admins in an app.

operationId: Admins_listActivityLogs

Parameters

Name In Required Type Description
Intercom-Version header optional
created_at_after query required string

The start date that you request data for. It must be formatted as a UNIX timestamp.

created_at_before query optional string

The end date that you request data for. It must be formatted as a UNIX timestamp.

Responses

200

Successful response

401

Unauthorized

GET /admins/activity_logs
GET /admins/{id}

You can retrieve the details of a single admin.

operationId: Admins_getAdminById

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required integer

The unique identifier of a given admin

Responses

200

Admin found

401

Unauthorized

404

Admin not found

GET /admins/{id}
GET /me

You can view the currently authorised admin along with the embedded app object (a “workspace” in legacy terminology).

🚧 Single Sign On

If you are building a custom “Log in with Intercom” flow for your site, and you call the /me endpoint to identify the logged-in user, you should not accept any sign-ins from users with unverified email addresses as it poses a potential impersonation security risk.

operationId: Admins_getAdminDetails

Parameters

Name In Required Type Description
Intercom-Version header optional

Responses

200

Successful response

GET /me

Articles 2 endpoints

GET /articles

You can fetch a list of all articles by making a GET request to https://api.intercom.io/articles.

📘 How are the articles sorted and ordered?

Articles will be returned in descending order on the updated_at attribute. This means if you need to iterate through results then we’ll show the most recently updated articles first.

operationId: Articles_listAll

Parameters

Name In Required Type Description
Intercom-Version header optional

Responses

200

successful

401

Unauthorized

GET /articles
GET /articles/{id}

You can fetch the details of a single article by making a GET request to https://api.intercom.io/articles/<id>.

operationId: Articles_getById

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required integer

The unique identifier for the article which is given by Intercom.

Responses

200

Article found

401

Unauthorized

404

Article not found

GET /articles/{id}

Companies 5 endpoints

GET /companies

You can fetch a single company by passing in company_id or name.

https://api.intercom.io/companies?name={name}

https://api.intercom.io/companies?company_id={company_id}

You can fetch all companies and filter by segment_id or tag_id as a query parameter.

https://api.intercom.io/companies?tag_id={tag_id}

https://api.intercom.io/companies?segment_id={segment_id}

operationId: Companies_getAllCompanies

Parameters

Name In Required Type Description
Intercom-Version header optional
name query optional string

The name of the company to filter by.

company_id query optional string

The company_id of the company to filter by.

tag_id query optional string

The tag_id of the company to filter by.

segment_id query optional string

The segment_id of the company to filter by.

page query optional integer

The page of results to fetch. Defaults to first page

per_page query optional integer

How many results to display per page. Defaults to 15

Responses

200

Successful

401

Unauthorized

404

Company Not Found

GET /companies
GET /companies/scroll
  The `list all companies` functionality does not work well for huge datasets, and can result in errors and performance problems when paging deeply. The Scroll API provides an efficient mechanism for iterating over all companies in a dataset.
  • Each app can only have 1 scroll open at a time. You’ll get an error message if you try to have more than one open per app.
  • If the scroll isn’t used for 1 minute, it expires and calls with that scroll param will fail
  • If the end of the scroll is reached, “companies” will be empty and the scroll parameter will expire

📘 Scroll Parameter

You can get the first page of companies by simply sending a GET request to the scroll endpoint. For subsequent requests you will need to use the scroll parameter from the response.

❗️ Scroll network timeouts

Since scroll is often used on large datasets network errors such as timeouts can be encountered. When this occurs you will need to restart your scroll query as it is not possible to continue from a specific point when using scroll.

When this occurs you will see a HTTP 500 error with the following message:
“Request failed due to an internal network error. Please restart the scroll operation.”

operationId: Companies_scrollAllCompanies

Parameters

Name In Required Type Description
Intercom-Version header optional
scroll_param query optional string

Responses

200

Successful

401

Unauthorized

GET /companies/scroll
GET /companies/{id}

You can fetch a single company.

operationId: Companies_getById

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required string

The unique identifier for the company which is given by Intercom

Responses

200

Successful

401

Unauthorized

404

Company Not Found

GET /companies/{id}
GET /companies/{id}/segments

You can fetch a list of all segments that belong to a company.

operationId: Companies_listAttachedSegments

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required string

The unique identifier for the company which is given by Intercom

Responses

200

Successful

401

Unauthorized

404

Company Not Found

GET /companies/{id}/segments
GET /companies/{id}/contacts

You can fetch a list of all contacts that belong to a company.

operationId: Companies_listAttachedContacts

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required string

The unique identifier for the company which is given by Intercom

Responses

200

Successful

401

Unauthorized

404

Company Not Found

GET /companies/{id}/contacts

Contacts 6 endpoints

GET /contacts

You can fetch a list of all contacts.

operationId: Contacts_listAllContacts

Parameters

Name In Required Type Description
Intercom-Version header optional

Responses

200

successful

401

Unauthorized

GET /contacts
GET /contacts/{id}

You can fetch the details of a single contact.

operationId: Contacts_getById

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required string

id

Responses

200

successful

401

Unauthorized

GET /contacts/{id}
GET /contacts/{id}/companies

You can fetch a list of companies that are associated to a contact.

operationId: Contacts_listAttachedCompanies

Parameters

Name In Required Type Description
id path required string

The unique identifier for the contact which is given by Intercom

Intercom-Version header optional

Responses

200

successful

401

Unauthorized

404

Contact not found

GET /contacts/{id}/companies
GET /contacts/{contact_id}/segments

You can fetch a list of segments that are associated to a contact.

operationId: Contacts_getSegmentsForContact

Parameters

Name In Required Type Description
contact_id path required string

The unique identifier for the contact which is given by Intercom

Intercom-Version header optional

Responses

200

successful

401

Unauthorized

404

Contact not found

GET /contacts/{contact_id}/segments
GET /contacts/{contact_id}/subscriptions

You can fetch a list of subscription types that are attached to a contact. These can be subscriptions that a user has ‘opted-in’ to or has ‘opted-out’ from, depending on the subscription type.
This will return a list of Subscription Type objects that the contact is associated with.

The data property will show a combined list of:

1.Opt-out subscription types that the user has opted-out from.
2.Opt-in subscription types that the user has opted-in to receiving.

operationId: Contacts_listContactSubscriptions

Parameters

Name In Required Type Description
contact_id path required string

The unique identifier for the contact which is given by Intercom

Intercom-Version header optional

Responses

200

Successful

401

Unauthorized

404

Contact not found

GET /contacts/{contact_id}/subscriptions
GET /contacts/{contact_id}/tags

You can fetch a list of all tags that are attached to a specific contact.

operationId: Contacts_getContactTags

Parameters

Name In Required Type Description
Intercom-Version header optional
contact_id path required string

The unique identifier for the contact which is given by Intercom

Responses

200

successful

401

Unauthorized

404

Contact not found

GET /contacts/{contact_id}/tags

Conversations 2 endpoints

GET /conversations

You can fetch a list of all conversations.

You can optionally request the result page size and the cursor to start after to fetch the result

operationId: Conversations_listAllConversations

Parameters

Name In Required Type Description
Intercom-Version header optional
per_page query optional integer

How many results per page

starting_after query optional string

String used to get the next page of conversations.

Responses

200

successful

401

Unauthorized

403

API plan restricted

GET /conversations
GET /conversations/{id}

You can fetch the details of a single conversation.

This will return a single Conversation model with all its conversation parts.

{% admonition type=”warning” name=”Hard limit of 500 parts” %}
The maximum number of conversation parts that can be returned via the API is 500. If you have more than that we will return the 500 most recent conversation parts.
{% /admonition %}

Bot Name in Conversation Parts

For conversation parts generated by a bot, bot name will depend on the following:

  • Customers that never turned on AI answers will have operator as the bot name
  • Customers that have turned on AI answers at some point will have fin as the bot name
operationId: Conversations_getById

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required integer

The id of the conversation to target

display_as query optional string

Set to plaintext to retrieve conversation messages in plain text.

Responses

200

conversation found

401

Unauthorized

403

API plan restricted

404

Not found

GET /conversations/{id}

Dataattributes 1 endpoints

GET /data_attributes

You can fetch a list of all data attributes belonging to a workspace for contacts, companies or conversations.

operationId: DataAttributes_listAll

Parameters

Name In Required Type Description
Intercom-Version header optional
model query optional string

Specify the data attribute model to return.

include_archived query optional boolean

Include archived attributes in the list. By default we return only non archived data attributes.

Responses

200

Successful response

401

Unauthorized

GET /data_attributes

Dataevents 1 endpoints

GET /events

🚧

Please note that you can only ‘list’ events that are less than 90 days old. Event counts and summaries will still include your events older than 90 days but you cannot ‘list’ these events individually if they are older than 90 days

The events belonging to a customer can be listed by sending a GET request to https://api.intercom.io/events with a user or lead identifier along with a type parameter. The identifier parameter can be one of user_id, email or intercom_user_id. The type parameter value must be user.

  • https://api.intercom.io/events?type=user&user_id={user_id}
  • https://api.intercom.io/events?type=user&email={email}
  • https://api.intercom.io/events?type=user&intercom_user_id={id} (this call can be used to list leads)

The email parameter value should be url encoded when sending.

You can optionally define the result page size as well with the per_page parameter.

operationId: DataEvents_listUserEvents

Parameters

Name In Required Type Description
Intercom-Version header optional
filter query required object
type query required string

The value must be user

summary query optional boolean

summary flag

Responses

200

Successful response

401

Unauthorized

GET /events

Dataexport 2 endpoints

GET /download/content/data/{job_identifier}

When a job has a status of complete, and thus a filled download_url, you can download your data by hitting that provided URL, formatted like so: https://api.intercom.io/download/content/data/xyz1234.

Your exported message data will be streamed continuously back down to you in a gzipped CSV format.

📘 Octet header required

You will have to specify the header Accept: application/octet-stream when hitting this endpoint.

operationId: DataExport_downloadDataExport

Parameters

Name In Required Type Description
Intercom-Version header optional
job_identifier path required string

job_identifier

Responses

200

successful

GET /download/content/data/{job_identifier}
GET /export/content/data/{job_identifier}

You can view the status of your job by sending a GET request to the URL
https://api.intercom.io/export/content/data/{job_identifier} - the {job_identifier} is the value returned in the response when you first created the export job. More on it can be seen in the Export Job Model.

🚧 Jobs expire after two days
All jobs that have completed processing (and are thus available to download from the provided URL) will have an expiry limit of two days from when the export ob completed. After this, the data will no longer be available.

operationId: DataExport_statusByJobIdentifier

Parameters

Name In Required Type Description
Intercom-Version header optional
job_identifier path required string

job_identifier

Responses

200

successful

GET /export/content/data/{job_identifier}

Helpcenter 6 endpoints

GET /help_center/collections

You can fetch a list of all collections by making a GET request to https://api.intercom.io/help_center/collections.

Collections will be returned in descending order on the updated_at attribute. This means if you need to iterate through results then we’ll show the most recently updated collections first.

operationId: HelpCenter_listAllCollections

Parameters

Name In Required Type Description
Intercom-Version header optional

Responses

200

Successful

401

Unauthorized

GET /help_center/collections
GET /help_center/collections/{id}

You can fetch the details of a single collection by making a GET request to https://api.intercom.io/help_center/collections/<id>.

operationId: HelpCenter_getCollection

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required integer

The unique identifier for the collection which is given by Intercom.

Responses

200

Collection found

401

Unauthorized

404

Collection not found

GET /help_center/collections/{id}
GET /help_center/help_centers

You can list all Help Centers by making a GET request to https://api.intercom.io/help_center/help_centers.

operationId: HelpCenter_listAllHelpCenters

Parameters

Name In Required Type Description
Intercom-Version header optional

Responses

200

Help Centers found

401

Unauthorized

GET /help_center/help_centers
GET /help_center/help_centers/{id}

You can fetch the details of a single Help Center by making a GET request to https://api.intercom.io/help_center/help_center/<id>.

operationId: HelpCenter_getDetails

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required integer

The unique identifier for the collection which is given by Intercom.

Responses

200

Collection found

401

Unauthorized

404

Collection not found

GET /help_center/help_centers/{id}
GET /help_center/sections

You can fetch a list of all sections by making a GET request to https://api.intercom.io/help_center/sections.

📘 How are the sections sorted and ordered?

Sections will be returned in descending order on the updated_at attribute. This means if you need to iterate through results then we’ll show the most recently updated sections first.

operationId: HelpCenter_listAllSections

Parameters

Name In Required Type Description
Intercom-Version header optional

Responses

200

Successful

401

Unauthorized

GET /help_center/sections
GET /help_center/sections/{id}

You can fetch the details of a single section by making a GET request to https://api.intercom.io/help_center/sections/<id>.

operationId: HelpCenter_getSectionById

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required integer

The unique identifier for the section which is given by Intercom.

Responses

200

Section found

401

Unauthorized

404

Section not found

GET /help_center/sections/{id}

News 5 endpoints

GET /news/news_items

You can fetch a list of all news items

operationId: News_listAllNewsItems

Parameters

Name In Required Type Description
Intercom-Version header optional

Responses

200

successful

401

Unauthorized

GET /news/news_items
GET /news/news_items/{id}

You can fetch the details of a single news item.

operationId: News_getItem

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required integer

The unique identifier for the news item which is given by Intercom.

Responses

200

successful

401

Unauthorized

404

News Item Not Found

GET /news/news_items/{id}
GET /news/newsfeeds

You can fetch a list of all newsfeeds

operationId: News_listAllNewsfeeds

Parameters

Name In Required Type Description
Intercom-Version header optional

Responses

200

successful

401

Unauthorized

GET /news/newsfeeds
GET /news/newsfeeds/{id}

You can fetch the details of a single newsfeed

operationId: News_getNewsfeed

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required string

The unique identifier for the news feed item which is given by Intercom.

Responses

200

successful

401

Unauthorized

GET /news/newsfeeds/{id}
GET /news/newsfeeds/{id}/items

You can fetch a list of all news items that are live on a given newsfeed

operationId: News_listLiveItems

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required string

The unique identifier for the news feed item which is given by Intercom.

Responses

200

successful

401

Unauthorized

GET /news/newsfeeds/{id}/items

Notes 2 endpoints

GET /notes/{id}

You can fetch the details of a single note.

operationId: Notes_getNoteDetails

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required integer

The unique identifier of a given note

Responses

200

Note found

401

Unauthorized

404

Note not found

GET /notes/{id}
GET /contacts/{id}/notes

You can fetch a list of notes that are associated to a contact.

operationId: Notes_listAll

Parameters

Name In Required Type Description
id path required integer

The unique identifier of a contact.

Intercom-Version header optional

Responses

200

Successful response

404

Contact not found

GET /contacts/{id}/notes

Segments 2 endpoints

GET /segments

You can fetch a list of all segments.

operationId: Segments_listAll

Parameters

Name In Required Type Description
Intercom-Version header optional
include_count query optional boolean

It includes the count of contacts that belong to each segment.

Responses

200

Successful response

401

Unauthorized

GET /segments
GET /segments/{id}

You can fetch the details of a single segment.

operationId: Segments_getById

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required string

The unique identified of a given segment.

Responses

200

Successful response

401

Unauthorized

404

Segment not found

GET /segments/{id}

Subscriptiontypes 1 endpoints

GET /subscription_types

You can list all subscription types. A list of subscription type objects will be returned.

operationId: SubscriptionTypes_list

Parameters

Name In Required Type Description
Intercom-Version header optional

Responses

200

Successful

401

Unauthorized

GET /subscription_types

Tags 2 endpoints

GET /tags

You can fetch a list of all tags for a given workspace.

operationId: Tags_getAllTags

Parameters

Name In Required Type Description
Intercom-Version header optional

Responses

200

successful

401

Unauthorized

GET /tags
GET /tags/{id}

You can fetch the details of tags that are on the workspace by their id.
This will return a tag object.

operationId: Tags_findSpecificTag

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required string

The unique identifier of a given tag

Responses

200

Tag found

401

Unauthorized

404

Tag not found

GET /tags/{id}

Teams 2 endpoints

GET /teams

This will return a list of team objects for the App.

operationId: Teams_getAll

Parameters

Name In Required Type Description
Intercom-Version header optional

Responses

200

successful

401

Unauthorized

GET /teams
GET /teams/{id}

You can fetch the details of a single team, containing an array of admins that belong to this team.

operationId: Teams_getDetails

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required string

The unique identifier of a given team.

Responses

200

successful

401

Unauthorized

404

Team not found

GET /teams/{id}

Tickettypes 2 endpoints

GET /ticket_types

You can get a list of all ticket types for a workspace.

operationId: TicketTypes_listAll

Parameters

Name In Required Type Description
Intercom-Version header optional

Responses

200

successful

401

Unauthorized

GET /ticket_types
GET /ticket_types/{id}

You can fetch the details of a single ticket type.

operationId: TicketTypes_getDetails

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required string

The unique identifier for the ticket type which is given by Intercom.

Responses

200

Ticket type found

401

Unauthorized

GET /ticket_types/{id}

Tickets 1 endpoints

GET /tickets/{id}

You can fetch the details of a single ticket.

operationId: Tickets_getTicketDetails

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required string

The unique identifier for the ticket which is given by Intercom.

Responses

200

Ticket found

401

Unauthorized

GET /tickets/{id}

Visitors 2 endpoints

GET /visitors

You can fetch the details of a single visitor.

operationId: Visitors_getWithUserId

Parameters

Name In Required Type Description
Intercom-Version header optional
user_id query required string

The user_id of the Visitor you want to retrieve.

Responses

200

successful

401

Unauthorized

404

Visitor not found

GET /visitors
GET /visitors/{id}

You can fetch the details of a single visitor.

operationId: Visitors_getById

Parameters

Name In Required Type Description
Intercom-Version header optional
id path required string

Id provided by Intercom.

Responses

200

successful

401

Unauthorized

404

Visitor not found

GET /visitors/{id}

Schemas

object AdminsSetAdminAwayRequest
{
  "type": "object",
  "required": [
    "away_mode_enabled",
    "away_mode_reassign"
  ],
  "properties": {
    "away_mode_enabled": {
      "type": "boolean",
      "default": true,
      "example": true,
      "description": "Set to \"true\" to change the status of the admin to away."
    },
    "away_mode_reassign": {
      "type": "boolean",
      "default": false,
      "example": false,
      "description": "Set to \"true\" to assign any new conversation replies to your default inbox."
    }
  }
}
object CompaniesAttachContactToRequest
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "58a430d35458202d41b1e65b",
      "description": "The unique identifier for the company which is given by Intercom"
    }
  }
}
object ContactsCreateNewContactRequest
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/create_contact_request"
    }
  ]
}
object ContactsUpdateContactRequest
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/update_contact_request"
    }
  ]
}
object ConversationsManageConversationRequest
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/close_conversation_request"
    },
    {
      "$ref": "#/components/schemas/snooze_conversation_request"
    },
    {
      "$ref": "#/components/schemas/open_conversation_request"
    },
    {
      "$ref": "#/components/schemas/assign_conversation_request"
    }
  ]
}
object NotesAddNoteToContactRequest
{
  "type": "object",
  "required": [
    "body"
  ],
  "properties": {
    "body": {
      "type": "string",
      "example": "New note",
      "description": "The text of the note."
    },
    "admin_id": {
      "type": "string",
      "example": "123",
      "description": "The unique identifier of a given admin."
    },
    "contact_id": {
      "type": "string",
      "example": "123",
      "description": "The unique identifier of a given contact."
    }
  }
}
object SubscriptionTypesAddSubscriptionToContactRequest
{
  "type": "object",
  "required": [
    "id",
    "consent_type"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "37846",
      "description": "The unique identifier for the subscription which is given by Intercom"
    },
    "consent_type": {
      "type": "string",
      "example": "opt_in",
      "description": "The consent_type of a subscription, opt_out or opt_in."
    }
  }
}
object SwitchDeflectPhoneCalls422Response
{
  "type": "object",
  "example": {
    "error_key": "some_error"
  },
  "properties": {
    "error_key": {
      "type": "string",
      "example": "some_error"
    }
  }
}
object SwitchDeflectPhoneCallsResponse
{
  "type": "object",
  "example": {
    "message": "SMS was not sent due to an unknown error",
    "error_key": "sms_failed"
  },
  "properties": {
    "message": {
      "type": "string",
      "example": "SMS was not sent due to an unknown error"
    },
    "error_key": {
      "type": "string",
      "example": "sms_failed"
    }
  }
}
object TagsAddTagToContactRequest
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "7522907",
      "description": "The unique identifier for the tag which is given by Intercom"
    }
  }
}
object TagsAddTagToConversationRequest
{
  "type": "object",
  "required": [
    "id",
    "admin_id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "7522907",
      "description": "The unique identifier for the tag which is given by Intercom"
    },
    "admin_id": {
      "type": "string",
      "example": "780",
      "description": "The unique identifier for the admin which is given by Intercom."
    }
  }
}
object TagsCreateOrUpdateTagRequest
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/create_or_update_tag_request"
    },
    {
      "$ref": "#/components/schemas/tag_company_request"
    },
    {
      "$ref": "#/components/schemas/untag_company_request"
    },
    {
      "$ref": "#/components/schemas/tag_multiple_users_request"
    }
  ]
}
object TagsRemoveFromConversationRequest
{
  "type": "object",
  "required": [
    "admin_id"
  ],
  "properties": {
    "admin_id": {
      "type": "string",
      "example": "123",
      "description": "The unique identifier for the admin which is given by Intercom."
    }
  }
}
object TicketsUpdateTicketByIdResponse
{
  "type": "object",
  "example": {
    "type": "error.list",
    "errors": [
      {
        "code": "assignee_not_found",
        "message": "Assignee not found"
      }
    ],
    "request_id": "752fe552-f009-4e9e-b08a-0cbf6ff78c9b"
  },
  "properties": {
    "type": {
      "type": "string",
      "example": "error.list"
    },
    "errors": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "example": "assignee_not_found"
          },
          "message": {
            "type": "string",
            "example": "Assignee not found"
          }
        }
      }
    },
    "request_id": {
      "type": "string",
      "example": "752fe552-f009-4e9e-b08a-0cbf6ff78c9b"
    }
  }
}
object activity_log
{
  "type": "object",
  "title": "Activity Log",
  "nullable": true,
  "properties": {
    "id": {
      "type": "string",
      "example": "6",
      "description": "The id representing the activity."
    },
    "metadata": {
      "type": "object"
    },
    "created_at": {
      "type": "integer",
      "format": "date-time",
      "example": 1671028894,
      "description": "The time the activity was created."
    },
    "performed_by": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "1295",
          "description": "The id representing the admin."
        },
        "ip": {
          "type": "string",
          "example": "198.51.100.255",
          "description": "The IP address of the admin."
        },
        "type": {
          "type": "string",
          "example": "admin",
          "description": "String representing the object's type. Always has the value `admin`."
        },
        "email": {
          "type": "string",
          "example": "john@example.com",
          "description": "The email of the admin."
        }
      },
      "description": "An object representing the admin who performed the activity."
    },
    "activity_type": {
      "enum": [
        "admin_assignment_limit_change",
        "admin_away_mode_change",
        "admin_deletion",
        "admin_deprovisioned",
        "admin_impersonation_end",
        "admin_impersonation_start",
        "admin_invite_change",
        "admin_invite_creation",
        "admin_invite_deletion",
        "admin_login_failure",
        "admin_login_success",
        "admin_logout",
        "admin_password_reset_request",
        "admin_password_reset_success",
        "admin_permission_change",
        "admin_provisioned",
        "admin_two_factor_auth_change",
        "admin_unauthorized_sign_in_method",
        "app_admin_join",
        "app_authentication_method_change",
        "app_data_deletion",
        "app_data_export",
        "app_google_sso_domain_change",
        "app_identity_verification_change",
        "app_name_change",
        "app_outbound_address_change",
        "app_package_installation",
        "app_package_token_regeneration",
        "app_package_uninstallation",
        "app_team_creation",
        "app_team_deletion",
        "app_team_membership_modification",
        "app_timezone_change",
        "app_webhook_creation",
        "app_webhook_deletion",
        "articles_in_messenger_enabled_change",
        "bulk_delete",
        "bulk_export",
        "campaign_deletion",
        "campaign_state_change",
        "conversation_part_deletion",
        "conversation_topic_change",
        "conversation_topic_creation",
        "conversation_topic_deletion",
        "help_center_settings_change",
        "inbound_conversations_change",
        "inbox_access_change",
        "message_deletion",
        "message_state_change",
        "messenger_look_and_feel_change",
        "messenger_search_required_change",
        "messenger_spaces_change",
        "office_hours_change",
        "role_change",
        "role_creation",
        "role_deletion",
        "ruleset_activation_title_preview",
        "ruleset_creation",
        "ruleset_deletion",
        "search_browse_enabled_change",
        "search_browse_required_change",
        "seat_change",
        "seat_revoke",
        "security_settings_change",
        "temporary_expectation_change",
        "upfront_email_collection_change",
        "welcome_message_change"
      ],
      "type": "string",
      "example": "app_name_change"
    },
    "activity_description": {
      "type": "string",
      "example": "Admin updated the app's name to \"My App\".",
      "description": "A sentence or two describing the activity."
    }
  },
  "description": "Activities performed by admins."
}
object activity_log_list
{
  "type": "object",
  "title": "Paginated Response",
  "properties": {
    "type": {
      "type": "string",
      "example": "activity_log.list",
      "description": "String representing the object's type. Always has the value `activity_log.list`."
    },
    "pages": {
      "$ref": "#/components/schemas/cursor_pages"
    },
    "activity_logs": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/activity_log"
      },
      "description": "An array of activity logs"
    }
  },
  "description": "A paginated list of activity logs."
}
object addressable_list
{
  "type": "object",
  "title": "Addressable List",
  "nullable": false,
  "properties": {
    "id": {
      "type": "string",
      "example": "123",
      "description": "The id of the addressable object"
    },
    "url": {
      "type": "string",
      "format": "uri",
      "example": "/contacts/5ba682d23d7cf92bef87bfd4/notes",
      "description": "Url to get more company resources for this contact"
    },
    "type": {
      "type": "string",
      "format": "uri",
      "example": "note",
      "description": "The addressable object type"
    }
  },
  "description": "A list used to access other resources from a parent model."
}
object admin
{
  "type": "object",
  "title": "Admin",
  "x-tags": [
    "Admins"
  ],
  "nullable": true,
  "properties": {
    "id": {
      "type": "string",
      "example": "1295",
      "description": "The id representing the admin."
    },
    "name": {
      "type": "string",
      "example": "Hoban Washburne",
      "description": "The name of the admin."
    },
    "type": {
      "type": "string",
      "example": "admin",
      "description": "String representing the object's type. Always has the value `admin`."
    },
    "email": {
      "type": "string",
      "example": "wash@serenity.io",
      "description": "The email of the admin."
    },
    "avatar": {
      "type": "string",
      "format": "uri",
      "example": "https://picsum.photos/200/300",
      "nullable": true,
      "description": "Image for the associated team or teammate"
    },
    "team_ids": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "example": [
        814865
      ],
      "description": "This object represents the avatar associated with the admin."
    },
    "job_title": {
      "type": "string",
      "example": "Philosopher",
      "description": "The job title of the admin."
    },
    "has_inbox_seat": {
      "type": "boolean",
      "example": true,
      "description": "Identifies if this admin has a paid inbox seat to restrict/allow features that require them."
    },
    "away_mode_enabled": {
      "type": "boolean",
      "example": false,
      "description": "Identifies if this admin is currently set in away mode."
    },
    "away_mode_reassign": {
      "type": "boolean",
      "example": false,
      "description": "Identifies if this admin is set to automatically reassign new conversations to the apps default inbox."
    },
    "team_priority_level": {
      "$ref": "#/components/schemas/team_priority_level"
    }
  },
  "description": "Admins are teammate accounts that have access to a workspace."
}
object admin_list
{
  "type": "object",
  "title": "Admins",
  "properties": {
    "type": {
      "type": "string",
      "example": "admin.list",
      "description": "String representing the object's type. Always has the value `admin.list`."
    },
    "admins": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/admin"
      },
      "description": "A list of admins associated with a given workspace."
    }
  },
  "description": "A list of admins associated with a given workspace."
}
object admin_priority_level
{
  "type": "object",
  "title": "Admin Priority Level",
  "nullable": true,
  "properties": {
    "primary_admin_ids": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "example": [
        493881
      ],
      "nullable": true,
      "description": "The primary admin ids for the team"
    },
    "secondary_admin_ids": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "example": [
        814865
      ],
      "nullable": true,
      "description": "The secondary admin ids for the team"
    }
  },
  "description": "Admin priority levels for the team"
}
object admin_reply_conversation_request
{
  "type": "object",
  "title": "Admin Reply",
  "required": [
    "message_type",
    "type",
    "admin_id"
  ],
  "properties": {
    "body": {
      "type": "string",
      "example": "Hello there!",
      "description": "The text body of the reply. Notes accept some HTML formatting. Must be present for comment and note message types."
    },
    "type": {
      "enum": [
        "admin"
      ],
      "type": "string",
      "example": "admin"
    },
    "admin_id": {
      "type": "string",
      "example": "3156780",
      "description": "The id of the admin who is authoring the comment."
    },
    "created_at": {
      "type": "integer",
      "example": 1590000000,
      "description": "The time the reply was created. If not provided, the current time will be used."
    },
    "message_type": {
      "enum": [
        "comment",
        "note"
      ],
      "type": "string"
    },
    "attachment_urls": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      },
      "maxItems": 10,
      "description": "A list of image URLs that will be added as attachments. You can include up to 10 URLs."
    },
    "attachment_files": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/conversation_attachment_files"
      },
      "maxItems": 10,
      "description": "A list of files that will be added as attachments. You can include up to 10 files"
    }
  },
  "description": "Payload of the request to reply on behalf of an admin"
}
object admin_with_app
{
  "type": "object",
  "title": "Admin",
  "nullable": true,
  "properties": {
    "id": {
      "type": "string",
      "example": "1295",
      "description": "The id representing the admin."
    },
    "app": {
      "$ref": "#/components/schemas/app",
      "nullable": true,
      "description": "App that the admin belongs to."
    },
    "name": {
      "type": "string",
      "example": "Hoban Washburne",
      "description": "The name of the admin."
    },
    "type": {
      "type": "string",
      "example": "admin",
      "description": "String representing the object's type. Always has the value `admin`."
    },
    "email": {
      "type": "string",
      "example": "wash@serenity.io",
      "description": "The email of the admin."
    },
    "avatar": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "default": "avatar",
          "example": "avatar",
          "description": "This is a string that identifies the type of the object. It will always have the value `avatar`."
        },
        "image_url": {
          "type": "string",
          "format": "uri",
          "example": "https://example.com/avatar.png",
          "nullable": true,
          "description": "This object represents the avatar associated with the admin."
        }
      },
      "description": "This object represents the avatar associated with the admin."
    },
    "team_ids": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "example": [
        814865
      ],
      "description": "This is a list of ids of the teams that this admin is part of."
    },
    "job_title": {
      "type": "string",
      "example": "Philosopher",
      "description": "The job title of the admin."
    },
    "email_verified": {
      "type": "boolean",
      "example": true,
      "nullable": true,
      "description": "Identifies if this admin's email is verified."
    },
    "has_inbox_seat": {
      "type": "boolean",
      "example": true,
      "description": "Identifies if this admin has a paid inbox seat to restrict/allow features that require them."
    },
    "away_mode_enabled": {
      "type": "boolean",
      "example": false,
      "description": "Identifies if this admin is currently set in away mode."
    },
    "away_mode_reassign": {
      "type": "boolean",
      "example": false,
      "description": "Identifies if this admin is set to automatically reassign new conversations to the apps default inbox."
    }
  },
  "description": "Admins are the teammate accounts that have access to a workspace"
}
object app
{
  "type": "object",
  "title": "App",
  "nullable": true,
  "properties": {
    "name": {
      "type": "string",
      "example": "ACME",
      "description": "The name of the app."
    },
    "type": {
      "type": "string",
      "default": "app",
      "example": "app",
      "description": ""
    },
    "region": {
      "type": "string",
      "example": "US",
      "description": "The Intercom region the app is located in."
    },
    "id_code": {
      "type": "string",
      "example": "xyz789",
      "description": "The id of the app."
    },
    "timezone": {
      "type": "string",
      "example": "America/Los_Angeles",
      "description": "The timezone of the region where the app is located."
    },
    "created_at": {
      "type": "integer",
      "example": 1671465577,
      "description": "When the app was created."
    },
    "identity_verification": {
      "type": "boolean",
      "example": false,
      "description": "Whether or not the app uses identity verification."
    }
  },
  "description": "App is a workspace on Intercom"
}
object article_content
{
  "type": "object",
  "title": "Article Content",
  "nullable": true,
  "properties": {
    "url": {
      "type": "string",
      "example": "http://intercom.test/help/en/articles/3-default-language",
      "description": "The URL of the article."
    },
    "body": {
      "type": "string",
      "example": "This is the body of the article.",
      "description": "The body of the article."
    },
    "type": {
      "enum": [
        null,
        "article_content"
      ],
      "type": "string",
      "example": "article_content",
      "nullable": true,
      "description": "The type of object - `article_content` ."
    },
    "state": {
      "enum": [
        "published",
        "draft"
      ],
      "type": "string",
      "example": "draft",
      "description": "Whether the article is `published` or is a `draft` ."
    },
    "title": {
      "type": "string",
      "example": "How to create a new article",
      "description": "The title of the article."
    },
    "author_id": {
      "type": "integer",
      "example": 5017691,
      "description": "The ID of the author of the article."
    },
    "created_at": {
      "type": "integer",
      "format": "date-time",
      "example": 1663597223,
      "description": "The time when the article was created (seconds)."
    },
    "updated_at": {
      "type": "integer",
      "format": "date-time",
      "example": 1663597260,
      "description": "The time when the article was last updated (seconds)."
    },
    "description": {
      "type": "string",
      "example": "This article will show you how to create a new article.",
      "description": "The description of the article."
    }
  },
  "description": "The Content of an Article."
}
object article_list
{
  "type": "object",
  "title": "Articles",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/article_list_item"
      },
      "description": "An array of Article objects"
    },
    "type": {
      "enum": [
        "list"
      ],
      "type": "string",
      "example": "list",
      "description": "The type of the object - `list`."
    },
    "pages": {
      "$ref": "#/components/schemas/cursor_pages"
    },
    "total_count": {
      "type": "integer",
      "example": 1,
      "description": "A count of the total number of articles."
    }
  },
  "description": "This will return a list of articles for the App."
}
object article_list_item
{
  "type": "object",
  "title": "Articles",
  "x-tags": [
    "Articles"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "6871119",
      "description": "The unique identifier for the article which is given by Intercom."
    },
    "url": {
      "type": "string",
      "example": "http://intercom.test/help/en/articles/3-default-language",
      "nullable": true,
      "description": "The URL of the article. For multilingual articles, this will be the URL of the default language's content."
    },
    "body": {
      "type": "string",
      "example": "Default language body in html",
      "nullable": true,
      "description": "The body of the article in HTML. For multilingual articles, this will be the body of the default language's content."
    },
    "type": {
      "enum": [
        "article"
      ],
      "type": "string",
      "default": "article",
      "example": "article",
      "description": "The type of object - `article`."
    },
    "state": {
      "enum": [
        "published",
        "draft"
      ],
      "type": "string",
      "default": "draft",
      "example": "published",
      "description": "Whether the article is `published` or is a `draft`. For multilingual articles, this will be the state of the default language's content."
    },
    "title": {
      "type": "string",
      "example": "Default language title",
      "description": "The title of the article. For multilingual articles, this will be the title of the default language's content."
    },
    "author_id": {
      "type": "integer",
      "example": 5017691,
      "description": "The id of the author of the article. For multilingual articles, this will be the id of the author of the default language's content. Must be a teammate on the help center's workspace."
    },
    "parent_id": {
      "type": "integer",
      "example": 125685,
      "nullable": true,
      "description": "The id of the article's parent collection or section. An article without this field stands alone."
    },
    "created_at": {
      "type": "integer",
      "format": "date-time",
      "example": 1672928359,
      "description": "The time when the article was created. For multilingual articles, this will be the timestamp of creation of the default language's content in seconds."
    },
    "parent_ids": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "example": [
        18,
        19
      ],
      "description": "The ids of the article's parent collections or sections. An article without this field stands alone."
    },
    "updated_at": {
      "type": "integer",
      "format": "date-time",
      "example": 1672928610,
      "description": "The time when the article was last updated. For multilingual articles, this will be the timestamp of last update of the default language's content in seconds."
    },
    "description": {
      "type": "string",
      "example": "Default language description",
      "nullable": true,
      "description": "The description of the article. For multilingual articles, this will be the description of the default language's content."
    },
    "parent_type": {
      "type": "string",
      "example": "collection",
      "nullable": true,
      "description": "The type of parent, which can either be a `collection` or `section`."
    },
    "workspace_id": {
      "type": "string",
      "example": "hfi1bx4l",
      "description": "The id of the workspace which the article belongs to."
    },
    "default_locale": {
      "type": "string",
      "example": "en",
      "description": "The default locale of the help center. This field is only returned for multilingual help centers."
    },
    "translated_content": {
      "$ref": "#/components/schemas/article_translated_content",
      "nullable": true
    }
  },
  "description": "The data returned about your articles when you list them."
}
object article_statistics
{
  "type": "object",
  "title": "Article Statistics",
  "nullable": true,
  "properties": {
    "type": {
      "enum": [
        "article_statistics"
      ],
      "type": "string",
      "default": "article_statistics",
      "example": "article_statistics",
      "description": "The type of object - `article_statistics`."
    },
    "views": {
      "type": "integer",
      "example": 10,
      "description": "The number of total views the article has received."
    },
    "reactions": {
      "type": "integer",
      "example": 10,
      "description": "The number of total reactions the article has received."
    },
    "conversions": {
      "type": "integer",
      "example": 0,
      "description": "The number of conversations started from the article."
    },
    "sad_reaction_percentage": {
      "type": "number",
      "format": "float",
      "example": 20,
      "description": "The percentage of sad reactions the article has received against other types of reaction."
    },
    "happy_reaction_percentage": {
      "type": "number",
      "format": "float",
      "example": 40,
      "description": "The percentage of happy reactions the article has received against other types of reaction."
    },
    "neutral_reaction_percentage": {
      "type": "number",
      "format": "float",
      "example": 40,
      "description": "The percentage of neutral reactions the article has received against other types of reaction."
    }
  },
  "description": "The statistics of an article."
}
object article_translated_content
{
  "type": "object",
  "title": "Article Translated Content",
  "nullable": true,
  "properties": {
    "ar": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Arabic"
    },
    "bg": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Bulgarian"
    },
    "bs": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Bosnian"
    },
    "ca": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Catalan"
    },
    "cs": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Czech"
    },
    "da": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Danish"
    },
    "de": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in German"
    },
    "el": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Greek"
    },
    "en": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in English"
    },
    "es": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Spanish"
    },
    "et": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Estonian"
    },
    "fi": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Finnish"
    },
    "fr": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in French"
    },
    "he": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Hebrew"
    },
    "hr": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Croatian"
    },
    "hu": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Hungarian"
    },
    "id": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Indonesian"
    },
    "it": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Italian"
    },
    "ja": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Japanese"
    },
    "ko": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Korean"
    },
    "lt": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Lithuanian"
    },
    "lv": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Latvian"
    },
    "mn": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Mongolian"
    },
    "nb": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Norwegian"
    },
    "nl": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Dutch"
    },
    "pl": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Polish"
    },
    "pt": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Portuguese (Portugal)"
    },
    "ro": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Romanian"
    },
    "ru": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Russian"
    },
    "sl": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Slovenian"
    },
    "sr": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Serbian"
    },
    "sv": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Swedish"
    },
    "tr": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Turkish"
    },
    "vi": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Vietnamese"
    },
    "type": {
      "enum": [
        null,
        "article_translated_content"
      ],
      "type": "string",
      "example": "article_translated_content",
      "nullable": true,
      "description": "The type of object - article_translated_content."
    },
    "pt-BR": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Portuguese (Brazil)"
    },
    "zh-CN": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Chinese (China)"
    },
    "zh-TW": {
      "$ref": "#/components/schemas/article_content",
      "description": "The content of the article in Chinese (Taiwan)"
    }
  },
  "description": "The Translated Content of an Article. The keys are the locale codes and the values are the translated content of the article."
}
object assign_conversation_request
{
  "type": "object",
  "title": "Assign Conversation Request",
  "required": [
    "message_type",
    "type",
    "admin_id",
    "assignee_id"
  ],
  "properties": {
    "body": {
      "type": "string",
      "example": "Let me pass you over to one of my colleagues.",
      "description": "Optionally you can send a response in the conversation when it is assigned."
    },
    "type": {
      "enum": [
        "admin",
        "team"
      ],
      "type": "string",
      "example": "admin"
    },
    "admin_id": {
      "type": "string",
      "example": "12345",
      "description": "The id of the admin who is performing the action."
    },
    "assignee_id": {
      "type": "string",
      "example": "4324241",
      "description": "The `id` of the `admin` or `team` which will be assigned the conversation. A conversation can be assigned both an admin and a team.\\nSet `0` if you want this assign to no admin or team (ie. Unassigned)."
    },
    "message_type": {
      "enum": [
        "assignment"
      ],
      "type": "string",
      "example": "assignment"
    }
  },
  "description": "Payload of the request to assign a conversation"
}
object attach_contact_to_conversation_request
{
  "type": "object",
  "title": "Assign Conversation Request",
  "properties": {
    "admin_id": {
      "type": "string",
      "example": "12345",
      "description": "The `id` of the admin who is adding the new participant."
    },
    "customer": {
      "type": "object",
      "oneOf": [
        {
          "title": "Intercom User ID",
          "required": [
            "intercom_user_id"
          ],
          "properties": {
            "customer": {
              "$ref": "#/components/schemas/customer_request"
            },
            "intercom_user_id": {
              "type": "string",
              "example": "6329bd9ffe4e2e91dac76188",
              "description": "The identifier for the contact as given by Intercom."
            }
          }
        },
        {
          "title": "User ID",
          "required": [
            "user_id"
          ],
          "properties": {
            "user_id": {
              "type": "string",
              "example": "6329bd9ffe4e2e91dac76188",
              "description": "The external_id you have defined for the contact who is being added as a participant."
            },
            "customer": {
              "$ref": "#/components/schemas/customer_request"
            }
          }
        },
        {
          "title": "Email",
          "required": [
            "email"
          ],
          "properties": {
            "email": {
              "type": "string",
              "example": "winstonsmith@truth.org",
              "description": "The email you have defined for the contact who is being added as a participant."
            },
            "customer": {
              "$ref": "#/components/schemas/customer_request"
            }
          }
        }
      ]
    }
  },
  "description": "Payload of the request to assign a conversation"
}
object close_conversation_request
{
  "type": "object",
  "title": "Close Conversation Request",
  "required": [
    "message_type",
    "type",
    "admin_id"
  ],
  "properties": {
    "body": {
      "type": "string",
      "example": " This conversation is now closed!",
      "description": "Optionally you can leave a message in the conversation to provide additional context to the user and other teammates."
    },
    "type": {
      "enum": [
        "admin"
      ],
      "type": "string",
      "example": "admin"
    },
    "admin_id": {
      "type": "string",
      "example": "12345",
      "description": "The id of the admin who is performing the action."
    },
    "message_type": {
      "enum": [
        "close"
      ],
      "type": "string",
      "example": "close"
    }
  },
  "description": "Payload of the request to close a conversation"
}
object collection
{
  "type": "object",
  "title": "Collection",
  "x-tags": [
    "Help Center"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "6871119",
      "description": "The unique identifier for the collection which is given by Intercom."
    },
    "url": {
      "type": "string",
      "example": "http://intercom.test/help/collection/name",
      "nullable": true,
      "description": "The URL of the collection. For multilingual help centers, this will be the URL of the collection for the default language."
    },
    "icon": {
      "type": "string",
      "example": "book-bookmark",
      "nullable": true,
      "description": "The icon of the collection."
    },
    "name": {
      "type": "string",
      "example": "Default language name",
      "description": "The name of the collection. For multilingual collections, this will be the name of the default language's content."
    },
    "type": {
      "enum": [
        "collection"
      ],
      "type": "string",
      "default": "collection",
      "example": "collection",
      "description": "The type of object - `collection`."
    },
    "order": {
      "type": "integer",
      "example": 1,
      "description": "The order of the section in relation to others sections within a collection. Values go from `0` upwards. `0` is the default if there's no order."
    },
    "created_at": {
      "type": "integer",
      "format": "date-time",
      "example": 1672928359,
      "description": "The time when the article was created (seconds). For multilingual articles, this will be the timestamp of creation of the default language's content."
    },
    "updated_at": {
      "type": "integer",
      "format": "date-time",
      "example": 1672928610,
      "description": "The time when the article was last updated (seconds). For multilingual articles, this will be the timestamp of last update of the default language's content."
    },
    "description": {
      "type": "string",
      "example": "Default language description",
      "nullable": true,
      "description": "The description of the collection. For multilingual help centers, this will be the description of the collection for the default language."
    },
    "workspace_id": {
      "type": "string",
      "example": "hfi1bx4l",
      "description": "The id of the workspace which the collection belongs to."
    },
    "default_locale": {
      "type": "string",
      "example": "en",
      "description": "The default locale of the help center. This field is only returned for multilingual help centers."
    },
    "help_center_id": {
      "type": "integer",
      "example": 123,
      "nullable": true,
      "description": "The id of the help center the collection is in."
    },
    "translated_content": {
      "$ref": "#/components/schemas/group_translated_content",
      "nullable": true
    }
  },
  "description": "Collections are top level containers for Articles within the Help Center."
}
object collection_list
{
  "type": "object",
  "title": "Collections",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/collection"
      },
      "description": "An array of collection objects"
    },
    "type": {
      "enum": [
        "list"
      ],
      "type": "string",
      "example": "list",
      "description": "The type of the object - `list`."
    },
    "pages": {
      "$ref": "#/components/schemas/cursor_pages"
    },
    "total_count": {
      "type": "integer",
      "example": 1,
      "description": "A count of the total number of collections."
    }
  },
  "description": "This will return a list of Collections for the App."
}
object company
{
  "type": "object",
  "title": "Company",
  "x-tags": [
    "Companies"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "531ee472cce572a6ec000006",
      "description": "The Intercom defined id representing the company."
    },
    "name": {
      "type": "string",
      "example": "Blue Sun",
      "description": "The name of the company."
    },
    "plan": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "269315",
          "description": "The id of the plan"
        },
        "name": {
          "type": "string",
          "example": "Pro",
          "description": "The name of the plan"
        },
        "type": {
          "type": "string",
          "example": "plan",
          "description": "Value is always \"plan\""
        }
      }
    },
    "size": {
      "type": "integer",
      "example": 100,
      "description": "The number of employees in the company."
    },
    "tags": {
      "type": "object",
      "properties": {
        "tags": {
          "type": "array",
          "items": {
            "items": {
              "$ref": "#/components/schemas/tag"
            }
          }
        },
        "type": {
          "enum": [
            "tag.list"
          ],
          "type": "string",
          "description": "The type of the object"
        }
      },
      "description": "The list of tags associated with the company"
    },
    "type": {
      "enum": [
        "company"
      ],
      "type": "string",
      "example": "company",
      "description": "Value is `company`"
    },
    "app_id": {
      "type": "string",
      "example": "ecahpwf5",
      "description": "The Intercom defined code of the workspace the company is associated to."
    },
    "website": {
      "type": "string",
      "example": "https://www.intercom.com",
      "description": "The URL for the company website."
    },
    "industry": {
      "type": "string",
      "example": "Software",
      "description": "The industry that the company operates in."
    },
    "segments": {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "segment.list"
          ],
          "type": "string",
          "description": "The type of the object"
        },
        "segments": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/segment"
          }
        }
      },
      "description": "The list of segments associated with the company"
    },
    "company_id": {
      "type": "string",
      "example": "6",
      "description": "The company id you have defined for the company."
    },
    "created_at": {
      "type": "integer",
      "example": 1663597223,
      "description": "The time the company was added in Intercom."
    },
    "updated_at": {
      "type": "integer",
      "example": 1663597223,
      "description": "The last time the company was updated."
    },
    "user_count": {
      "type": "integer",
      "example": 100,
      "description": "The number of users in the company."
    },
    "monthly_spend": {
      "type": "integer",
      "example": 100,
      "description": "How much revenue the company generates for your business."
    },
    "session_count": {
      "type": "integer",
      "example": 100,
      "description": "How many sessions the company has recorded."
    },
    "last_request_at": {
      "type": "integer",
      "example": 1663597223,
      "description": "The time the company last recorded making a request."
    },
    "custom_attributes": {
      "type": "object",
      "example": {
        "team_mates": 9,
        "monthly_spend": 155.5,
        "paid_subscriber": true
      },
      "description": "The custom attributes you have set on the company.",
      "additionalProperties": {
        "type": "string"
      }
    },
    "remote_created_at": {
      "type": "integer",
      "example": 1663597223,
      "description": "The time the company was created by you."
    }
  },
  "description": "Companies allow you to represent organizations using your product. Each company will have its own description and be associated with contacts. You can fetch, create, update and list companies."
}
object company_attached_contacts
{
  "type": "object",
  "title": "Company Attached Contacts",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/contact"
      },
      "description": "An array containing Contact Objects"
    },
    "type": {
      "enum": [
        "list"
      ],
      "type": "string",
      "example": "list",
      "description": "The type of object - `list`"
    },
    "pages": {
      "$ref": "#/components/schemas/cursor_pages"
    },
    "total_count": {
      "type": "integer",
      "example": 100,
      "description": "The total number of contacts"
    }
  },
  "description": "A list of Contact Objects"
}
object company_attached_segments
{
  "type": "object",
  "title": "Company Attached Segments",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/segment"
      },
      "description": "An array containing Segment Objects"
    },
    "type": {
      "enum": [
        "list"
      ],
      "type": "string",
      "example": "list",
      "description": "The type of object - `list`"
    }
  },
  "description": "A list of Segment Objects"
}
object company_list
{
  "type": "object",
  "title": "Companies",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/company"
      },
      "description": "An array containing Company Objects."
    },
    "type": {
      "enum": [
        "list"
      ],
      "type": "string",
      "example": "list",
      "description": "The type of object - `list`."
    },
    "pages": {
      "$ref": "#/components/schemas/cursor_pages"
    },
    "total_count": {
      "type": "integer",
      "example": 100,
      "description": "The total number of companies."
    }
  },
  "description": "This will return a list of companies for the App."
}
object company_scroll
{
  "type": "object",
  "title": "Company Scroll",
  "nullable": true,
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/company"
      }
    },
    "type": {
      "enum": [
        "list"
      ],
      "type": "string",
      "example": "list",
      "description": "The type of object - `list`"
    },
    "pages": {
      "$ref": "#/components/schemas/cursor_pages"
    },
    "total_count": {
      "type": "integer",
      "example": 100,
      "nullable": true,
      "description": "The total number of companies"
    },
    "scroll_param": {
      "type": "string",
      "example": "25b649f7-4d33-4ef6-88f5-60e5b8244309",
      "description": "The scroll parameter to use in the next request to fetch the next page of results."
    }
  },
  "description": "Companies allow you to represent organizations using your product. Each company will have its own description and be associated with contacts. You can fetch, create, update and list companies."
}
object contact
{
  "type": "object",
  "title": "Contact",
  "x-tags": [
    "Contacts"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "5ba682d23d7cf92bef87bfd4",
      "description": "The unique identifier for the contact which is given by Intercom."
    },
    "os": {
      "type": "string",
      "example": "Mac OS X",
      "nullable": true,
      "description": "The operating system which the contact is using."
    },
    "name": {
      "type": "string",
      "example": "John Doe",
      "nullable": true,
      "description": "The contacts name."
    },
    "role": {
      "type": "string",
      "example": "user",
      "description": "The role of the contact."
    },
    "tags": {
      "$ref": "#/components/schemas/contact_tags"
    },
    "type": {
      "type": "string",
      "example": "contact",
      "description": "The type of object."
    },
    "email": {
      "type": "string",
      "example": "joe@example.com",
      "description": "The contact's email."
    },
    "notes": {
      "$ref": "#/components/schemas/contact_notes"
    },
    "phone": {
      "type": "string",
      "example": "+1123456789",
      "nullable": true,
      "description": "The contacts phone."
    },
    "avatar": {
      "type": "object",
      "nullable": true,
      "properties": {
        "type": {
          "type": "string",
          "example": "avatar",
          "description": "The type of object"
        },
        "image_url": {
          "type": "string",
          "format": "uri",
          "example": "https://example.org/128Wash.jpg",
          "nullable": true,
          "description": "An image URL containing the avatar of a contact."
        }
      }
    },
    "browser": {
      "type": "string",
      "example": "Chrome",
      "nullable": true,
      "description": "The name of the browser which the contact is using."
    },
    "location": {
      "$ref": "#/components/schemas/contact_location"
    },
    "owner_id": {
      "type": "integer",
      "example": 123,
      "nullable": true,
      "description": "The id of an admin that has been assigned account ownership of the contact."
    },
    "companies": {
      "$ref": "#/components/schemas/contact_companies"
    },
    "created_at": {
      "type": "integer",
      "format": "date-time",
      "example": 1571672154,
      "description": "(UNIX timestamp) The time when the contact was created."
    },
    "ios_device": {
      "type": "string",
      "example": "iPhone 11",
      "nullable": true,
      "description": "The iOS device which the contact is using."
    },
    "updated_at": {
      "type": "integer",
      "format": "date-time",
      "example": 1571672154,
      "description": "(UNIX timestamp) The time when the contact was last updated."
    },
    "external_id": {
      "type": "string",
      "example": "f3b87a2e09d514c6c2e79b9a",
      "nullable": true,
      "description": "The unique identifier for the contact which is provided by the Client."
    },
    "email_domain": {
      "type": "string",
      "example": "example.com",
      "description": "The contact's email domain."
    },
    "ios_app_name": {
      "type": "string",
      "example": "Intercom",
      "nullable": true,
      "description": "The name of the iOS app which the contact is using."
    },
    "last_seen_at": {
      "type": "integer",
      "format": "date-time",
      "example": 1571672154,
      "nullable": true,
      "description": "(UNIX timestamp) The time when the contact was last seen (either where the Intercom Messenger was installed or when specified manually)."
    },
    "signed_up_at": {
      "type": "integer",
      "format": "date-time",
      "example": 1571672154,
      "nullable": true,
      "description": "(UNIX timestamp) The time specified for when a contact signed up."
    },
    "workspace_id": {
      "type": "string",
      "example": "ecahpwf5",
      "description": "The id of the workspace which the contact belongs to."
    },
    "android_device": {
      "type": "string",
      "example": "Pixel 3",
      "nullable": true,
      "description": "The Android device which the contact is using."
    },
    "ios_os_version": {
      "type": "string",
      "example": "13.3.1",
      "nullable": true,
      "description": "The version of iOS which the contact is using."
    },
    "browser_version": {
      "type": "string",
      "example": "80.0.3987.132",
      "nullable": true,
      "description": "The version of the browser which the contact is using."
    },
    "formatted_phone": {
      "type": "string",
      "example": "+1123456789",
      "nullable": true,
      "description": "The contacts phone number normalized to the E164 format"
    },
    "ios_app_version": {
      "type": "string",
      "example": "5.0.0",
      "nullable": true,
      "description": "The version of the iOS app which the contact is using."
    },
    "ios_sdk_version": {
      "type": "string",
      "example": "13.3.1",
      "nullable": true,
      "description": "The version of the iOS SDK which the contact is using."
    },
    "last_replied_at": {
      "type": "integer",
      "format": "date-time",
      "example": 1571672154,
      "nullable": true,
      "description": "(UNIX timestamp) The time when the contact last messaged in."
    },
    "social_profiles": {
      "$ref": "#/components/schemas/contact_social_profiles"
    },
    "android_app_name": {
      "type": "string",
      "example": "Intercom",
      "nullable": true,
      "description": "The name of the Android app which the contact is using."
    },
    "browser_language": {
      "type": "string",
      "example": "en-US",
      "nullable": true,
      "description": "The language set by the browser which the contact is using."
    },
    "has_hard_bounced": {
      "type": "boolean",
      "example": true,
      "description": "Whether the contact has had an email sent to them hard bounce."
    },
    "ios_last_seen_at": {
      "type": "integer",
      "format": "date-time",
      "example": 1571672154,
      "nullable": true,
      "description": "(UNIX timestamp) The last time the contact used the iOS app."
    },
    "custom_attributes": {
      "type": "object",
      "description": "The custom attributes which are set for the contact."
    },
    "language_override": {
      "type": "string",
      "example": "en",
      "nullable": true,
      "description": "A preferred language setting for the contact, used by the Intercom Messenger even if their browser settings change."
    },
    "last_contacted_at": {
      "type": "integer",
      "format": "date-time",
      "example": 1571672154,
      "nullable": true,
      "description": "(UNIX timestamp) The time when the contact was last messaged."
    },
    "android_os_version": {
      "type": "string",
      "example": "10",
      "nullable": true,
      "description": "The version of the Android OS which the contact is using."
    },
    "android_app_version": {
      "type": "string",
      "example": "5.0.0",
      "nullable": true,
      "description": "The version of the Android app which the contact is using."
    },
    "android_sdk_version": {
      "type": "string",
      "example": "28",
      "nullable": true,
      "description": "The version of the Android SDK which the contact is using."
    },
    "android_last_seen_at": {
      "type": "integer",
      "format": "date-time",
      "example": 1571672154,
      "nullable": true,
      "description": "(UNIX timestamp) The time when the contact was last seen on an Android device."
    },
    "last_email_opened_at": {
      "type": "integer",
      "format": "date-time",
      "example": 1571672154,
      "nullable": true,
      "description": "(UNIX timestamp) The time when the contact last opened an email."
    },
    "marked_email_as_spam": {
      "type": "boolean",
      "example": true,
      "description": "Whether the contact has marked an email sent to them as spam."
    },
    "last_email_clicked_at": {
      "type": "integer",
      "format": "date-time",
      "example": 1571672154,
      "nullable": true,
      "description": "(UNIX timestamp) The time when the contact last clicked a link in an email."
    },
    "unsubscribed_from_emails": {
      "type": "boolean",
      "example": true,
      "description": "Whether the contact is unsubscribed from emails."
    }
  },
  "description": "Contact are the objects that represent your leads and users in Intercom."
}
object contact_archived
{
  "type": "object",
  "title": "Contact Archived",
  "properties": {
    "id": {
      "type": "string",
      "example": "5ba682d23d7cf92bef87bfd4",
      "description": "The unique identifier for the contact which is given by Intercom."
    },
    "type": {
      "enum": [
        "contact"
      ],
      "type": "string",
      "example": "contact",
      "description": "always contact"
    },
    "archived": {
      "type": "boolean",
      "example": true,
      "description": "Whether the contact is archived or not."
    },
    "external_id": {
      "type": "string",
      "example": "f3b87a2e09d514c6c2e79b9a",
      "nullable": true,
      "description": "The unique identifier for the contact which is provided by the Client."
    }
  },
  "description": "archived contact object"
}
object contact_attached_companies
{
  "type": "object",
  "title": "Contact Attached Companies",
  "properties": {
    "type": {
      "enum": [
        "list"
      ],
      "type": "string",
      "example": "list",
      "description": "The type of object"
    },
    "pages": {
      "$ref": "#/components/schemas/pages_link"
    },
    "companies": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/company"
      },
      "description": "An array containing Company Objects"
    },
    "total_count": {
      "type": "integer",
      "example": 100,
      "description": "The total number of companies associated to this contact"
    }
  },
  "description": "A list of Company Objects"
}
object contact_companies
{
  "type": "object",
  "title": "Contact companies",
  "nullable": false,
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "example": "/contacts/5ba682d23d7cf92bef87bfd4/companies",
      "description": "Url to get more company resources for this contact"
    },
    "has_more": {
      "type": "boolean",
      "example": true,
      "description": "Whether there's more Addressable Objects to be viewed. If true, use the url to view all"
    },
    "total_count": {
      "type": "integer",
      "example": 100,
      "description": "Int representing the total number of companyies attached to this contact"
    }
  },
  "description": "An object containing companies meta data about the companies that a contact has. Up to 10 will be displayed here. Use the url to get more."
}
object contact_deleted
{
  "type": "object",
  "title": "Contact Deleted",
  "properties": {
    "id": {
      "type": "string",
      "example": "5ba682d23d7cf92bef87bfd4",
      "description": "The unique identifier for the contact which is given by Intercom."
    },
    "type": {
      "enum": [
        "contact"
      ],
      "type": "string",
      "example": "contact",
      "description": "always contact"
    },
    "deleted": {
      "type": "boolean",
      "example": true,
      "description": "Whether the contact is deleted or not."
    },
    "external_id": {
      "type": "string",
      "example": "f3b87a2e09d514c6c2e79b9a",
      "nullable": true,
      "description": "The unique identifier for the contact which is provided by the Client."
    }
  },
  "description": "deleted contact object"
}
object contact_list
{
  "type": "object",
  "title": "Contact List",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/contact"
      },
      "description": "The list of contact objects"
    },
    "type": {
      "enum": [
        "list"
      ],
      "type": "string",
      "example": "list",
      "description": "Always list"
    },
    "pages": {
      "$ref": "#/components/schemas/cursor_pages"
    },
    "total_count": {
      "type": "integer",
      "example": 100,
      "description": "A count of the total number of objects."
    }
  },
  "description": "Contacts are your users in Intercom."
}
object contact_location
{
  "type": "object",
  "title": "Contact Location",
  "nullable": false,
  "properties": {
    "city": {
      "type": "string",
      "example": "Dublin",
      "nullable": true,
      "description": "The city that the contact is located in"
    },
    "type": {
      "type": "string",
      "example": "location",
      "nullable": true,
      "description": "Always location"
    },
    "region": {
      "type": "string",
      "example": "Dublin",
      "nullable": true,
      "description": "The overal region that the contact is located in"
    },
    "country": {
      "type": "string",
      "example": "Ireland",
      "nullable": true,
      "description": "The country that the contact is located in"
    }
  },
  "description": "An object containing location meta data about a Intercom contact."
}
object contact_notes
{
  "type": "object",
  "title": "Contact notes",
  "nullable": false,
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "example": "/contacts/5ba682d23d7cf92bef87bfd4/notes",
      "description": "Url to get more company resources for this contact"
    },
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/addressable_list"
      },
      "description": "This object represents the notes attached to a contact."
    },
    "has_more": {
      "type": "boolean",
      "example": true,
      "description": "Whether there's more Addressable Objects to be viewed. If true, use the url to view all"
    },
    "total_count": {
      "type": "integer",
      "example": 100,
      "description": "Int representing the total number of companyies attached to this contact"
    }
  },
  "description": "An object containing notes meta data about the notes that a contact has. Up to 10 will be displayed here. Use the url to get more."
}
object contact_reference
{
  "type": "object",
  "title": "Contact Reference",
  "properties": {
    "id": {
      "type": "string",
      "example": "5ba682d23d7cf92bef87bfd4",
      "description": "The unique identifier for the contact which is given by Intercom."
    },
    "type": {
      "enum": [
        "contact"
      ],
      "type": "string",
      "example": "contact",
      "description": "always contact"
    },
    "external_id": {
      "type": "string",
      "example": "f3b87a2e09d514c6c2e79b9a",
      "nullable": true,
      "description": "The unique identifier for the contact which is provided by the Client."
    }
  },
  "description": "reference to contact object"
}
object contact_reply_base_request
{
  "type": "object",
  "title": "Contact Reply Base Object",
  "required": [
    "message_type",
    "type",
    "body"
  ],
  "properties": {
    "body": {
      "type": "string",
      "description": "The text body of the comment."
    },
    "type": {
      "enum": [
        "user"
      ],
      "type": "string"
    },
    "message_type": {
      "enum": [
        "comment"
      ],
      "type": "string"
    },
    "attachment_urls": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      },
      "title": "Attachment URLs",
      "maxItems": 10,
      "description": "A list of image URLs that will be added as attachments. You can include up to 10 URLs."
    }
  }
}
object contact_reply_conversation_request
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/contact_reply_base_request"
    },
    {
      "$ref": "#/components/schemas/contact_reply_base_request"
    },
    {
      "$ref": "#/components/schemas/contact_reply_base_request"
    }
  ],
  "title": "Contact Reply"
}
object contact_segments
{
  "type": "object",
  "title": "Segments",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/segment"
      },
      "description": "Segment objects associated with the contact."
    },
    "type": {
      "enum": [
        "list"
      ],
      "type": "string",
      "example": "list",
      "description": "The type of the object"
    }
  },
  "description": "A list of segments objects attached to a specific contact."
}