openapi: 3.0.0 info: title: Bots threads API description: "

Bots are conversational assistants designed to automate repetitive tasks and manage simple user interactions. Their behavior is fully customizable through predefined Bot Handlers, which are activated by specific actions or through Webhooks that communicate with your own external server.

For more information about Bots, please refer to the Bots Help Documentation.

Bot Handlers

Types of Bot Handlers

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
HandlerDescription
Menu HandlerAdds up to 5 quick-action items to the bot's chat menu. Triggered when a user interacts with the menu.
Message HandlerTriggered when the bot receives a message.
Welcome HandlerDefines the greeting message sent when a user subscribes to the bot.
Mention HandlerTriggered when the bot is @mentioned in a chat or channel.
Incoming Webhook HandlerAllows external services to post messages into the bot via outgoing webhooks.
Context HandlerManages multi-turn conversations, maintaining context across a user's interaction with the bot.

What you can do with the Bots API?

With the Bots API, you can retrieve information about a specific bot, list all bots within your organization, manage configurations specific to handlers, trigger bot calls programmatically, manage subscribers, and much more.

Each bot has an execution_type that defines how its handlers run when a trigger event occurs. The Bots API allows developers to create two types of bots:

Deluge Bots (default)
Deluge bot executes handler logic using Zoho's Deluge scripting language, hosted entirely within the Zoho Cliq Developer platform, where no external server is required.

Webhook Bots
A Webhook bot delegates all handler execution to your own external server. When a trigger event fires, Zoho Cliq sends an HTTP POST request to the execution_url you configure, and your server processes the event and returns a response.

\n" contact: {} version: 1.0.0 servers: - url: https://cliq.zoho.com/api/v3 description: Zoho Cliq US DC tags: - name: threads description: Threads Module paths: /channels/{CHANNEL_ID}/messages: post: summary: Create and send a thread message with CHANNEL_ID operationId: createThreadMessageByChannelId description: "Use this API to create a thread from a message sent in a channel, identified by its CHANNEL_ID.

You can also create a thread using one of the following alternative endpoints:

Note: The channel's reply mode must be set to Threads or Allow both for thread creation to work. See Configuring Reply Mode for Channels for more details.

\n Threshold limit: 20 requests per min per user
\n Number of API calls allowed within a minute.

\n Lock period: 10 minutes
Wait time before consecutive API requests.
\n

\n" parameters: - name: CHANNEL_ID in: path required: true schema: type: string example: CHANNEL_ID description: The unique identifier of the channel in which the thread needs to be created. To learn how to retrieve this ID, see CHANNEL_ID in the Glossary page. - name: bot_unique_name in: query required: false schema: type: string description: 'Use this parameter to send a message in a channel as a bot. Note: The bot should already be a participant in the channel. ' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/thread-creation-payload' responses: '200': description: The request was successfully completed. content: application/json: schema: $ref: '#/components/schemas/thread-creation-response' '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Invalid URL. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '405': description: Method Not Allowed. content: application/json: schema: type: object properties: message: type: string example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method. '406': description: Not Acceptable. content: application/json: schema: type: object properties: message: type: string example: The response has been received but the requested response type is not supported by the browser. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Webhooks.CREATE tags: - threads /chats/{CHAT_ID}/messages: post: summary: Create and send a thread message with CHAT_ID operationId: createThreadMessageByChatId description: "Use this API to create a thread from a message sent in a channel, identified by its CHAT_ID. Every channel in Cliq also has a corresponding chat ID. This endpoint is functionally equivalent to using POST /channels/{CHANNEL_ID}/messages - both target the same channel, just identified differently.

You can also create a thread using one of the following alternative endpoints:

Note: The channel's reply mode must be set to Threads or Allow both for thread creation to work. See Configuring Reply Mode for Channels for more details.

\n Threshold limit: 20 requests per min per user
\n Number of API calls allowed within a minute.

\n Lock period: 10 minutes
Wait time before consecutive API requests.
\n

