Chatwoot Conversation API

The Conversation API from Chatwoot — 1 operation(s) for conversation.

Operations 1

GET /accounts/{account_id}/conversations/{conversation_id}/messages Get messages from a conversation #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/chatwoot-conversation-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

chatwoot-conversation-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Chatwoot Conversation API
  description: This is the API documentation for Chatwoot server.
  version: 1.1.0
  termsOfService: https://www.chatwoot.com/terms-of-service/
  contact:
    email: hello@chatwoot.com
  license:
    name: MIT License
    url: https://opensource.org/licenses/MIT
servers:
- url: https://app.chatwoot.com/
tags:
- name: Conversation
paths:
  /accounts/{account_id}/conversations/{conversation_id}/messages:
    parameters:
    - $ref: '#/components/parameters/account_id'
    - name: conversation_id
      in: path
      description: ID of the conversation
      required: true
      schema:
        type: number
    get:
      tags:
      - Conversation
      summary: Get messages from a conversation
      description: Returns all messages from a specific conversation
      operationId: getConversationMessages
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/conversation_messages'
components:
  schemas:
    message_detailed:
      type: object
      properties:
        id:
          type: number
          description: The ID of the message
        content:
          type: string
          description: The text content of the message
        inbox_id:
          type: number
          description: The ID of the inbox
        conversation_id:
          type: number
          description: The ID of the conversation
        message_type:
          type: integer
          enum:
          - 0
          - 1
          - 2
          - 3
          description: 'The type of the message (0: incoming, 1: outgoing, 2: activity, 3: template)'
        content_type:
          type: string
          enum:
          - text
          - input_text
          - input_textarea
          - input_email
          - input_select
          - cards
          - form
          - article
          - incoming_email
          - input_csat
          - integrations
          - sticker
          - voice_call
          description: The type of the message content
        status:
          type: string
          enum:
          - sent
          - delivered
          - read
          - failed
          description: The status of the message
        content_attributes:
          type: object
          description: The content attributes for each content_type
          properties:
            in_reply_to:
              type:
              - string
              - 'null'
              description: ID of the message this is replying to
        echo_id:
          type:
          - string
          - 'null'
          description: The echo ID of the message, used for deduplication
        created_at:
          type: integer
          description: The timestamp when message was created
        private:
          type: boolean
          description: The flag which shows whether the message is private or not
        source_id:
          type:
          - string
          - 'null'
          description: The source ID of the message
        sender:
          $ref: '#/components/schemas/contact_detail'
        attachments:
          type: array
          description: The list of attachments associated with the message
          items:
            type: object
            properties:
              id:
                type: number
                description: The ID of the attachment
              message_id:
                type: number
                description: The ID of the message
              file_type:
                type: string
                enum:
                - image
                - video
                - audio
                - file
                - location
                - fallback
                - share
                - story_mention
                - contact
                - ig_reel
                description: The type of the attached file
              account_id:
                type: number
                description: The ID of the account
              data_url:
                type: string
                description: The URL of the attached file
              thumb_url:
                type: string
                description: The thumbnail URL of the attached file
              file_size:
                type: number
                description: The size of the attached file in bytes
    conversation_meta:
      type: object
      properties:
        labels:
          type: array
          items:
            type: string
          description: Labels associated with the conversation
        additional_attributes:
          type: object
          properties:
            browser:
              type: object
              properties:
                device_name:
                  type: string
                  description: Name of the device
                browser_name:
                  type: string
                  description: Name of the browser
                platform_name:
                  type: string
                  description: Name of the platform
                browser_version:
                  type: string
                  description: Version of the browser
                platform_version:
                  type: string
                  description: Version of the platform
            referer:
              type: string
              description: Referrer URL
            initiated_at:
              type: object
              properties:
                timestamp:
                  type: string
                  description: Timestamp when the conversation was initiated
            browser_language:
              type: string
              description: Browser language setting
            conversation_language:
              type: string
              description: Conversation language
          description: Additional attributes of the conversation
        contact:
          $ref: '#/components/schemas/contact_detail'
        assignee:
          allOf:
          - $ref: '#/components/schemas/agent'
          description: The agent assigned to the conversation
        agent_last_seen_at:
          type:
          - string
          - 'null'
          description: Timestamp when the agent last saw the conversation
        assignee_last_seen_at:
          type:
          - string
          - 'null'
          description: Timestamp when the assignee last saw the conversation
    contact_detail:
      type: object
      properties:
        additional_attributes:
          type: object
          description: The object containing additional attributes related to the contact
          properties:
            city:
              type: string
              description: City of the contact
            country:
              type: string
              description: Country of the contact
            country_code:
              type:
              - string
              - 'null'
              description: Country code of the contact
            created_at_ip:
              type: string
              description: IP address when the contact was created
        custom_attributes:
          type: object
          description: The custom attributes of the contact
        email:
          type: string
          description: The email address of the contact
        id:
          type: integer
          description: The ID of the contact
        identifier:
          type:
          - string
          - 'null'
          description: The identifier of the contact
        name:
          type: string
          description: The name of the contact
        phone_number:
          type:
          - string
          - 'null'
          description: The phone number of the contact
        thumbnail:
          type: string
          description: The thumbnail of the contact
        blocked:
          type: boolean
          description: Whether the contact is blocked
        type:
          type: string
          description: The type of entity
          enum:
          - contact
    agent:
      type: object
      properties:
        id:
          type: integer
        account_id:
          type: integer
        availability_status:
          type: string
          enum:
          - online
          - busy
          - offline
          readOnly: true
          description: The effective availability status of the agent, derived from the configured availability, auto-offline setting, and current presence. To update an agent's configured availability, use the availability field in create or update requests.
        auto_offline:
          type: boolean
          description: Whether the agent is automatically marked offline when they are away.
        confirmed:
          type: boolean
          description: Whether the agent has confirmed their email address.
        email:
          type: string
          description: The email of the agent
        available_name:
          type: string
          description: The available name of the agent
        name:
          type: string
          description: The name of the agent
        role:
          type: string
          enum:
          - agent
          - administrator
          description: The role of the agent
        thumbnail:
          type: string
          description: The thumbnail of the agent
        custom_role_id:
          type:
          - integer
          - 'null'
          description: The custom role id of the agent
    conversation_messages:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/conversation_meta'
        payload:
          type: array
          items:
            $ref: '#/components/schemas/message_detailed'
          description: List of messages in the conversation
  parameters:
    account_id:
      in: path
      name: account_id
      schema:
        type: integer
      required: true
      description: The numeric ID of the account
  securitySchemes:
    userApiKey:
      type: apiKey
      in: header
      name: api_access_token
      description: This token can be obtained by visiting the profile page or via rails console. Provides access to  endpoints based on the user permissions levels. This token can be saved by an external system when user is created via API, to perform activities on behalf of the user.
    agentBotApiKey:
      type: apiKey
      in: header
      name: api_access_token
      description: This token should be provided by system admin or obtained via rails console. This token can be used to build bot integrations and can only access limited apis.
    platformAppApiKey:
      type: apiKey
      in: header
      name: api_access_token
      description: This token can be obtained by the system admin after creating a platformApp. This token should be used to provision agent bots, accounts, users and their roles.
x-tagGroups:
- name: Platform
  tags:
  - Accounts
  - Account Users
  - AgentBots
  - Users
- name: Application
  tags:
  - Account AgentBots
  - Account
  - Agents
  - Audit Logs
  - Canned Responses
  - Contacts
  - Contact Labels
  - Conversation Assignments
  - Conversation Labels
  - Conversations
  - Custom Attributes
  - Custom Filters
  - Inboxes
  - Integrations
  - Labels
  - Messages
  - Profile
  - Reports
  - Teams
  - Webhooks
  - Automation Rule
  - Help Center
- name: Client
  tags:
  - Contacts API
  - Conversations API
  - Messages API
- name: Others
  tags:
  - CSAT Survey Page