Skip to content

Intercom API (Preview)

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

SchemasOperations

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.",

SchemasOperations

Articles

Everything about your Articles

SchemasOperations

Away Status Reasons

Everything about your Away Status Reasons

Operations

Brands

Everything about your Brands

SchemasOperations

Calls

Everything about your Calls

SchemasOperations

Companies

Everything about your Companies

SchemasOperations

Contacts

Everything about your contacts

SchemasOperations

Content Snippets

Everything about your Content Snippets

SchemasOperations

Conversations

Everything about your Conversations

SchemasOperations

Custom Object Instances

Everything about your Custom Object instances.

Permission Requirements

From now on, to access this endpoint, you need additional permissions. Please head over to the Developer Hub app package authentication settings to configure the required permissions.

SchemasOperations

Data Attributes

Everything about your Data Attributes

SchemasOperations

Data Connectors

Everything about your Data Connectors

SchemasOperations

Data Events

Everything about your Data Events

SchemasOperations

Data Export

Export message delivery and engagement statistics (opens, clicks, replies, completions, dismissals, unsubscribes, bounces) for outbound content such as Emails, Posts, Custom Bots, Surveys, Tours, and Series.

SchemasOperations

Emails

Everything about your Emails

SchemasOperations

Fin Agent

Access Fin programmatically via the Fin Agent API endpoints.

 

Please reach out to your accounts team to discuss access and tailored, hands-on support.

 

Integration is centered around two endpoints (/fin/start and /fin/reply) and a set of events that notify your application of Fin's status and responses. Events can be delivered via webhooks or Server-Sent Events (SSE).

 

Events

Configure a webhook endpoint in the Fin Agent API settings to receive events, or use the sse_subscription_url from the API response to subscribe via SSE. See the setup guide for configuration details.

  • fin_status_updated - Fired when Fin's status changes (awaiting_user_reply, escalated, resolved, complete)
  • fin_replied - Fired when Fin sends a reply to the user
  • fin_reply_chunk - SSE-only streaming event fired during reply generation (requires streaming enabled)

All webhook requests include an X-Fin-Agent-API-Webhook-Signature header for request validation.

Schemas

Help Center

Everything about your Help Center

SchemasOperations

Identity Verification Secrets

Manage HMAC signing secrets for Messenger identity verification — list, create, and rotate out. Signing material is returned only once, at creation time.

SchemasOperations

Identity Verification Secret

Metadata for an HMAC secret used to sign user_hash values for Messenger identity verification. The secret field is intentionally omitted — it is only returned once, in the response to POST /secure_mode_secrets.

typestring

value is "identity_verification_secret"

Example: "identity_verification_secret"
idstring

The id of the secret

Example: "102"
namestring

Human-readable name for the secret, used to identify it in rotation flows

Example: "Production Web"
supports_androidboolean

Whether the secret is enabled for the Android SDK

Example: false
supports_iosboolean

Whether the secret is enabled for the iOS SDK

Example: false
supports_webboolean

Whether the secret is enabled for the Messenger on web

Example: true
created_atinteger

The time the secret was created, as a Unix timestamp

Example: 1734537243
{ "type": "identity_verification_secret", "id": "102", "name": "Production Web", "supports_android": false, "supports_ios": false, "supports_web": true, "created_at": 1734537243 }

Identity Verification Secret (with material)

Metadata for an HMAC secret used to sign user_hash values for Messenger identity verification. The secret field is intentionally omitted — it is only returned once, in the response to POST /secure_mode_secrets.

typestring

value is "identity_verification_secret"

Example: "identity_verification_secret"
idstring

The id of the secret

Example: "102"
namestring

Human-readable name for the secret, used to identify it in rotation flows

Example: "Production Web"
supports_androidboolean

Whether the secret is enabled for the Android SDK

Example: false
supports_iosboolean

Whether the secret is enabled for the iOS SDK

Example: false
supports_webboolean

Whether the secret is enabled for the Messenger on web

Example: true
created_atinteger

The time the secret was created, as a Unix timestamp

Example: 1734537243
secretstring

The 256-bit HMAC signing key, base64url-encoded. Returned ONCE at creation time and never surfaced again.

Example: "9Zw0xNs3vKk0fPz9rwKqNbzH3mPVQmQxL9vhSm9Tk4A"
{ "type": "identity_verification_secret", "id": "102", "name": "Production Web", "supports_android": false, "supports_ios": false, "supports_web": true, "created_at": 1734537243, "secret": "9Zw0xNs3vKk0fPz9rwKqNbzH3mPVQmQxL9vhSm9Tk4A" }

List all identity verification secrets

Request

Returns the identity verification secrets configured for your workspace.

Each entry includes metadata only — the HMAC signing material itself is never returned by this endpoint. The raw secret is only available once, in the response to POST /secure_mode_secrets. Persist it at that moment.