\n" parameters: - name: CHAT_ID in: path required: true schema: type: string example: CHAT_ID description: The chat ID of the channel in which the thread needs to be created. Every channel has a corresponding chat ID. To learn how to retrieve this ID, see CHAT_ID in the Glossary page. - name: bot_unique_name in: query required: false schema: type: string description: 'Use this parameter to send a message in a channel as a bot. Note: The bot should already be a participant in the channel. ' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/thread-creation-payload' responses: '200': description: The request was successfully completed. content: application/json: schema: $ref: '#/components/schemas/thread-creation-response' '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Invalid URL. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '405': description: Method Not Allowed. content: application/json: schema: type: object properties: message: type: string example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method. '406': description: Not Acceptable. content: application/json: schema: type: object properties: message: type: string example: The response has been received but the requested response type is not supported by the browser. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Webhooks.CREATE tags: - threads /channelsbyname/{CHANNEL_UNIQUE_NAME}/messages: post: summary: Create and send a thread message with CHANNEL_UNIQUE_NAME operationId: createThreadMessageByChannelUniqueName description: "Use this API to create a thread from a message sent in a channel, identified by its unique name. This is useful when you know the channel's unique name but not its ID.

You can also create a thread using one of the following alternative endpoints:

Note: The channel's reply mode must be set to Threads or Allow both for thread creation to work. See Configuring Reply Mode for Channels for more details.

\n Threshold limit: 20 requests per min per user
\n Number of API calls allowed within a minute.

\n Lock period: 10 minutes
Wait time before consecutive API requests.
\n

\n" parameters: - name: CHANNEL_UNIQUE_NAME in: path required: true schema: type: string example: CHANNEL_UNIQUE_NAME description: The unique name of the channel in which the thread needs to be created. To learn how to retrieve this, see CHANNEL_UNIQUE_NAME in the Glossary page. - name: bot_unique_name in: query required: false schema: type: string description: 'Use this parameter to send a message in a channel as a bot. Note: The bot should already be a participant in the channel. ' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/thread-creation-payload' responses: '200': description: The request was successfully completed. content: application/json: schema: $ref: '#/components/schemas/thread-creation-response' '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Invalid URL. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '405': description: Method Not Allowed. content: application/json: schema: type: object properties: message: type: string example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method. '406': description: Not Acceptable. content: application/json: schema: type: object properties: message: type: string example: The response has been received but the requested response type is not supported by the browser. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Webhooks.CREATE tags: - threads /chats/{THREAD_CHAT_ID}/messages: post: summary: Send a message to an existing thread operationId: Send a message to an existing thread description: "Use this API to send a message to an existing thread.\n

\n

\n Threshold limit: 20 requests per min per user
\n Number of API calls allowed within a minute.

\n Lock period: 10 minutes
Wait time before consecutive API requests.
\n

\n" parameters: - name: THREAD_CHAT_ID in: path required: true schema: type: string example: THREAD_CHAT_ID description: Chat ID of the thread where the message should be sent. To learn how to retrieve this ID, see THREAD_CHAT_ID in the Glossary page. - name: bot_unique_name in: query required: false schema: type: string description: 'Use this parameter to send a message in a thread as a bot. Note that the bot should already be a participant in the channel. ' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/send-message-in-thread-payload' responses: '200': description: The request was successfully completed. content: application/json: schema: $ref: '#/components/schemas/thread-creation-response' '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Invalid URL. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '405': description: Method Not Allowed. content: application/json: schema: type: object properties: message: type: string example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method. '406': description: Not Acceptable. content: application/json: schema: type: object properties: message: type: string example: The response has been received but the requested response type is not supported by the browser. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Webhooks.CREATE tags: - threads /threads/{THREAD_CHAT_ID}: put: summary: Update the state of a thread operationId: Update the state of a thread description: "Use this API to update the state or follow status of a thread.\n\n

\n

\n Threshold limit: 20 requests per min per user
\n Number of API calls allowed within a minute.

\n Lock period: 10 minutes
Wait time before consecutive API requests.
\n

\n" parameters: - name: THREAD_CHAT_ID in: path required: true schema: type: string example: THREAD_CHAT_ID description: CHAT ID of the thread whose state is to be updated (closed or reopened). To learn how to retrieve this ID, see THREAD_CHAT_ID in the Glossary page. - name: bot_unique_name in: query required: false schema: type: string description: To use when the action is to be performed by a bot that is already a participant in the channel. - name: appkey in: query required: false schema: type: string description: Must be provided if the specified bot is from an extension. This parameter is to be used along with bot_unique_name. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/update-state-of-thread-request' responses: '204': description: The request was successfully completed. No content is returned. '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Invalid URL. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '405': description: Method Not Allowed. content: application/json: schema: type: object properties: message: type: string example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method. '406': description: Not Acceptable. content: application/json: schema: type: object properties: message: type: string example: The response has been received but the requested response type is not supported by the browser. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Chats.UPDATE tags: - threads /threads/{THREAD_CHAT_ID}/messages/main: get: summary: Get main message of a thread operationId: Get main message of a thread description: "Use this API to retrieve the main message from which the thread was created.\n

