8x8

Contact Center Chat Gateway

8x8 Contact Center Chat Gateway API for bridging external chat channels into 8x8 Contact Center conversations.

OpenAPI Specification

8x8-actions-events-contact-center-chat-gateway-v1.yml Raw ↑
openapi: 3.0.0
info:
  title: 'Contact Center Chat Gateway'
  version: 1.0.0
  contact:
    email: "cc-cluj-iris@8x8.com"
  description: "Integration with the 8x8 Contact Center (CC) Chat API"

servers:
  - url: https://api.8x8.com

tags:
  - name: Info
    description: "General information about the API."
  - name: WebHooks
    description: "Enables webhook definitions that can be associated to channels."
  - name: JwkKeys
    description: "An API that offers JWK public key access to customers."
  - name: Channels
    description: "Enables ChatAPI channel registration and association with a webhook containing channel."
  - name: Conversations
    description: "Provides Contact Center interaction capabilities."
  - name: Participants
    description: "Enables participants access control."
  - name: Messages
    description: "Allows adding and retrieving messages of a conversation."
  - name: Attachments
    description: "Allows adding and retrieving attachments of a conversation."

paths:
  "/chat-gateway/v1/webhooks":
    get:
      tags:
        - WebHooks
      summary: "Retrieves all customer webhooks based on the associated token information."
      description: "Retrieves all customer webhooks based on the associated token information."
      operationId: getwebhooks-1
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/PageSizeFilterOptional"
        - $ref: "#/components/parameters/PageIndexFilterOptional"
        - $ref: "#/components/parameters/SortByOptional"
        - $ref: "#/components/parameters/FilterOptional"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      responses:
        "200":
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/WebHooksV2ListResult"
        "400":
          $ref: "#/components/responses/GeneralErrorResponse"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
    post:
      tags:
        - WebHooks
      summary: "Creates a new customer webhook."
      description: "Creates a new customer webhook."
      operationId: createwebhook-1
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WebHookV2CreateRequest"
      responses:
        "200":
          description: "WebHook created successfully."
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/WebHookV2Result"
        "400":
          $ref: "#/components/responses/GeneralErrorResponse"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
  "/chat-gateway/v1/webhooks/{webhookId}":
    get:
      tags:
        - WebHooks
      summary: "Get webhook by Id."
      description: "Retrieves the webhook by the provided Id."
      operationId: getwebhookbyid-1
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/WebHookUrlID"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      responses:
        "200":
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/WebHookV2Result"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "404":
          $ref: "#/components/responses/ResourceNotFoundResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
    put:
      tags:
        - WebHooks
      summary: "Updates the full webhook resource by Id."
      description: "Updates the full webhook resource by Id."
      operationId: updatewebhook-1
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/WebHookUrlID"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WebHookV2PutRequest"
      responses:
        "200":
          description: "Webhook successfully updated."
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/WebHookV2Result"
        "400":
          $ref: "#/components/responses/GeneralErrorResponse"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "404":
          $ref: "#/components/responses/ResourceNotFoundResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
    delete:
      tags:
        - WebHooks
      summary: "Deletes the webhook by Id."
      description: "Deletes the webhook by Id."
      operationId: deletewebhookbyid-1
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/WebHookUrlID"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      responses:
        "204":
          description: "A deleted resource."
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "404":
          $ref: "#/components/responses/ResourceNotFoundResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
  "/chat-gateway/v1/webhooks/verify":
    post:
      tags:
        - WebHooks
      summary: "The endpoint used to validate that the webhook is working and reachable."
      description: "Validates the webhook URL endpoint from the connectivity point-of-view by sending a hello message and a 2xx success status code."
      operationId: verifywebhook-1
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WebHookV2VerifyRequest"
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      responses:
        "204":
          description: "Webhook validated successfully."
        "400":
          $ref: "#/components/responses/GeneralErrorResponse"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
  "/chat-gateway/v1/jwk/{jwkId}/public":
    get:
      tags:
        - JwkKeys
      summary: "Returns the public JWK."
      description: "Returns the public JWK that can be used to validate the message signature."
      operationId: getjwkpublickey-1
      parameters:
        - name: jwkId
          in: path
          description: JWK UUID
          required: true
          schema:
            type: string
            format: string
          example: "EXaiWfZe20eSjklZ70074w"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: string
                example: { "kty":"RSA", "e":"AQAB", "kid":"EXaiWfZe20eSjklZ70074w", "n":"obq8u-Yq9VgIqsfOFftSr-TINYrL8xNWhYhJjYtPp5DTQK3g1_ylCl6HMmRnEgb9wlkNfk9iazvkOU_XvyZSdfHNm173FlX3YgAPj_snUnCDO1Y0b0M4trK-iGUJP4A_tT4XauI1YJ96rEQAHzfOvsnnniFVqlK5pAMKWnVD4LhRbaEFLOnvMuNCiB13CPF7ZY4j7Aahf8KKdSiBJDw9um1lw5gfKe2j2DN7UOPm5Msz_is-C343xVaJ81d8W9ihDCX9JgaZEYciol-224n6F_gmUMWIfTTCRK3GC2_fnEXXWQbQvACA28Zf40h9iXiWiVdIXFGQgz2lQ7dg4ksUvw" }
        "404":
          $ref: "#/components/responses/ResourceNotFoundResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
  "/chat-gateway/v1/channels":
    get:
      tags:
        - Channels
      summary: "Retrieves all customer Chat API channels."
      description: "Retrieves all customer Chat API channels based on the provided access token information."
      operationId: getchatapichannels-1
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/PageSizeFilterOptional"
        - $ref: "#/components/parameters/PageIndexFilterOptional"
        - $ref: "#/components/parameters/SortByOptional"
        - $ref: "#/components/parameters/FilterOptional"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      responses:
        "200":
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/ChannelsV2ListResult"
        "400":
          $ref: "#/components/responses/GeneralErrorResponse"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "404":
          $ref: "#/components/responses/GeneralErrorResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
    post:
      tags:
        - Channels
      summary: "Creates a channel."
      description: "Create a new channel for a customer."
      operationId: createchatapichannel-1
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChannelV2CreateRequest"
      responses:
        "200":
          description: "Channel created successfully."
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/ChannelV2Result"
        "400":
          $ref: "#/components/responses/GeneralErrorResponse"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/GeneralErrorResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
  "/chat-gateway/v1/channels/{channelId}":
    get:
      tags:
        - Channels
      summary: "Get ChatAPI channel by Id."
      description: "Retrieves ChatAPI channel by Id."
      operationId: getchatapichannel-1
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/ChatAPIChannelUrlID"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      responses:
        "200":
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/ChannelV2Result"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "404":
          $ref: "#/components/responses/ResourceNotFoundResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
    put:
      tags:
        - Channels
      summary: "Update ChatAPI channel by Id."
      description: "Update ChatAPI channel by Id."
      operationId: updatechatapichannel-1
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/ChatAPIChannelUrlID"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChannelV2PutRequest"
      responses:
        "200":
          description: "Channel updated successfully."
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/ChannelV2Result"
        "400":
          $ref: "#/components/responses/GeneralErrorResponse"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "404":
          $ref: "#/components/responses/ResourceNotFoundResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
    delete:
      tags:
        - Channels
      summary: "Delete ChatAPI channel by Id."
      description: "Deletes ChatAPI channel by the provided Id."
      operationId: deletechatapichannelbyid-1
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/ChatAPIChannelUrlID"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      responses:
        "204":
          description: "Deleted resource."
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "404":
          $ref: "#/components/responses/ResourceNotFoundResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
  "/chat-gateway/v1/conversations":
    get:
      tags:
        - Conversations
      summary: "Returns all conversations belonging to the customer."
      description: "Returns a list of all conversations belonging to the customer that comply with the provided filters."
      operationId: getcctransactions-1
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/PageSizeFilterOptional"
        - $ref: "#/components/parameters/PageIndexFilterOptional"
        - $ref: "#/components/parameters/SortByOptional"
        - $ref: "#/components/parameters/FilterOptional"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      responses:
        "200":
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/ConversationListResult"
        "400":
          $ref: "#/components/responses/GeneralErrorResponse"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
    post:
      tags:
        - Conversations
      summary: "Creates a new conversation."
      description: "Creates a new transaction in the Contact Center and returns a conversation Id as an identifier that can be used later on to send messages to agent and also close the ongoing transaction."
      operationId: createcctransaction-1
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      requestBody:
        $ref: "#/components/requestBodies/CreateTransactionRequestBody"
      responses:
        "202":
          description: "Conversation entity is created and the associated interaction is in the process of being created. The state of the conversation entity is CREATED and the first webhook event is sent with CREATED state. A webhook event stating that the conversation is ACTIVE will be sent after the interaction is also created and the state field in the conversation resource will be ACTIVE."
          content:
            application/hal+json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/ConversationIdentifierField"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "400":
          $ref: "#/components/responses/GeneralErrorResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
  "/chat-gateway/v1/conversations/{conversationId}":
    put:
      tags:
        - Conversations
      summary: "Update a conversation details."
      description: "Update a conversation details."
      operationId: putcctransaction
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/ChatAPIConversationUrlID"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      requestBody:
        $ref: "#/components/requestBodies/UpdateTransactionRequestBody"
      responses:
        "202":
          description: "Transaction accepted. Assignment changes are still processing and the success of the operation will be reflected by the webhook event or by the changes to the assignment field in the conversation resource."
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/ConversationResult"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "404":
          $ref: "#/components/responses/ResourceNotFoundResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
    patch:
      tags:
        - Conversations
      summary: "Patch a conversation details."
      description: "Patch a conversation details."
      operationId: patchcctransaction
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/ChatAPIConversationUrlID"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      requestBody:
        $ref: "#/components/requestBodies/PatchTransactionRequestBody"
      responses:
        "202":
          description: "Transaction accepted. Assignment changes are still processing and the success of the operation will be reflected by the webhook event or by the changes to the assignment field in the conversation resource."
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/ConversationResult"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "404":
          $ref: "#/components/responses/ResourceNotFoundResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
    get:
      tags:
        - Conversations
      summary: "Retrieves conversation details."
      description: "Retrieves conversation details."
      operationId: getcctransaction-1
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/ChatAPIConversationUrlID"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      responses:
        "200":
          description: "Returns the conversation details."
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/ConversationResult"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "404":
          $ref: "#/components/responses/ResourceNotFoundResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"

  "/chat-gateway/v1/conversations/{conversationId}/interactions":
    get:
      tags:
        - Conversations
      summary: "Returns all conversations belonging to the customer."
      description: "Returns a list of all conversations belonging to the customer that comply with the provided filters."
      operationId: getccinteractions
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/ChatAPIConversationUrlID"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      responses:
        "200":
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/InteractionsListResult"
        "400":
          $ref: "#/components/responses/GeneralErrorResponse"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "404":
          $ref: "#/components/responses/ResourceNotFoundResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
  "/chat-gateway/v1/conversations/{conversationId}/post-agent-assignment":
    post:
      tags:
        - Conversations
      summary: "Creates a post agent assignment for a conversation."
      description: "Creates a post-agent assignment for a conversation. This endpoint allows the conversation to be handed back to the bot after an agent finishes their interaction, to ensure seamless continuation of the customer's digital journey after agent interactions, allowing for tasks such as surveys or further automated assistance. The flexible assignment mechanism supports various post-conversation workflows and is designed to be extensible for different use cases after the agent engagement has concluded."
      operationId: createpostagentassignment
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/ChatAPIConversationUrlID"
      requestBody:
        $ref: "#/components/requestBodies/PostAgentAssignmentRequestBody"
      responses:
        "201":
          description: CREATED
        "400":
          $ref: "#/components/responses/InvalidParameterExceptionResponse"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "404":
          $ref: "#/components/responses/ResourceNotFoundExceptionResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
  "/chat-gateway/v1/conversations/{conversationId}/typing":
    post:
      tags:
        - Conversations
      summary: "Creates a typing indicator for a conversation."
      description: " Sends a typing indicator to the Chalet room associated with the given conversation. Requires an authorType of either 'user' or 'bot' to determine the identity used when sending the indicator."
      operationId: sendtypingindicator
      security:
        - 8x8ApiKey: [ "Contact Center Chat Gateway" ]
      parameters:
        - $ref: "#/components/parameters/ChatAPIConversationUrlID"
      requestBody:
        $ref: "#/components/requestBodies/TypingRequestBody"
      responses:
        "204":
          description: No Content
        "400":
          $ref: "#/components/responses/InvalidParameterExceptionResponse"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "404":
          $ref: "#/components/responses/ResourceNotFoundExceptionResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
  "/chat-gateway/v1/conversations/{conversationId}/thinking":
    post:
      tags:
        - Conversations
      summary: "Sends a thinking indicator for a conversation."
      description: "Sends a thinking indicator notification to the Chalet backplane room-update resource, signaling that the bot is processing. The request body is optional; when omitted, defaults are applied (authorType='bot', maxThinkingTimeSeconds=60)."
      operationId: sendthinkingindicator
      security:
        - 8x8ApiKey: [ "Contact Center Chat Gateway" ]
      parameters:
        - $ref: "#/components/parameters/ChatAPIConversationUrlID"
      requestBody:
        $ref: "#/components/requestBodies/ThinkingIndicatorRequestBody"
      responses:
        "204":
          description: No Content
        "400":
          $ref: "#/components/responses/InvalidParameterExceptionResponse"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "404":
          $ref: "#/components/responses/ResourceNotFoundExceptionResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
  "/chat-gateway/v1/conversations/{conversationId}/read-receipt":
    post:
      tags:
        - Conversations
      summary: "Sends a read receipt for a conversation."
      description: "Sends a read receipt to the Chalet room associated with the given conversation, indicating that all messages up to the given timestamp have been read. Requires an authorType of either 'user' or 'bot'. The 'user' authorType is only allowed for CHAT_API channels."
      operationId: sendreadreceipt
      security:
        - 8x8ApiKey: [ "Contact Center Chat Gateway" ]
      parameters:
        - $ref: "#/components/parameters/ChatAPIConversationUrlID"
      requestBody:
        $ref: "#/components/requestBodies/ReadReceiptRequestBody"
      responses:
        "204":
          description: No Content
        "400":
          $ref: "#/components/responses/InvalidParameterExceptionResponse"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "404":
          $ref: "#/components/responses/ResourceNotFoundExceptionResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
  "/chat-gateway/v1/conversations/{conversationId}/participants":
    get:
      tags:
        - Participants
      summary: "Retrieve the conversation participants."
      description: "Retrieves all the participants that joined during the lifespan of the conversation."
      operationId: getparticipantsforcctransaction-1
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/ChatAPIConversationUrlID"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      responses:
        "200":
          description: "Participants list"
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/ConversationParticipants"
        "400":
          $ref: "#/components/responses/GeneralErrorResponse"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
  "/chat-gateway/v1/conversations/{conversationId}/participants/user":
    patch:
      tags:
        - Participants
      summary: "User leaves conversation."
      description: "When user leave a conversation. It translates to a current interaction that is being terminated by the user."
      operationId: userparticipantleavecctransaction
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/ChatAPIConversationUrlID"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      requestBody:
        $ref: "#/components/requestBodies/PatchUserParticipantRequestBody"
      responses:
        "204":
          description: "Confirms that the user left the interaction."
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "404":
          $ref: "#/components/responses/ResourceNotFoundResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          description: "Confirms that the user left the interaction."
  "/chat-gateway/v1/conversations/{conversationId}/messages":
    get:
      tags:
        - Messages
      summary: "Retrieves the conversation messages."
      description: "Retrieves the conversation messages that took place during the lifespan of the conversation."
      operationId: getmessagesforcctransaction-1
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/ChatAPIConversationUrlID"
        - $ref: "#/components/parameters/PageSizeFilterOptional"
        - $ref: "#/components/parameters/PageIndexFilterOptional"
        - $ref: "#/components/parameters/SortByDateOptional"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      responses:
        "200":
          description: "Message list"
          content:
            application/hal+json:
              schema:
                $ref: "#/components/schemas/MessageListResult"
        "400":
          $ref: "#/components/responses/GeneralErrorResponse"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"
    post:
      tags:
        - Messages
      summary: "Send a message."
      description: "Send a message to a conversation represented by the provided ID."
      operationId: sendmessagetocctransaction-1
      security:
        - 8x8ApiKey: ["Contact Center Chat Gateway"]
      parameters:
        - $ref: "#/components/parameters/ChatAPIConversationUrlID"
        - $ref: "#/components/parameters/TenantIdFilterOptional"
      requestBody:
        $ref: "#/components/requestBodies/SendMessageToConversationRequest"
      responses:
        "202":
          description: "Accepted message."
        "400":
          $ref: "#/components/responses/BadRequestResponse"
        "401":
          $ref: "#/components/responses/UnauthorizedResponse"
        "403":
          $ref: "#/components/responses/ForbiddenRequestResponse"
        "404":
          $ref: "#/components/responses/ResourceNotFoundResponse"
        "500":
          $ref: "#/components/responses/GeneralErrorResponse"
        "default":
          $ref: "#/components/responses/GeneralErrorResponse"

  "/chat-gateway/v1/conversations/{conversationId}/messages/{messageId}":
    get:
      tags:
        - Messages
      summary: "Retrieves the conversation messages."
      description: "Retrieves the conversation messages that took place during the lifespan of the conversation."
      operationId: getm

# --- truncated at 32 KB (82 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/8x8/refs/heads/main/openapi/8x8-actions-events-contact-center-chat-gateway-v1.yml