Security
bearerAuth
Headers
Intercom-Versionstring(intercom_version)

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

Default Preview
Enum"1.0""1.1""1.2""1.3""1.4""2.0""2.1""2.2""2.3""2.4"
Example: Preview
curl -i -X GET \
  https://api.intercom.io/secure_mode_secrets \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Intercom-Version: Preview'

Responses

Successful response

Bodyapplication/json
typestring

The type of the object

Value"list"
Example: "list"
dataArray of objects(Identity Verification Secret)

The identity verification secrets configured for the workspace.

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

Create an identity verification secret

Request

Creates a new identity verification secret for your workspace. Intercom generates a 256-bit, cryptographically random value server-side and returns it once in the response.

This is the only opportunity to capture the secret. Store it in your secure configuration immediately. The secret field is omitted from all subsequent responses (including GET /secure_mode_secrets) — if you lose it, you must rotate a new secret in and delete this one.

You must enable the secret for at least one platform (supports_android, supports_ios, or supports_web). Rotation flow: create the new secret, roll it out to every client signing user_hash values, then delete the old secret with DELETE /secure_mode_secrets/{id} once traffic has cut over.

Security
bearerAuth
Headers
Intercom-Versionstring(intercom_version)

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

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

Human-readable name for the secret.

Example: "Production Web"
supports_androidboolean

Enable this secret for the Android SDK.

Example: false
supports_iosboolean

Enable this secret for the iOS SDK.

Example: false
supports_webboolean

Enable this secret for the Messenger on web.

Example: true
curl -i -X POST \
  https://api.intercom.io/secure_mode_secrets \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'Intercom-Version: Preview' \
  -d '{
    "name": "Production Web",
    "supports_web": true
  }'

Responses

Secret created

Bodyapplication/json
typestring

value is "identity_verification_secret"

Example: "identity_verification_secret"
idstring

The id of the secret

Example: "102"
namestring

Human-readable name for the secret, used to identify it in rotation flows

Example: "Production Web"
supports_androidboolean

Whether the secret is enabled for the Android SDK

Example: false
supports_iosboolean

Whether the secret is enabled for the iOS SDK

Example: false
supports_webboolean

Whether the secret is enabled for the Messenger on web

Example: true
created_atinteger

The time the secret was created, as a Unix timestamp

Example: 1734537243
secretstring

The 256-bit HMAC signing key, base64url-encoded. Returned ONCE at creation time and never surfaced again.

Example: "9Zw0xNs3vKk0fPz9rwKqNbzH3mPVQmQxL9vhSm9Tk4A"
Response
application/json
{ "type": "identity_verification_secret", "id": "103", "name": "Production Web", "secret": "9Zw0xNs3vKk0fPz9rwKqNbzH3mPVQmQxL9vhSm9Tk4A", "supports_android": false, "supports_ios": false, "supports_web": true, "created_at": 1734537500 }

Delete an identity verification secret

Request

Soft-deletes an identity verification secret. After deletion, any user_hash values signed with that secret will no longer verify — Messenger sessions depending on it will be rejected on their next request. Use this to complete a rotation: create a new secret, roll it out, then delete the old one.

Security
bearerAuth
Path
idstringrequired

The unique identifier of the identity verification secret

Example: 102
Headers
Intercom-Versionstring(intercom_version)

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

Default Preview
Enum"1.0""1.1""1.2""1.3""1.4""2.0""2.1""2.2""2.3""2.4"
Example: Preview
curl -i -X DELETE \
  https://api.intercom.io/secure_mode_secrets/102 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Intercom-Version: Preview'

Responses

Secret deleted

Response
No content

Internal Articles

Everything about your Internal Articles

SchemasOperations

Jobs

Everything about jobs

SchemasOperations

Macros

Operations related to saved replies (macros) in conversations

SchemasOperations

Messages

Everything about your messages

SchemasOperations

News

Everything about your News

SchemasOperations

Notes

Everything about your Notes

SchemasOperations

Procedures

Submit human-collected input to Fin Procedures via the HITL (Human in the Loop) API.

 

When a Fin Procedure reaches a HITL step with the API channel enabled, Intercom sends a procedure.hitl_notification.created webhook to your system. Your system collects the required input and responds via the callback endpoint documented here.

 

This API requires the Procedures HITL API feature to be enabled for your workspace and an OAuth token with the write_conversations scope.

SchemasOperations

Segments

Everything about your Segments

SchemasOperations

Subscription Types

Everything about subscription types

SchemasOperations

Switch

Everything about Switch

Operations

Tags

Everything about tags

SchemasOperations

Teams

Everything about your Teams

SchemasOperations

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

SchemasOperations

Visitors

Everything about your Visitors

Operations

Workflows

Export workflow configurations from your workspace.

Operations

Models

Schemas

Export

Operations

Folders

SchemasOperations

WhatsApp

Operations