\n

\n Threshold limit: 20 requests per min per user
\n Number of API calls allowed within a minute.

\n Lock period: 10 minutes
Wait time before consecutive API requests.
\n

\n" parameters: - name: THREAD_CHAT_ID in: path required: true schema: type: string example: THREAD_CHAT_ID description: The CHAT_ID of the thread whose main (original) message is to be retrieved To learn how to retrieve this ID, see THREAD_CHAT_ID in the Glossary page. responses: '200': description: The request was successfully completed. content: application/json: examples: main_thread_message: summary: Main message for a customer escalation thread value: parent_resource_id: engineering-updates sender: name: Ryan West id: '855727961' mentions: - name: '@Scott Fisher' id: '855727962' type: user - name: '@Tim Harrison' id: '855727963' type: user thread_information: thread_message_id: 1760000012345%201234567890 title: Customer onboarding latency issue follower_count: 3 message_count: 18 chat_id: CT_2242125513190139257_855711548-T-2263887074117538898 id: '1760000012345_1234567890' time: '2026-05-28T10:36:48+00:00' thread_state_information: thread_state: open type: text content: text: The customer onboarding workflow is intermittently delayed. Please share logs and mitigation updates in this thread. is_pinned: false schema: $ref: '#/components/schemas/get-main-message-response' '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Invalid URL. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '405': description: Method Not Allowed. content: application/json: schema: type: object properties: message: type: string example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method. '406': description: Not Acceptable. content: application/json: schema: type: object properties: message: type: string example: The response has been received but the requested response type is not supported by the browser. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Messages.READ tags: - threads /threads/{THREAD_CHAT_ID}/followers: get: summary: Get thread followers operationId: Get thread followers description: 'Use this API to get the followers of the thread. ' parameters: - name: THREAD_CHAT_ID in: path required: true schema: type: string example: THREAD_CHAT_ID description: Chat ID of the thread for which the list of followers needs to be retrieved To learn how to retrieve this ID, see THREAD_CHAT_ID in the Glossary page. responses: '200': description: The request was successfully completed. content: application/json: examples: followers_list: summary: Thread followers in Zylker value: data: - user_id: '855727961' email_id: ryan.west@zylker.com name: Ryan West - user_id: '855727962' email_id: scott.fisher@zylker.com name: Scott Fisher schema: $ref: '#/components/schemas/get-thread-followers-response' '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Invalid URL. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '405': description: Method Not Allowed. content: application/json: schema: type: object properties: message: type: string example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method. '406': description: Not Acceptable. content: application/json: schema: type: object properties: message: type: string example: The response has been received but the requested response type is not supported by the browser. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Chats.READ tags: - threads post: summary: Add followers to a thread operationId: Add followers to a thread description: "Use this API to add one or more users as followers to an existing thread.\n

\n

\n Threshold limit: 20 requests per min per user
\n Number of API calls allowed within a minute.

\n Lock period: 10 minutes
Wait time before consecutive API requests.
\n

\n" parameters: - name: THREAD_CHAT_ID in: path required: true schema: type: string example: THREAD_CHAT_ID description: Chat ID of the thread for which the list of followers needs to be added To learn how to retrieve this ID, see THREAD_CHAT_ID in the Glossary page. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/add-followers-payload' responses: '204': description: The request was successfully completed. No content is returned. '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Invalid URL. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '405': description: Method Not Allowed. content: application/json: schema: type: object properties: message: type: string example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method. '406': description: Not Acceptable. content: application/json: schema: type: object properties: message: type: string example: The response has been received but the requested response type is not supported by the browser. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Chats.UPDATE tags: - threads delete: summary: Remove followers from a thread operationId: Remove followers from a thread description: "Removes one or more specified users from the followers list of a given thread.\n

\n

\n Threshold limit: 20 requests per min per user
\n Number of API calls allowed within a minute.

\n Lock period: 10 minutes
Wait time before consecutive API requests.
\n

\n" parameters: - name: THREAD_CHAT_ID in: path required: true schema: type: string example: THREAD_CHAT_ID description: Chat ID of the thread for which the list of followers needs to be removed To learn how to retrieve this ID, see THREAD_CHAT_ID in the Glossary page. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/remove-followers-payload' responses: '204': description: The request was successfully completed. No content is returned. '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Invalid URL. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '405': description: Method Not Allowed. content: application/json: schema: type: object properties: message: type: string example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method. '406': description: Not Acceptable. content: application/json: schema: type: object properties: message: type: string example: The response has been received but the requested response type is not supported by the browser. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Chats.DELETE tags: - threads /threads/{THREAD_CHAT_ID}/nonfollowers: get: summary: Get non-followers of a thread operationId: Get non-followers of a thread description: "Use this API to retrieve the list of channel members who are not currently following the specified thread.\n

