Intercom API (Unstable)

The intercom API reference.

Download OpenAPI description
Languages
Servers
The production API server
https://api.intercom.io/
The european API server
https://api.eu.intercom.io/
The australian API server
https://api.au.intercom.io/

Admins

Everything about your Admins

Operations

AI Content

With the AI Content APIs, you can create and manage External Pages and Content Import Sources for your Fin Content Library.

 

External Pages are pages that you want Fin to be able to answer questions about. The API for External Pages is a great way to ingest into your Fin Content Library pages that are not publicly accessible and hence can't be crawled by Intercom.

 

Content Import Sources are the sources of those pages, and they are used to determine the default audience for the pages (configured via the UI). You should create a Content Import Source for each source of External Pages that you want to ingest into your Fin Content Library.

 

You can then iterate through the content from that source via its API and POST it to the External Pages endpoint. That endpoint has an external_id parameter which allows you to specify the identifier from the source. The endpoint will then either create a new External Page or update an existing one as appropriate.",

Operations

Articles

Everything about your Articles

Operations

Companies

Everything about your Companies

Operations

Contacts

Everything about your contacts

Operations

Conversations

Everything about your Conversations

Operations

Custom Object Instances

Everything about your Custom Object instances.

Operations

Data Attributes

Everything about your Data Attributes

Operations

Data Attribute

Data Attributes are metadata used to describe your contact, company and conversation models. These include standard and custom attributes. By using the data attributes endpoint, you can get the global list of attributes for your workspace, as well as create and archive custom attributes.

typestring

Value is data_attribute.

Value"data_attribute"
Example: "data_attribute"
idinteger

The unique identifier for the data attribute which is given by Intercom. Only available for custom attributes.

Example: 12878
modelstring

Value is contact for user/lead attributes and company for company attributes.

Enum"contact""company"
Example: "contact"
namestring

Name of the attribute.

Example: "paid_subscriber"
full_namestring

Full name of the attribute. Should match the name unless it's a nested attribute. We can split full_name on . to access nested user object values.

Example: "custom_attributes.paid_subscriber"
labelstring

Readable name of the attribute (i.e. name you see in the UI)

Example: "Paid Subscriber"
descriptionstring

Readable description of the attribute.

Example: "Whether the user is a paid subscriber."
data_typestring

The data type of the attribute.

Enum"string""integer""float""boolean""date"
Example: "boolean"
optionsArray of strings

List of predefined options for attribute value.

Example: ["true","false"]
api_writableboolean

Can this attribute be updated through API

Example: true
messenger_writableboolean

Can this attribute be updated by the Messenger

Example: false
ui_writableboolean

Can this attribute be updated in the UI

Example: true
customboolean

Set to true if this is a CDA

Example: true
archivedboolean

Is this attribute archived. (Only applicable to CDAs)

Example: false
created_atinteger(date-time)

The time the attribute was created as a UTC Unix timestamp

Example: 1671028894
updated_atinteger(date-time)

The time the attribute was last updated as a UTC Unix timestamp

Example: 1671028894
admin_idstring

Teammate who created the attribute. Only applicable to CDAs

Example: "5712945"
{ "type": "data_attribute", "id": 12878, "model": "contact", "name": "paid_subscriber", "full_name": "custom_attributes.paid_subscriber", "label": "Paid Subscriber", "description": "Whether the user is a paid subscriber.", "data_type": "boolean", "options": [ "true", "false" ], "api_writable": true, "messenger_writable": false, "ui_writable": true, "custom": true, "archived": false, "created_at": 1671028894, "updated_at": 1671028894, "admin_id": "5712945" }

List all data attributes

Request

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

Query
modelstring

Specify the data attribute model to return.

Enum"contact""company""conversation"
Example: model=company
include_archivedboolean

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

Headers
Intercom-Versionstring(intercom_version)

Intercom API version.
By default, it's equal to the version set in the app package.

