openapi: 3.2.0 info: title: WhatsApp Conversations 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 ` header. Production API server is located at api.hilos.io using HTTPS. No versioning info is required for now.' servers: - url: https://{youraccountname}.api-us1.com/api/3 description: Production Server tags: - name: Conversations paths: /channel/whatsapp/inbox/conversation: get: operationId: List Conversations description: 'Lists Conversations. ' summary: 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 tags: - Conversations security: - tokenAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedConversationReadSimpleList' description: '' /channel/whatsapp/inbox/conversation/{id}/update: put: operationId: Update a Conversation description: Update a Conversation summary: Update a conversation parameters: - in: path name: id schema: type: string format: uuid required: true tags: - Conversations 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 security: - tokenAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ConversationEdit' description: '' patch: operationId: Partially update a Conversation description: Partially update a Conversation summary: Partially Update a Conversation parameters: - in: path name: id schema: type: string format: uuid required: true tags: - Conversations 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' security: - tokenAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ConversationEdit' description: '' components: schemas: MessageTypeEnum: enum: - audio - voice - button - document - text - image - interactive - order - sticker - system - unknown - video - unsupported - location - contacts - template - reaction - ephemeral - request_welcome type: string description: '* `audio` - Audio * `voice` - Voice * `button` - Button * `document` - Document * `text` - Text * `image` - Image * `interactive` - Interactive * `order` - Order * `sticker` - Sticker * `system` - System * `unknown` - Unknown * `video` - Video * `unsupported` - Unsupported * `location` - Location * `contacts` - Contacts * `template` - Template * `reaction` - Reaction * `ephemeral` - Ephemeral * `request_welcome` - Request Welcome' 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 - 'null' format: date-time readOnly: true accepted_on: type: - string - 'null' format: date-time readOnly: true sent_on: type: - string - 'null' format: date-time readOnly: true delivered_on: type: - string - 'null' format: date-time readOnly: true read_on: type: - string - 'null' format: date-time readOnly: true failed_on: type: - string - 'null' format: date-time readOnly: true provider_id: type: - string - 'null' readOnly: true provider_error_code: type: - string - 'null' readOnly: true provider_error_message: type: - string - 'null' readOnly: true sent_by: $ref: '#/components/schemas/SimpleUser' is_deleted: type: boolean readOnly: true content: readOnly: true whatsapp_template: type: - string - 'null' format: uuid readOnly: true content_type: type: - string - 'null' readOnly: true content_url: type: - string - 'null' format: uri maxLength: 2000 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 ConversationTag: type: object properties: id: type: integer readOnly: true name: type: string maxLength: 100 required: - id - name UserSimple: 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 account: type: - integer - 'null' readOnly: true profile_image: type: - string - 'null' 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 MessageStatusEnum: enum: - new - retry - accepted - sending - sent - receiving - received - delivered - undelivered - failed - read - deleted type: string description: '* `new` - New * `retry` - Retry * `accepted` - Accepted * `sending` - Sending * `sent` - Sent * `receiving` - Receiving * `received` - Received * `delivered` - Delivered * `undelivered` - Undelivered * `failed` - Failed * `read` - Read * `deleted` - Deleted' SimpleUser: type: object properties: first_name: type: string maxLength: 150 last_name: type: string maxLength: 150 email: type: string format: email maxLength: 254 id: type: integer readOnly: true profile_image: type: - string - 'null' format: uri role: type: - integer - 'null' required: - email - id ConversationSourceEnum: enum: - INBOX - AUTO_RESPONSE - API - BROADCAST - FLOW - UNKNOWN type: string description: '* `INBOX` - Inbox * `AUTO_RESPONSE` - Auto Response * `API` - Api * `BROADCAST` - Broadcast * `FLOW` - Flow * `UNKNOWN` - Unknown' 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/UserBasicEdit' 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 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/UserSimple' 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 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/UserBasicEdit' 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' UserBasicEdit: type: object properties: id: type: integer required: - id ConversationStatusEnum: enum: - CREATED - FLOW - NEW - IN_PROGRESS - RESOLVED - CLOSED type: string description: '* `CREATED` - Created * `FLOW` - Flow * `NEW` - New * `IN_PROGRESS` - In Progress * `RESOLVED` - Resolved * `CLOSED` - Closed' MessageSourceEnum: enum: - INBOUND - INBOX - AUTO_RESPONSE - API - BROADCAST - FLOW type: string description: '* `INBOUND` - Inbound * `INBOX` - Inbox * `AUTO_RESPONSE` - Auto Response * `API` - Api * `BROADCAST` - Broadcast * `FLOW` - Flow' PaginatedConversationReadSimpleList: type: object required: - count - results 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' securitySchemes: tokenAuth: type: apiKey in: header name: Token description: Token-based authentication with required prefix "Token" x-tagGroups: - name: Users tags: - User - name: Channels tags: - WhatsApp - Broadcast - name: Flows tags: - Flow Execution - Flow Execution Contact - name: CRM tags: - Contact - Conversation - name: Integrations tags: - Webhook Subscription