\n

\n Threshold limit: 20 requests per min per user
\n Number of API calls allowed within a minute.

\n Lock period: 10 minutes
Wait time before consecutive API requests.
\n

\n" parameters: - name: THREAD_CHAT_ID in: path required: true schema: type: string example: THREAD_CHAT_ID description: Chat ID of the thread for which the list of non-followers needs to be retrieved To learn how to retrieve this ID, see THREAD_CHAT_ID in the Glossary page. responses: '200': description: The request was successfully completed. content: application/json: examples: nonfollowers_list: summary: Channel members not following the thread value: data: - user_id: '855727963' email_id: tim.harrison@zylker.com name: Tim Harrison schema: $ref: '#/components/schemas/get-thread-followers-response' '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Invalid URL. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '405': description: Method Not Allowed. content: application/json: schema: type: object properties: message: type: string example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method. '406': description: Not Acceptable. content: application/json: schema: type: object properties: message: type: string example: The response has been received but the requested response type is not supported by the browser. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Chats.READ tags: - threads /threads/{THREAD_CHAT_ID}/follow: post: summary: Join (follow) a thread operationId: Join-follow a thread description: "Allows the authenticated user to join a thread as a follower.\n

\n

\n Threshold limit: 20 requests per min per user
\n Number of API calls allowed within a minute.

\n Lock period: 10 minutes
Wait time before consecutive API requests.
\n

\n" parameters: - name: THREAD_CHAT_ID in: path required: true schema: type: string example: THREAD_CHAT_ID description: CHAT ID of the thread to which the authenticated user should be added as a follower To learn how to retrieve this ID, see THREAD_CHAT_ID in the Glossary page. responses: '204': description: The request was successfully completed. No content is returned. '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Invalid URL. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '405': description: Method Not Allowed. content: application/json: schema: type: object properties: message: type: string example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method. '406': description: Not Acceptable. content: application/json: schema: type: object properties: message: type: string example: The response has been received but the requested response type is not supported by the browser. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Chats.UPDATE tags: - threads /threads/{THREAD_CHAT_ID}/unfollow: post: summary: Leave (unfollow) a thread operationId: Leave-unfollow a thread description: "Allows the authenticated user to leave a thread they are currently following.\n

\n

\n Threshold limit: 20 requests per min per user
\n Number of API calls allowed within a minute.

\n Lock period: 10 minutes
Wait time before consecutive API requests.
\n

\n" parameters: - name: THREAD_CHAT_ID in: path required: true schema: type: string example: THREAD_CHAT_ID description: CHAT ID of the thread to which the authenticated user should be removed as a follower To learn how to retrieve this ID, see THREAD_CHAT_ID in the Glossary page. responses: '204': description: The request was successfully completed. No content is returned. '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Invalid URL. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '405': description: Method Not Allowed. content: application/json: schema: type: object properties: message: type: string example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method. '406': description: Not Acceptable. content: application/json: schema: type: object properties: message: type: string example: The response has been received but the requested response type is not supported by the browser. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Chats.UPDATE tags: - threads /chats/{THREAD_CHAT_ID}/members: get: summary: Retrieve members of a thread operationId: Retrieve members of a thread description: "Use this API to fetch participants of a specific thread conversation.\nThis is useful when you want to display who is currently involved in a focused topic discussion without scanning the parent channel.\n

\nCommon use cases:\n\n

\n

\n Threshold limit: 20 requests per min per user
\n Number of API calls allowed within a minute.

\n Lock period: 10 minutes
Wait time before consecutive API requests.
\n

\n" parameters: - name: THREAD_CHAT_ID in: path required: true schema: type: string example: THREAD_CHAT_ID description: The ID of the thread from which members need to be retrieved. To learn how to retrieve this ID, see THREAD_CHAT_ID in the Glossary page. - name: fields in: query required: false schema: type: string description: "Use this parameter to get details of members participating in the thread.
\nAllowed values:\n\n