Default Unstable
Enum"1.0""1.1""1.2""1.3""1.4""2.0""2.1""2.2""2.3""2.4"
Example: Unstable
curl -i -X GET \
  'https://api.intercom.io/data_attributes?include_archived=true&model=contact' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Intercom-Version: Unstable'

Responses

Successful response

Bodyapplication/json
typestring

The type of the object

Value"list"
Example: "list"
dataArray of objects(Data Attribute)

A list of data attributes

Response
application/json
{ "type": "list", "data": [ { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … }, { … } ] }

Create a data attribute

Request

You can create a data attributes for a contact or a company.

Headers
Intercom-Versionstring(intercom_version)

Intercom API version.
By default, it's equal to the version set in the app package.

Default Unstable
Enum"1.0""1.1""1.2""1.3""1.4""2.0""2.1""2.2""2.3""2.4"
Example: Unstable
Bodyapplication/json
namestringrequired

The name of the data attribute.

Example: "My Data Attribute"
modelstringrequired

The model that the data attribute belongs to.

Enum"contact""company"
Example: "contact"
data_typestringrequired

The type of data stored for this attribute.

Enum"string""integer""float""boolean""datetime""date"
Example: "string"
descriptionstring

The readable description you see in the UI for the attribute.

Example: "My Data Attribute Description"
optionsArray of strings

To create list attributes. Provide a set of hashes with value as the key of the options you want to make. data_type must be string.

Example: ["option1","option2"]
messenger_writableboolean

Can this attribute be updated by the Messenger

Example: false
curl -i -X POST \
  https://api.intercom.io/data_attributes \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'Intercom-Version: Unstable' \
  -d '{
    "name": "Mithril Shirt",
    "model": "company",
    "data_type": "string"
  }'

Responses

Successful

Bodyapplication/json
typestring

Value is data_attribute.

Value"data_attribute"
Example: "data_attribute"
idinteger

The unique identifier for the data attribute which is given by Intercom. Only available for custom attributes.

Example: 12878
modelstring

Value is contact for user/lead attributes and company for company attributes.

Enum"contact""company"
Example: "contact"
namestring

Name of the attribute.

Example: "paid_subscriber"
full_namestring

Full name of the attribute. Should match the name unless it's a nested attribute. We can split full_name on . to access nested user object values.

Example: "custom_attributes.paid_subscriber"
labelstring

Readable name of the attribute (i.e. name you see in the UI)

Example: "Paid Subscriber"
descriptionstring

Readable description of the attribute.

Example: "Whether the user is a paid subscriber."
data_typestring

The data type of the attribute.

Enum"string""integer""float""boolean""date"
Example: "boolean"
optionsArray of strings

List of predefined options for attribute value.

Example: ["true","false"]
api_writableboolean

Can this attribute be updated through API

Example: true
messenger_writableboolean

Can this attribute be updated by the Messenger

Example: false
ui_writableboolean

Can this attribute be updated in the UI

Example: true
customboolean

Set to true if this is a CDA

Example: true
archivedboolean

Is this attribute archived. (Only applicable to CDAs)

Example: false
created_atinteger(date-time)

The time the attribute was created as a UTC Unix timestamp

Example: 1671028894
updated_atinteger(date-time)

The time the attribute was last updated as a UTC Unix timestamp

Example: 1671028894
admin_idstring

Teammate who created the attribute. Only applicable to CDAs

Example: "5712945"
Response
application/json
{ "id": 21, "type": "data_attribute", "name": "Mithril Shirt", "full_name": "custom_attributes.Mithril Shirt", "label": "Mithril Shirt", "data_type": "string", "api_writable": true, "ui_writable": false, "messenger_writable": false, "custom": true, "archived": false, "admin_id": "991267149", "created_at": 1727857234, "updated_at": 1727857234, "model": "company" }

Update a data attribute

Request

You can update a data attribute.

🚧 Updating the data type is not possible

It is currently a dangerous action to execute changing a data attribute's type via the API. You will need to update the type via the UI instead.

