Hilos Conversation API

The Conversation API from Hilos — 2 operation(s) for conversation.

Operations 3

GET /api/inbox/conversation List Conversations #
PATCH /api/inbox/conversation/{id}/update Partially Update a Conversation #
PUT /api/inbox/conversation/{id}/update Update 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/hilos-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

hilos-conversation-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Hilos Contact Conversation API
  version: 1.0.0
  description: 'All of the below API endpoints require API key authentication, get your token at https://app.hilos.io/dev/api-keys.


    To use this token, send with every request an `Authorization: Token <your token>` header.


    Production API server is located at api.hilos.io using HTTPS.


    No versioning info is required for now.'
servers:
- url: https://api.hilos.io
  description: Production Server
security:
- tokenAuth: []
tags:
- name: Conversation
paths:
  /api/inbox/conversation:
    get:
      tags:
      - Conversation
      summary: List Conversations
      description: 'Lists Conversations. '
      operationId: List Conversations
      parameters:
      - in: query
        name: contact
        schema:
          type: string
          format: uuid
        description: A Contact Id to filter the Conversations and only get those from that Contact.
        examples:
          OnlyReturnTheConversationsOfThisContact:
            value: a3ff7ee5-0c11-49e2-a0d6-7e316626f7b1
            summary: Only return the Conversations of this Contact
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedConversationReadSimpleList'
          description: ''
      security:
      - tokenAuth: []
  /api/inbox/conversation/{id}/update:
    patch:
      tags:
      - Conversation
      summary: Partially Update a Conversation
      description: Partially update a Conversation
      operationId: Partially update a Conversation
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedConversationEdit'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedConversationEdit'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedConversationEdit'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationEdit'
          description: ''
      security:
      - tokenAuth: []
    put:
      tags:
      - Conversation
      summary: Update a conversation
      description: Update a Conversation
      operationId: Update a Conversation
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConversationEdit'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ConversationEdit'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ConversationEdit'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationEdit'
          description: ''
      security:
      - tokenAuth: []