\n" responses: '200': description: The request was successfully completed. content: application/json: schema: $ref: '#/components/schemas/retrieve-chat-members' '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Invalid URL. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '405': description: Method Not Allowed. content: application/json: schema: type: object properties: message: type: string example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method. '406': description: Not Acceptable. content: application/json: schema: type: object properties: message: type: string example: The response has been received but the requested response type is not supported by the browser. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Chats.READ tags: - threads /chats/{THREAD_CHAT_ID}/leave: post: summary: Leave a thread operationId: Leave a thread description: "Use this API to remove the authenticated user from a thread conversation.\nAfter leaving, the user is no longer an active participant in that thread context.\n

\nThis endpoint is helpful for reducing noise in discussions that are no longer relevant to the user while keeping the parent channel membership unchanged.\n

\n

\n Threshold limit: 20 requests per min per user
\n Number of API calls allowed within a minute.

\n Lock period: 10 minutes
Wait time before consecutive API requests.
\n

\n" parameters: - name: THREAD_CHAT_ID in: path required: true schema: type: string example: THREAD_CHAT_ID description: The ID of the thread that you wish to leave. To learn how to retrieve this ID, see THREAD_CHAT_ID in the Glossary page. responses: '200': description: The request was successfully completed. content: application/json: schema: $ref: '#/components/schemas/no-response' '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Invalid URL. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '405': description: Method Not Allowed. content: application/json: schema: type: object properties: message: type: string example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method. '406': description: Not Acceptable. content: application/json: schema: type: object properties: message: type: string example: The response has been received but the requested response type is not supported by the browser. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Chats.UPDATE tags: - threads /chats/{THREAD_CHAT_ID}/mute: post: summary: Mute a thread operationId: Mute a thread description: "Use this API to mute notifications for a thread while still keeping the thread accessible.\nMuting is ideal for high-volume threads where the user wants to stay in the conversation but avoid immediate notification interruptions.\n

\nThis setting affects thread-level notifications and helps keep topic-based discussions organized without muting the entire parent chat.\n

\n

\n Threshold limit: 20 requests per min per user
\n Number of API calls allowed within a minute.

\n Lock period: 10 minutes
Wait time before consecutive API requests.
\n

\n" parameters: - name: THREAD_CHAT_ID in: path required: true schema: type: string example: THREAD_CHAT_ID description: The ID of the thread that needs to be muted. To learn how to retrieve this ID, see THREAD_CHAT_ID in the Glossary page. responses: '200': description: The request was successfully completed. content: application/json: schema: $ref: '#/components/schemas/no-response' '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Invalid URL. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '405': description: Method Not Allowed. content: application/json: schema: type: object properties: message: type: string example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method. '406': description: Not Acceptable. content: application/json: schema: type: object properties: message: type: string example: The response has been received but the requested response type is not supported by the browser. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Chats.UPDATE tags: - threads /chats/{THREAD_CHAT_ID}/unmute: post: summary: Unmute a thread operationId: Unmute a thread description: "Use this API to restore notifications for a previously muted thread.\nOnce unmuted, the user starts receiving thread updates again according to their notification settings.\n

\nUse this when a discussion becomes active or relevant again and timely visibility of thread replies is required.\n

\n

\n Threshold limit: 20 requests per min per user
\n Number of API calls allowed within a minute.

\n Lock period: 10 minutes
Wait time before consecutive API requests.
\n