Path
idintegerrequired

The data attribute id

Example: 1
Headers
Intercom-Versionstring(intercom_version)

Intercom API version.
By default, it's equal to the version set in the app package.

Default Unstable
Enum"1.0""1.1""1.2""1.3""1.4""2.0""2.1""2.2""2.3""2.4"
Example: Unstable
Bodyapplication/json
archivedboolean

Whether the attribute is to be archived or not.

Example: false
descriptionstring

The readable description you see in the UI for the attribute.

Example: "My Data Attribute Description"
optionsArray of strings

To create list attributes. Provide a set of hashes with value as the key of the options you want to make. data_type must be string.

Example: ["option1","option2"]
messenger_writableboolean

Can this attribute be updated by the Messenger

Example: false
curl -i -X PUT \
  'https://api.intercom.io/data_attributes/{id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'Intercom-Version: Unstable' \
  -d '{
    "description": "Just a plain old ring",
    "options": [
      {
        "value": "1-10"
      },
      {
        "value": "11-20"
      }
    ],
    "archived": false
  }'

Responses

Successful

Bodyapplication/json
typestring

Value is data_attribute.

Value"data_attribute"
Example: "data_attribute"
idinteger

The unique identifier for the data attribute which is given by Intercom. Only available for custom attributes.

Example: 12878
modelstring

Value is contact for user/lead attributes and company for company attributes.

Enum"contact""company"
Example: "contact"
namestring

Name of the attribute.

Example: "paid_subscriber"
full_namestring

Full name of the attribute. Should match the name unless it's a nested attribute. We can split full_name on . to access nested user object values.

Example: "custom_attributes.paid_subscriber"
labelstring

Readable name of the attribute (i.e. name you see in the UI)

Example: "Paid Subscriber"
descriptionstring

Readable description of the attribute.

Example: "Whether the user is a paid subscriber."
data_typestring

The data type of the attribute.

Enum"string""integer""float""boolean""date"
Example: "boolean"
optionsArray of strings

List of predefined options for attribute value.

Example: ["true","false"]
api_writableboolean

Can this attribute be updated through API

Example: true
messenger_writableboolean

Can this attribute be updated by the Messenger

Example: false
ui_writableboolean

Can this attribute be updated in the UI

Example: true
customboolean

Set to true if this is a CDA

Example: true
archivedboolean

Is this attribute archived. (Only applicable to CDAs)

Example: false
created_atinteger(date-time)

The time the attribute was created as a UTC Unix timestamp

Example: 1671028894
updated_atinteger(date-time)

The time the attribute was last updated as a UTC Unix timestamp

Example: 1671028894
admin_idstring

Teammate who created the attribute. Only applicable to CDAs

Example: "5712945"
Response
application/json
{ "id": 28, "type": "data_attribute", "name": "The One Ring", "full_name": "custom_attributes.The One Ring", "label": "The One Ring", "description": "Just a plain old ring", "data_type": "string", "options": [ "1-10", "11-20" ], "api_writable": true, "ui_writable": false, "messenger_writable": true, "custom": true, "archived": false, "admin_id": "991267156", "created_at": 1727857239, "updated_at": 1727857239, "model": "company" }

Data Events

Everything about your Data Events

Operations

Data Export

Everything about your Data Exports

Operations

Help Center

Everything about your Help Center

Operations

Messages

Everything about your messages

Operations

News

Everything about your News

Operations

Notes

Everything about your Notes

Operations

Segments

Everything about your Segments

Operations

Subscription Types

Everything about subscription types

Operations

Switch

Everything about Switch

Operations

Tags

Everything about tags

Operations

Teams

Everything about your Teams

Operations

Ticket States

Everything about your ticket states

Operations

Ticket Type Attributes

Everything about your ticket type attributes

Operations

Ticket Types

Everything about your ticket types

Operations

Tickets

Everything about your tickets

Operations

Visitors

Everything about your Visitors

Operations

Models