components:
  schemas:
    ConversationStatusEnum:
      enum:
      - CREATED
      - FLOW
      - FLOW_PAUSED
      - NEW
      - IN_PROGRESS
      - RESOLVED
      - CLOSED
      type: string
    ConversationReadSimple:
      type: object
      properties:
        id:
          type: string
          description: The UUID of the Conversation.
        contact:
          type: string
          format: uuid
        status:
          allOf:
          - $ref: '#/components/schemas/ConversationStatusEnum'
          readOnly: true
        first_message:
          allOf:
          - $ref: '#/components/schemas/WhatsAppMessageSimple'
          description: The first Message of the Conversation.
        assigned:
          type: array
          items:
            $ref: '#/components/schemas/AccountMemberUserBasicRead'
          description: The Users assigned to the Conversation.
        tags:
          type: array
          items:
            $ref: '#/components/schemas/ConversationTag'
          description: The Tags assigned to the Conversation.
        created_on:
          type: string
          format: date-time
          readOnly: true
          title: Creado el
        source:
          allOf:
          - $ref: '#/components/schemas/ConversationSourceEnum'
          readOnly: true
        assigned_team:
          type: integer
          description: The ID of the Team assigned to the Conversation.
        channel:
          type:
          - integer
          - 'null'
      required:
      - assigned
      - contact
      - created_on
      - first_message
      - id
      - source
      - status
    ConversationEdit:
      type: object
      properties:
        id:
          type: string
          description: The UUID of the Conversation.
        contact:
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/ConversationStatusEnum'
        assigned:
          type: array
          items:
            $ref: '#/components/schemas/AccountMemberUserBasicEdit'
          description: The Users assigned to the Conversation.
        tags:
          type: array
          items:
            $ref: '#/components/schemas/ConversationTag'
          description: The Tags assigned to the Conversation.
        created_on:
          type: string
          format: date-time
          readOnly: true
          title: Creado el
        source:
          allOf:
          - $ref: '#/components/schemas/ConversationSourceEnum'
          readOnly: true
        assigned_team:
          type: integer
          description: The ID of the Team assigned to the Conversation.
        channel:
          type:
          - integer
          - 'null'
      required:
      - assigned
      - contact
      - created_on
      - id
      - source
    MessageStatusEnum:
      enum:
      - new
      - retry
      - accepted
      - sending
      - sent
      - receiving
      - received
      - delivered
      - undelivered
      - failed
      - read
      - deleted
      type: string
    MessageTypeEnum:
      enum:
      - audio
      - voice
      - button
      - document
      - text
      - image
      - interactive
      - order
      - sticker
      - system
      - unknown
      - video
      - unsupported
      - location
      - contacts
      - template
      - reaction
      - ephemeral
      type: string
    ConversationSourceEnum:
      enum:
      - INBOX
      - AUTO_RESPONSE
      - API
      - BROADCAST
      - FLOW
      - UNKNOWN
      type: string
    PaginatedConversationReadSimpleList:
      type: object
      properties:
        count:
          type: integer
          example: 123
        next:
          type:
          - string
          - 'null'
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type:
          - string
          - 'null'
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/ConversationReadSimple'
    WhatsAppMessageSimple:
      type: object
      properties:
        id:
          type: string
        to_number:
          type: string
          readOnly: true
        from_number:
          type: string
          readOnly: true
        body:
          type:
          - string
          - 'null'
        direction:
          type: string
        timestamp:
          type: string
          format: date-time
          readOnly: true
        contact:
          type: string
        status:
          allOf:
          - $ref: '#/components/schemas/MessageStatusEnum'
          readOnly: true
        queued_on:
          type: string
          format: date-time
          readOnly: true
        accepted_on:
          type: string
          format: date-time
          readOnly: true
        sent_on:
          type: string
          format: date-time
          readOnly: true
        delivered_on:
          type: string
          format: date-time
          readOnly: true
        read_on:
          type: string
          format: date-time
          readOnly: true
        failed_on:
          type: string
          format: date-time
          readOnly: true
        provider_id:
          type: string
          readOnly: true
        provider_error_code:
          type: string
          readOnly: true
        provider_error_message:
          type: string
          readOnly: true
        sent_by:
          $ref: '#/components/schemas/SimpleUser'
        is_deleted:
          type: boolean
          readOnly: true
        content:
          type: object
          additionalProperties: {}
          readOnly: true
        whatsapp_template:
          type: string
          format: uuid
          readOnly: true
        content_type:
          type: string
          readOnly: true
        content_url:
          type:
          - string
          - 'null'
          format: uri
          maxLength: 200
        msg_type:
          $ref: '#/components/schemas/MessageTypeEnum'
        failed_attempts:
          type: integer
          readOnly: true
        source:
          allOf:
          - $ref: '#/components/schemas/MessageSourceEnum'
          readOnly: true
      required:
      - accepted_on
      - contact
      - content
      - content_type
      - delivered_on
      - direction
      - failed_attempts
      - failed_on
      - from_number
      - id
      - is_deleted
      - provider_error_code
      - provider_error_message
      - provider_id
      - queued_on
      - read_on
      - sent_by
      - sent_on
      - source
      - status
      - timestamp
      - to_number
      - whatsapp_template
    UserRoleEnum:
      enum:
      - AGENT
      - MANAGER
      - ADMIN
      - FINANCE
      type: string
    AccountMemberUserBasicRead:
      type: object
      properties:
        id:
          type: integer
        first_name:
          type: string
          readOnly: true
        last_name:
          type: string
          readOnly: true
        email:
          type: string
          format: email
          readOnly: true
          title: Email address
        account:
          type: integer
          readOnly: true
        profile_image:
          type: string
          format: uri
          readOnly: true
        date_joined:
          type: string
          format: date-time
          readOnly: true
      required:
      - account
      - date_joined
      - email
      - first_name
      - id
      - last_name
      - profile_image
    MessageSourceEnum:
      enum:
      - INBOUND
      - INBOX
      - AUTO_RESPONSE
      - API
      - BROADCAST
      - FLOW
      type: string
    AccountMemberUserBasicEdit:
      type: object
      properties:
        id:
          type: integer
      required:
      - id
    SimpleUser:
      type: object
      properties:
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
        email:
          type: string
          format: email
          title: Email address
          maxLength: 254
        id:
          type: integer
          readOnly: true
        profile_image:
          type:
          - string
          - 'null'
          format: uri
        role:
          $ref: '#/components/schemas/UserRoleEnum'
      required:
      - id
    PatchedConversationEdit:
      type: object
      properties:
        id:
          type: string
          description: The UUID of the Conversation.
        contact:
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/ConversationStatusEnum'
        assigned:
          type: array
          items:
            $ref: '#/components/schemas/AccountMemberUserBasicEdit'
          description: The Users assigned to the Conversation.
        tags:
          type: array
          items:
            $ref: '#/components/schemas/ConversationTag'
          description: The Tags assigned to the Conversation.
        created_on:
          type: string
          format: date-time
          readOnly: true
          title: Creado el
        source:
          allOf:
          - $ref: '#/components/schemas/ConversationSourceEnum'
          readOnly: true
        assigned_team:
          type: integer
          description: The ID of the Team assigned to the Conversation.
        channel:
          type:
          - integer
          - 'null'
    ConversationTag:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 100
      required:
      - id
      - name
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"