\n" parameters: - name: THREAD_CHAT_ID in: path required: true schema: type: string example: THREAD_CHAT_ID description: The ID of the thread that needs to be unmuted. To learn how to retrieve this ID, see THREAD_CHAT_ID in the Glossary page. responses: '200': description: The request was successfully completed. content: application/json: schema: $ref: '#/components/schemas/no-response' '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Invalid URL. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '405': description: Method Not Allowed. content: application/json: schema: type: object properties: message: type: string example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method. '406': description: Not Acceptable. content: application/json: schema: type: object properties: message: type: string example: The response has been received but the requested response type is not supported by the browser. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Chats.UPDATE tags: - threads components: schemas: send-message-in-thread-payload: type: object description: Request body to send a message in an existing thread. required: - text properties: text: type: string description: 'Text to post in the thread. Maximum length: 5000 characters.' example: Let's automate these cases so we can address them during testing. reply_to: type: string description: Optional. Message ID to reply to within the thread. post_in_parent: type: boolean description: Optional. If true, posts the message in the parent chat as well. example: true sync_message: type: boolean description: Optional. If true, posts the message synchronously and returns the message ID. example: true retrieve-chat-members: type: object description: Response object containing members of a chat. properties: members: type: array description: List of members in the chat with detailed user information. items: $ref: '#/components/schemas/Members' thread-creation-response: type: object description: Response returned after creating a thread. properties: message_id: type: string description: ID of the created thread message. example: '1275417686584_20804595296' no-response: type: object description: Response object returned when no content is available. properties: Response Code: type: string description: HTTP response code and message indicating no content. example: 204 No response get-main-message-response: type: object description: Response containing the details of a main message and its thread information. properties: parent_resource_id: type: string description: Resource ID of the parent entity. example: engineering-updates sender: type: object description: Information about the sender of the message. properties: name: type: string example: Ryan West id: type: string example: '855727961' mentions: type: array items: type: object properties: name: type: string example: '@Scott Fisher' id: type: string example: '855727962' type: type: string example: user thread_information: type: object description: Additional thread information. properties: thread_message_id: type: string example: 1760000012345%201234567890 title: type: string example: Customer onboarding latency issue follower_count: type: integer example: 3 message_count: type: integer example: 18 chat_id: type: string example: CT_2242125513190139257_855711548-T-2263887074117538898 id: type: string example: '1760000012345_1234567890' time: type: string format: date-time example: '2026-05-28T10:36:48+00:00' thread_state_information: type: object description: State information of the thread. properties: thread_state: type: string example: open type: type: string example: text content: type: object properties: text: type: string example: The customer onboarding workflow is intermittently delayed. Please share logs and mitigation updates in this thread. is_pinned: type: boolean example: false add-followers-payload: type: object description: Request body to add followers to a thread. required: - user_ids properties: user_ids: type: array description: List of user IDs to add as followers to the thread. items: type: string description: Unique identifier of a user to be added as a follower. example: - '15067889' - '35068981' - '5120923' thread-creation-payload: type: object description: Request body to create a new thread from an existing message. required: - text - thread_message_id properties: text: type: string description: 'Text to post as the initial message in the thread. Maximum length: 5000 characters.' example: Follow this thread for daily updates on ticket resolutions. thread_message_id: type: string description: ID of the parent message from which the thread should be created. example: '1599044334698_117280617320' reply_to: type: string description: Optional. ID of a message to reply to within the thread. post_in_parent: type: boolean description: Optional. If true, posts the thread message in the parent chat as well. example: true thread_title: type: string description: Optional. Title for the thread. example: Ticket Resolution Summary for the Day sync_message: type: boolean description: Optional. If true, posts the message synchronously and returns the message ID. example: true get-thread-followers-response: type: object description: Response containing the list of followers for a particular thread. properties: data: type: array description: List of users following the thread. items: type: object properties: user_id: type: string description: Unique identifier of the user. example: '855727961' email_id: type: string format: email description: Email ID of the user. example: ryan.west@zylker.com name: type: string description: Name of the user. example: Ryan West example: - user_id: '855727961' email_id: ryan.west@zylker.com name: Ryan West - user_id: '855727962' email_id: scott.fisher@zylker.com name: Scott Fisher - user_id: '855727963' email_id: tim.harrison@zylker.com name: Tim Harrison update-state-of-thread-request: type: object description: Request body to update the state of a thread (open or closed). required: - action properties: action: type: string description: "Action to update the thread state.
\nAllowed values:
\n \n" example: close remove-followers-payload: type: object description: Request body to remove followers from a thread. required: - user_ids properties: user_ids: type: array description: List of user IDs to remove from followers of the thread. items: type: string description: Unique identifier of a user to be removed from the thread. example: - '15067889' - '35068981' - '5120923' Members: type: object description: Detailed information about a chat member. properties: user_id: type: string description: Unique identifier of the user. example: '431930546' email_id: type: string format: email description: Email address of the user. example: olivia.palmer@zylcal.com name: type: string description: Full name of the user. example: Olivia - Content Writer securitySchemes: Cliq_Auth: type: oauth2 x-authorization-example: Bearer 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f flows: implicit: authorizationUrl: https://accounts.zoho.com/oauth/v2/auth scopes: ZohoCliq.Bots.READ: Read Bot Information ZohoCliq.Bots.CREATE: Create Bots ZohoCliq.Bots.UPDATE: Update Bots ZohoCliq.Bots.DELETE: Delete Bots ZohoCliq.Webhooks.CREATE: Post messages to conversations via webhooks ZohoCliq.BotMessages.CREATE: Send messages via bot incoming webhooks ZohoCliq.Channels.UPDATE: Update Channel Settings externalDocs: description: Find out more about Zoho Cliq APIs V3 url: https://www.zoho.com/cliq/help/restapi/v3/