{"openapi":"3.0.0","info":{"title":"Chatbot","description":"Chatbot APIs allow developers to interface with [chatbot](https://developers.zoom.us/docs/team-chat-apps/) features programmatically. These APIs are part of Zoom's app ecosystem and allow chatbots to send and receive messages, respond to user inputs, and perform actions within Zoom Team Chat. They are particularly useful for automating tasks, providing notifications, or integrating third-party services with Zoom.","termsOfService":"https://zoom.us/docs/en-us/zoom_api_license_and_tou.html","contact":{"name":"Zoom Developers","url":"https://developer.zoom.us/"},"version":"2"},"externalDocs":{"description":"Find out more about Swagger","url":"https://swagger.io"},"servers":[{"url":"https://api.zoom.us/v2"}],"paths":{"/im/chat/messages":{"post":{"tags":["Chatbot Messages"],"summary":"Send Chatbot messages","description":"Sends messages from your Marketplace Chatbot app. \n\n **Authorization Flow:** Client Credentials Flow \n\n To authorize, make a POST request to the `/oauth/token` endpoint with the `client_credentials` grant type. Use the `https://api.zoom.us/oauth/token?grant_type=client_credentials` endpoint for the request. \n\n You will need to send your Client ID and Secret as a Basic Base64-encoded authorization header (for example, `Basic base64Encode({client_id}:{client_secret}`). Then, use the received `access_token` value as a Bearer token when you make the GET `/im/chat/users/{user_id}/messages/{message_id}` request. \n\n For more information about authorizing Chatbots, read the Chatbot [**Installation and Authentication**](https://developers.zoom.us/docs/team-chat-apps/installation-and-authentication/) documentation.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `imchat:bot`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"sendChatbot","requestBody":{"content":{"application/json":{"schema":{"required":["account_id","content","robot_jid","to_jid","user_jid"],"type":"object","properties":{"robot_jid":{"type":"string","description":"The bot JID. You can find this value in the **Feature** tab's **Chat Subscription** section of your Marketplace Chatbot app.","example":"v1pky3tyBBB5pl8q@xmpp.zoom.us"},"to_jid":{"type":"string","description":"The JID of the group channel or user to whom the message was sent.","example":"xghfd@shj.zoom.us"},"account_id":{"type":"string","description":"The authorized account's account ID.","example":"ABCDE12345"},"content":{"type":"object","properties":{},"description":"A JSON-format template that describes how the edited message should be displayed for the user. For more information, read our Chatbot [Send, Edit, and Delete Messages](/docs/team-chat-apps/send-edit-and-delete-messages/#send-messages) documentation."},"visible_to_user":{"type":"string","description":"The user ID of the user who will receive Chatbot messages in the group channel. Only this user will see the Chatbot's messages.","example":"FGHIJ67890@xmpp.zoom.us"},"user_jid":{"type":"string","description":"The JID of the user on whose behalf the message is being sent. This is used to prevent members of a channel from getting notifications that were set up by a user who has left the channel.","example":"jnrgfjp6w@xmpp.zoom.us"},"reply_to":{"type":"string","description":"The unique identifier of the parent message to which you want to send the chatbot's reply.","example":"5AF2A82E-9220-4600-AFB2-A028852E377C"},"is_markdown_support":{"type":"boolean","description":"Whether to apply the [Markdown parser to your Chatbot message](/docs/team-chat-apps/customizing-messages/message-with-markdown/).","example":true}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`.","content":{"application/json":{"schema":{"required":["message_id","robot_jid","sent_time","to_jid"],"type":"object","properties":{"robot_jid":{"type":"string","description":"The bot JID. You can find this value in the **Feature** tab's **Chat Subscription** section of your Marketplace Chatbot app.","example":"v1pky3tyBBB5pl8q@xmpp.zoom.us"},"to_jid":{"type":"string","description":"The JID of the group channel or user to whom the message was sent.","example":"xghfd@shj.zoom.us"},"sent_time":{"type":"string","description":"The date and time at which the message was sent in UTC timezone. Format: `yyyy-MM-dd HH:mm:ss`","example":"2019-10-17 01:40:24"},"message_id":{"type":"string","description":"The unique identifier of the message.","example":"DWQ2A82E-9220-4600-AFB2-A028852E377C"},"user_jid":{"type":"string","description":"The JID of the user on whose behalf the message is being sent.","example":"jnrgfjp6w@xmpp.zoom.us"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `7001` <br>\n Invalid Request Body format. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `7010` <br>\n * Missing Authorization header. \n* Invalid Authorization token. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `7003` <br>\n No Chatbot can be found with the given robot_jid value. <br>\n**Error Code:** `7004` <br>\n * Not authorized. \n* No channel or user can be found with the given to_jid value. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `7002` <br>\n Invalid robot_jid value specified in the Request Body. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["imchat:bot"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["IMChatBot:Edit"],"x-macro-scopes":["imchat:bot"]}}},"/im/chat/messages/{message_id}":{"put":{"tags":["Chatbot Messages"],"summary":"Edit a Chatbot message","description":"Use this API to edit a message [sent](/api-reference/chatbot/methods#operation/sendChatbot) by your Chatbot app. \n\n After sending a message via the [**Send Chatbot message**](/api-reference/chatbot/methods#operation/sendChatbot) API, you must store the `messageId` value returned in the API response in order to make edits to the associated message using this API. \n\n **Authorization Flow:** Client Credentials Flow \n\n To authorize, make a POST request to the `/oauth/token` endpoint with the `client_credentials` grant type. Use the `https://api.zoom.us/oauth/token?grant_type=client_credentials` endpoint for the request. \n\n You will need to send your Client ID and Secret as a Basic Base64-encoded authorization header (for example, `Basic base64Encode({client_id}:{client_secret}`). Then, use the received `access_token` value as a Bearer token when you make the GET `/im/chat/users/{user_id}/messages/{message_id}` request. \n\n For more information about authorizing Chatbots, read the Chatbot [**Installation and Authentication**](https://developers.zoom.us/docs/team-chat-apps/installation-and-authentication/) documentation.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `imchat:bot`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"editChatbotMessage","parameters":[{"name":"message_id","in":"path","description":"The message ID. You can get this value from the [**Send Chatbot message**](/docs/api/rest/reference/chatbot/methods/#operation/sendChatbot) API.","required":true,"schema":{"type":"string","example":"201910tryyRFjM_main"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["account_id","content","robot_jid"],"type":"object","properties":{"robot_jid":{"type":"string","description":"The Bot JID. You can find this value in the **Feature** tab's **Chat Subscription** section of your Marketplace Chatbot app.","example":"v1pky3tyBBB5pl8q@xmpp.zoom.us"},"account_id":{"type":"string","description":"The account ID to which the message was sent. You can get this value from the [Chatbot request sent to your server](/docs/team-chat-apps/send-edit-and-delete-messages/#send-messages).","example":"ABCDE12345"},"content":{"type":"object","properties":{},"description":"A JSON-format template that describes how the edited message should be displayed for the user. For more information, read our Chatbot [Send, Edit, and Delete Messages](/docs/team-chat-apps/send-edit-and-delete-messages/#send-messages) documentation."},"user_jid":{"type":"string","description":"The JID of the user on whose behalf the message is being sent. This is used to prevent members of a channel from getting notifications that were set up by a user who has left the channel.","example":"jnrgfjp6w@xmpp.zoom.us"},"is_markdown_support":{"type":"boolean","description":"Whether to apply the [Markdown parser to your Chatbot message](/docs/team-chat-apps/customizing-messages/message-with-markdown/).","example":true}}}}}},"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \n Message updated.","content":{"application/json":{"schema":{"type":"object","properties":{"message_id":{"type":"string","description":"The updated message's ID.","example":"201910tryyRFjM_main"},"robot_jid":{"type":"string","description":"The Bot JID. You can find this value in the **Feature** tab's **Chat Subscription** section of your Marketplace Chatbot app.","example":"v1pky3tyBBB5pl8q@xmpp.zoom.us"},"sent_time":{"type":"string","description":"The date and time at which the message was sent.","example":"2019-10-17 01:40:24 +0000"},"to_jid":{"type":"string","description":"The JID of the group channel or user to whom the message was sent.","example":"xghfd@shj.zoom.us"},"user_jid":{"type":"string","description":"The JID of the user on whose behalf the message is being sent. This is used to prevent members of a channel from getting notifications that were set up by a user who has left the channel.","example":"jnrgfjp6w@xmpp.zoom.us"}}}}}},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `8001` <br>\n Invalid message_id value. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["imchat:bot"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["IMChatBot:Edit"],"x-macro-scopes":["imchat:bot"]}},"delete":{"tags":["Chatbot Messages"],"summary":"Delete a Chatbot message","description":"Deletes a message from your Chatbot app. \n\n **Authorization Flow:** Client Credentials Flow \n\n To authorize, make a POST request to the `/oauth/token` endpoint with the `client_credentials` grant type. Use the `https://api.zoom.us/oauth/token?grant_type=client_credentials` endpoint for the request. \n\n You will need to send your Client ID and Secret as a Basic Base64-encoded authorization header (for example, `Basic base64Encode({client_id}:{client_secret}`). Then, use the received `access_token` value as a Bearer token when you make the GET `/im/chat/users/{user_id}/messages/{message_id}` request. \n\n For more information about authorizing Chatbots, read the Chatbot [Authentication**](https://developers.zoom.us/docs/team-chat-apps/installation-and-authentication/) documentation.  \n\n**JSON payloads for guest users**:\nBe aware that guest users (users not signed in to Zoom or who are members of a different account) are assigned temporary IDs that are valid only for the duration of that meeting or chat channel. Data for guest users in JSON payloads is associated with these temporary IDs.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `imchat:bot`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"deleteAChatbotMessage","parameters":[{"name":"message_id","in":"path","description":"The message ID. You can get this value from the [**Send Chatbot message**](/docs/api/rest/reference/chatbot/methods/#operation/sendChatbot) API.","required":true,"schema":{"type":"string","example":"201910tryyRFjM_main"}},{"name":"account_id","in":"query","description":"The account ID to which the message was sent. You can get this value from the [Chatbot request sent to your server](/docs/team-chat-apps/send-edit-and-delete-messages/#send-messages).","required":true,"schema":{"type":"string","example":"ABCDE12345"}},{"name":"user_jid","in":"query","description":"The JID of the user on whose behalf the message is being sent. This is used to prevent members of a channel from getting notifications that were set up by a user who has left the channel.","required":false,"schema":{"type":"string","example":"jnrgfjp6w@xmpp.zoom.us"}},{"name":"robot_jid","in":"query","description":"The robot JID. This is created when enabling Chatbot features on your Marketplace app.","required":true,"schema":{"type":"string","example":"v1pky3tyBBB5pl8q@xmpp.zoom.us"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \n Message deleted.","content":{"application/json":{"schema":{"type":"object","properties":{"message_id":{"type":"string","description":"The deleted message's ID.","example":"201910tryyRFjM_main"},"robot_jid":{"type":"string","description":"The Bot JID. You can find this value in the **Feature** tab's **Chat Subscription** section of your Marketplace Chatbot app.","example":"v1pky3tyBBB5pl8q@xmpp.zoom.us"},"sent_time":{"type":"string","description":"The date and time at which the message was deleted. UTC timezone. Format: `yyyy-MM-dd HH:mm:ss","example":"2019-10-17 01:40:24 +0000"},"to_jid":{"type":"string","description":"The JID of the group channel or user to whom the message was sent.","example":"xghfd@shj.zoom.us"},"user_jid":{"type":"string","description":"The JID of the user on whose behalf the message is being sent. This is used to prevent members of a channel from getting notifications that were set up by a user who has left the channel.","example":"jnrgfjp6w@xmpp.zoom.us"}}}}}},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `8001` <br>\n Invalid message_id. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["imchat:bot"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["IMChatBot:Edit"],"x-macro-scopes":["imchat:bot"]}}},"/im/chat/users/{userId}/unfurls/{triggerId}":{"post":{"tags":["Chatbot Messages"],"summary":"Link Unfurls","description":"Unfurls a link with your Marketplace Chat app.  \n\n**Authorization Flow:** \nThe client credentials flow authorizes and  makes a POST request to the  `/oauth/token` endpoint with the `client_credentials` grant type. \n\n- Use the `https://api.zoom.us/oauth/token?grant_type=client_credentials` endpoint for the request.  \n\n- You must send your client ID and secret as a basic Base64-encoded authorization header. (For example, `Basic base64Encode({client_id}:{client_secret}`). \n\n- Use the received `access_token` value as a Bearer token when you make the GET `/im/chat/users/{user_id}/messages/{message_id}` request.  \n\nFor more information about authorizing Chatbots, see the Chatbot [**Authorization and installation**](https://developers.zoom.us/docs/team-chat-apps/installation-and-authentication/) documentation.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `imchat:bot`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"unfurlingLink","parameters":[{"name":"userId","in":"path","description":"The unique identifier of the user.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},{"name":"triggerId","in":"path","description":"The unique identification of the unfurling request. It can come from the `team_chat.link_shared` webhook.","required":true,"schema":{"type":"string","example":"1LTfy8QvPG4GTvdg"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["content"],"type":"object","properties":{"content":{"type":"string","description":"A JSON-format template that describes how the edited message should be displayed for the user. \n\nFor more information, see the Chatbot [Customizing-Messages](https://developers.zoom.us/docs/team-chat-apps/customizing-messages/) documentation.","example":""}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204` Link unfurls successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `7001` <br>\n Invalid Request Body format. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `7010` <br>\n * Missing Authorization header. * Invalid Authorization token. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `8002` <br>\n Invalid unfurl_id. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["imchat:bot"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["IMChatBot:Edit"],"x-macro-scopes":["imchat:bot"]}}}},"components":{"securitySchemes":{"openapi_authorization":{"type":"apiKey","name":"Authorization","in":"header"},"openapi_oauth":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"/","tokenUrl":"","refreshUrl":"","scopes":{"imchat:bot":"imchat:bot"}}}}}}}