Intercom · Capability

Intercom API

The Intercom API provides programmatic access to the Intercom AI-powered customer service platform. It enables developers to manage contacts, companies, conversations, articles, segments, messages, and data events, and to build seamless integrations with the Intercom Help Desk and Messenger.

Run with Naftiko IntercomAPI

What You Can Do

GET
Getme — Identify an admin
/me
GET
Listadmins — List admins
/admins
GET
Listcontacts — List contacts
/contacts
POST
Createcontact — Create a contact
/contacts
GET
Getcontact — Retrieve a contact
/contacts/{contact_id}
GET
Listcompanies — List companies
/companies
POST
Createorupdatecompany — Create or update a company
/companies
GET
Listconversations — List conversations
/conversations
POST
Createconversation — Create a conversation
/conversations
GET
Getconversation — Retrieve a conversation
/conversations/{conversation_id}
GET
Listarticles — List articles
/articles
POST
Createarticle — Create an article
/articles
GET
Listsegments — List segments
/segments
POST
Createmessage — Create a message
/messages
POST
Submitevent — Submit a data event
/events
GET
Listevents — List data events
/events
GET
Listnewsitems — List news items
/news/news_items
POST
Createnewsitem — Create a news item
/news/news_items

MCP Tools

getme

Identify an admin

read-only idempotent
listadmins

List admins

read-only idempotent
listcontacts

List contacts

read-only idempotent
createcontact

Create a contact

getcontact

Retrieve a contact

read-only idempotent
listcompanies

List companies

read-only idempotent
createorupdatecompany

Create or update a company

listconversations

List conversations

read-only idempotent
createconversation

Create a conversation

getconversation

Retrieve a conversation

read-only idempotent
listarticles

List articles

read-only idempotent
createarticle

Create an article

listsegments

List segments

read-only idempotent
createmessage

Create a message

submitevent

Submit a data event

listevents

List data events

read-only idempotent
listnewsitems

List news items

read-only idempotent
createnewsitem

Create a news item

Capability Spec

intercom-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Intercom API
  description: The Intercom API provides programmatic access to the Intercom AI-powered customer service platform. It enables
    developers to manage contacts, companies, conversations, articles, segments, messages, and data events, and to build seamless
    integrations with the Intercom Help Desk and Messenger.
  tags:
  - Intercom
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: intercom
    baseUri: https://api.intercom.io
    description: Intercom API HTTP API.
    authentication:
      type: bearer
      token: '{{INTERCOM_TOKEN}}'
    resources:
    - name: me
      path: /me
      operations:
      - name: getme
        method: GET
        description: Identify an admin
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: admins
      path: /admins
      operations:
      - name: listadmins
        method: GET
        description: List admins
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: contacts
      path: /contacts
      operations:
      - name: listcontacts
        method: GET
        description: List contacts
        inputParameters:
        - name: per_page
          in: query
          type: integer
        - name: starting_after
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createcontact
        method: POST
        description: Create a contact
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: contacts-contact-id
      path: /contacts/{contact_id}
      operations:
      - name: getcontact
        method: GET
        description: Retrieve a contact
        inputParameters:
        - name: contact_id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: companies
      path: /companies
      operations:
      - name: listcompanies
        method: GET
        description: List companies
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createorupdatecompany
        method: POST
        description: Create or update a company
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: conversations
      path: /conversations
      operations:
      - name: listconversations
        method: GET
        description: List conversations
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createconversation
        method: POST
        description: Create a conversation
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: conversations-conversation-id
      path: /conversations/{conversation_id}
      operations:
      - name: getconversation
        method: GET
        description: Retrieve a conversation
        inputParameters:
        - name: conversation_id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: articles
      path: /articles
      operations:
      - name: listarticles
        method: GET
        description: List articles
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createarticle
        method: POST
        description: Create an article
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: segments
      path: /segments
      operations:
      - name: listsegments
        method: GET
        description: List segments
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: messages
      path: /messages
      operations:
      - name: createmessage
        method: POST
        description: Create a message
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: events
      path: /events
      operations:
      - name: submitevent
        method: POST
        description: Submit a data event
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: listevents
        method: GET
        description: List data events
        inputParameters:
        - name: type
          in: query
          type: string
        - name: user_id
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: news-news-items
      path: /news/news_items
      operations:
      - name: listnewsitems
        method: GET
        description: List news items
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createnewsitem
        method: POST
        description: Create a news item
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: intercom-rest
    description: REST adapter for Intercom API.
    resources:
    - path: /me
      name: getme
      operations:
      - method: GET
        name: getme
        description: Identify an admin
        call: intercom.getme
        outputParameters:
        - type: object
          mapping: $.
    - path: /admins
      name: listadmins
      operations:
      - method: GET
        name: listadmins
        description: List admins
        call: intercom.listadmins
        outputParameters:
        - type: object
          mapping: $.
    - path: /contacts
      name: listcontacts
      operations:
      - method: GET
        name: listcontacts
        description: List contacts
        call: intercom.listcontacts
        outputParameters:
        - type: object
          mapping: $.
    - path: /contacts
      name: createcontact
      operations:
      - method: POST
        name: createcontact
        description: Create a contact
        call: intercom.createcontact
        outputParameters:
        - type: object
          mapping: $.
    - path: /contacts/{contact_id}
      name: getcontact
      operations:
      - method: GET
        name: getcontact
        description: Retrieve a contact
        call: intercom.getcontact
        with:
          contact_id: rest.contact_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /companies
      name: listcompanies
      operations:
      - method: GET
        name: listcompanies
        description: List companies
        call: intercom.listcompanies
        outputParameters:
        - type: object
          mapping: $.
    - path: /companies
      name: createorupdatecompany
      operations:
      - method: POST
        name: createorupdatecompany
        description: Create or update a company
        call: intercom.createorupdatecompany
        outputParameters:
        - type: object
          mapping: $.
    - path: /conversations
      name: listconversations
      operations:
      - method: GET
        name: listconversations
        description: List conversations
        call: intercom.listconversations
        outputParameters:
        - type: object
          mapping: $.
    - path: /conversations
      name: createconversation
      operations:
      - method: POST
        name: createconversation
        description: Create a conversation
        call: intercom.createconversation
        outputParameters:
        - type: object
          mapping: $.
    - path: /conversations/{conversation_id}
      name: getconversation
      operations:
      - method: GET
        name: getconversation
        description: Retrieve a conversation
        call: intercom.getconversation
        with:
          conversation_id: rest.conversation_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /articles
      name: listarticles
      operations:
      - method: GET
        name: listarticles
        description: List articles
        call: intercom.listarticles
        outputParameters:
        - type: object
          mapping: $.
    - path: /articles
      name: createarticle
      operations:
      - method: POST
        name: createarticle
        description: Create an article
        call: intercom.createarticle
        outputParameters:
        - type: object
          mapping: $.
    - path: /segments
      name: listsegments
      operations:
      - method: GET
        name: listsegments
        description: List segments
        call: intercom.listsegments
        outputParameters:
        - type: object
          mapping: $.
    - path: /messages
      name: createmessage
      operations:
      - method: POST
        name: createmessage
        description: Create a message
        call: intercom.createmessage
        outputParameters:
        - type: object
          mapping: $.
    - path: /events
      name: submitevent
      operations:
      - method: POST
        name: submitevent
        description: Submit a data event
        call: intercom.submitevent
        outputParameters:
        - type: object
          mapping: $.
    - path: /events
      name: listevents
      operations:
      - method: GET
        name: listevents
        description: List data events
        call: intercom.listevents
        outputParameters:
        - type: object
          mapping: $.
    - path: /news/news_items
      name: listnewsitems
      operations:
      - method: GET
        name: listnewsitems
        description: List news items
        call: intercom.listnewsitems
        outputParameters:
        - type: object
          mapping: $.
    - path: /news/news_items
      name: createnewsitem
      operations:
      - method: POST
        name: createnewsitem
        description: Create a news item
        call: intercom.createnewsitem
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: intercom-mcp
    transport: http
    description: MCP adapter for Intercom API for AI agent use.
    tools:
    - name: getme
      description: Identify an admin
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: intercom.getme
      outputParameters:
      - type: object
        mapping: $.
    - name: listadmins
      description: List admins
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: intercom.listadmins
      outputParameters:
      - type: object
        mapping: $.
    - name: listcontacts
      description: List contacts
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: intercom.listcontacts
      with:
        per_page: tools.per_page
        starting_after: tools.starting_after
      inputParameters:
      - name: per_page
        type: integer
        description: per_page
      - name: starting_after
        type: string
        description: starting_after
      outputParameters:
      - type: object
        mapping: $.
    - name: createcontact
      description: Create a contact
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: intercom.createcontact
      outputParameters:
      - type: object
        mapping: $.
    - name: getcontact
      description: Retrieve a contact
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: intercom.getcontact
      with:
        contact_id: tools.contact_id
      inputParameters:
      - name: contact_id
        type: string
        description: contact_id
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listcompanies
      description: List companies
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: intercom.listcompanies
      outputParameters:
      - type: object
        mapping: $.
    - name: createorupdatecompany
      description: Create or update a company
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: intercom.createorupdatecompany
      outputParameters:
      - type: object
        mapping: $.
    - name: listconversations
      description: List conversations
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: intercom.listconversations
      outputParameters:
      - type: object
        mapping: $.
    - name: createconversation
      description: Create a conversation
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: intercom.createconversation
      outputParameters:
      - type: object
        mapping: $.
    - name: getconversation
      description: Retrieve a conversation
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: intercom.getconversation
      with:
        conversation_id: tools.conversation_id
      inputParameters:
      - name: conversation_id
        type: string
        description: conversation_id
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listarticles
      description: List articles
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: intercom.listarticles
      outputParameters:
      - type: object
        mapping: $.
    - name: createarticle
      description: Create an article
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: intercom.createarticle
      outputParameters:
      - type: object
        mapping: $.
    - name: listsegments
      description: List segments
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: intercom.listsegments
      outputParameters:
      - type: object
        mapping: $.
    - name: createmessage
      description: Create a message
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: intercom.createmessage
      outputParameters:
      - type: object
        mapping: $.
    - name: submitevent
      description: Submit a data event
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: intercom.submitevent
      outputParameters:
      - type: object
        mapping: $.
    - name: listevents
      description: List data events
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: intercom.listevents
      with:
        type: tools.type
        user_id: tools.user_id
      inputParameters:
      - name: type
        type: string
        description: type
      - name: user_id
        type: string
        description: user_id
      outputParameters:
      - type: object
        mapping: $.
    - name: listnewsitems
      description: List news items
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: intercom.listnewsitems
      outputParameters:
      - type: object
        mapping: $.
    - name: createnewsitem
      description: Create a news item
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: intercom.createnewsitem
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    INTERCOM_TOKEN: INTERCOM_TOKEN