{"openapi":"3.0.0","info":{"title":"Chat API","description":"The Zoom Chat APIs let developers programmatically interact with [Zoom Chat](https://developers.zoom.us/docs/chat-apps/) features. They enable messaging integration into applications and automate workflows within Zoom Chat.","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":{"/chat/channels/{channelId}/mention_group":{"get":{"tags":["Chat Channel Mention Group"],"summary":"List channel mention groups","description":"Returns a list of all the mention groups in a channel. The maximum number of mention groups in a channel is 20.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:read`,`chat_channel:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:mention_group`,`team_chat:read:mention_group:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getChannelMentionGroup","parameters":[{"name":"channelId","in":"path","description":"The channel ID.","required":true,"schema":{"type":"string","example":"663aab5a8e8449dfbda87b51ecc1929d"}}],"responses":{"200":{"description":"The mention group base information.","content":{"application/json":{"schema":{"required":["mention_group_list"],"type":"object","properties":{"mention_group_list":{"maxItems":20,"minItems":0,"type":"array","description":"The information about the mention groups. The maximum number of mention groups in a channel is **20**.","items":{"required":["mention_group_id","mention_group_name"],"type":"object","properties":{"mention_group_id":{"type":"string","description":"The mention group's ID.","example":"a031772aba44466fbc534e4535a70e4e"},"mention_group_name":{"type":"string","description":"The mention group's name.","example":"Test mention group name"},"mention_group_description":{"type":"string","description":"The mention group's desciption.","example":"Test mention group description"}}}}}}}}},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n No permission to list the mention groups in the channel. <br>\n**Error Code:** `200` <br>\n Not allowed on a group chat. <br>\n**Error Code:** `200` <br>\n Not allowed on an archived channel. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4130` <br>\n Channel does not exist: $channelId. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat_channel:read","chat_channel:read:admin"],"x-granular-scopes":["team_chat:read:mention_group","team_chat:read:mention_group:admin"]}},"post":{"tags":["Chat Channel Mention Group"],"summary":"Create a channel mention group","description":"Creates a channel mention group. A channel can have a maximum of 20 mention groups. The caller must be an admin or owner of the channel.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:mention_group:admin`,`team_chat:write:mention_group`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"createChannelMentionGroup","parameters":[{"name":"channelId","in":"path","description":"The channel ID.","required":true,"schema":{"type":"string","example":"663aab5a8e8449dfbda87b51ecc1929d"}}],"requestBody":{"description":"Creates a mention group in a channel.","content":{"application/json":{"schema":{"required":["identifiers","mention_group_name"],"type":"object","properties":{"mention_group_name":{"maxLength":40,"minLength":1,"type":"string","description":"The mention group's name.","example":"ChatTeam"},"mention_group_description":{"maxLength":500,"minLength":0,"type":"string","description":"The mention group's description.","example":"Description"},"identifiers":{"maxItems":20,"minItems":0,"type":"array","description":"The user ID or member ID of the member you want to add to the mention group. \nYou can add a maximum of 20 users each time. \nIt allows `memberId` or `userId`.","items":{"type":"string","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}}}}}},"responses":{"201":{"description":"**Status Code**: `201`  Mention group created.","content":{"application/json":{"schema":{"required":["mention_group_id"],"type":"object","properties":{"mention_group_id":{"type":"string","description":"The created mention group's ID.","example":"a031772aba44466fbc534e4535a70e4e"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid parameter: identifiers. <br>\n**Error Code:** `200` <br>\n Duplicate mention group name <br>\n**Error Code:** `5506` <br>\n Exceeded the limit of adding mention group. The maximum number of mention group in a channel is 20 <br>\n**Error Code:** `300` <br>\n Invalid parameter: mention_group_name. <br>\n**Error Code:** `5301` <br>\n Request to create a mention group failed. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n No permission to create the channel mention group. <br>\n**Error Code:** `200` <br>\n The user(s) do not have permission to access the channel. {0}  <br>\n**Error Code:** `200` <br>\n Not allowed on a group chat. <br>\n**Error Code:** `200` <br>\n Not allowed on an archived channel. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4130` <br>\n Channel does not exist: $channelId. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:write:mention_group:admin","team_chat:write:mention_group"]}}},"/chat/channels/{channelId}/mention_group/{mentionGroupId}":{"delete":{"tags":["Chat Channel Mention Group"],"summary":"Delete a channel mention group","description":"Removes a mention group in a channel. The caller must be the channel's admin or owner.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:mention_group`,`team_chat:delete:mention_group:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"deleteAChannelMentionGroup","parameters":[{"name":"channelId","in":"path","description":"The channel ID.","required":true,"schema":{"type":"string","example":"663aab5a8e8449dfbda87b51ecc1929d"}},{"name":"mentionGroupId","in":"path","description":"The mention group ID.","required":true,"schema":{"type":"string","example":"a031772aba44466fbc534e4535a70e4e"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   Channel mention group deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to delete a mention group failed. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n No permission to delete the mention group. <br>\n**Error Code:** `200` <br>\n Not allowed on a group chat. <br>\n**Error Code:** `200` <br>\n Not allowed on an archived channel. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5508` <br>\n The mention group doesn't exist. <br>\n**Error Code:** `4130` <br>\n Channel does not exist: $channelId. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:delete:mention_group","team_chat:delete:mention_group:admin"]}},"patch":{"tags":["Chat Channel Mention Group"],"summary":"Update a channel mention group information","description":"Updates a mention group's information. The caller must be the channel's admin or owner.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:mention_group`,`team_chat:update:mention_group:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"updateChannelMentionGroup","parameters":[{"name":"channelId","in":"path","description":"The channel ID.","required":true,"schema":{"type":"string","example":"663aab5a8e8449dfbda87b51ecc1929d"}},{"name":"mentionGroupId","in":"path","description":"The mention group ID.","required":true,"schema":{"type":"string","example":"a031772aba44466fbc534e4535a70e4e"}}],"requestBody":{"description":"Updates a channel mention group information. Fields whose value is missing or empty string will not be updated.","content":{"application/json":{"schema":{"type":"object","properties":{"mention_group_name":{"maxLength":40,"minLength":1,"type":"string","description":"The mention group's name. If name value is missing or empty string, this field will not be updated.","example":"ChatTeam"},"mention_group_description":{"maxLength":500,"minLength":0,"type":"string","description":"The mention group's description. If the property is missing, this field will not be updated. If the description is empty string, will remove the previous description.","example":"Description"}}}}}},"responses":{"204":{"description":"**Status Code:** `204`Channel mention group updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Duplicate mention group name. <br>\n**Error Code:** `5301` <br>\n Request to update a mention group failed. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n No permission to update the mention group info. <br>\n**Error Code:** `200` <br>\n Not allowed on a group chat. <br>\n**Error Code:** `200` <br>\n Not allowed on an archived channel. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5508` <br>\n The mention group doesn't exist. <br>\n**Error Code:** `4130` <br>\n Channel does not exist: $channelId. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:update:mention_group","team_chat:update:mention_group:admin"]}}},"/chat/channels/{channelId}/mention_group/{mentionGroupId}/members":{"get":{"tags":["Chat Channel Mention Group"],"summary":"List the members of a mention group","description":"Returns a list of the members in the mention group. The maximum number of members in a mention group is **100**.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:read`,`chat_channel:write:admin`,`chat_channel:read:member`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:mention_group`,`team_chat:read:mention_group:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listTheMembersOfMentionGroup","parameters":[{"name":"channelId","in":"path","description":"The channel ID.","required":true,"schema":{"type":"string","example":"663aab5a8e8449dfbda87b51ecc1929d"}},{"name":"mentionGroupId","in":"path","description":"The mention group ID.","required":true,"schema":{"type":"string","example":"a031772aba44466fbc534e4535a70e4e"}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"\nThe number of records returned with a single API call.","required":false,"schema":{"maximum":20,"minimum":1,"type":"integer","example":20}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   List of channel mention group members.","content":{"application/json":{"schema":{"required":["has_more","mention_group_id","page_size"],"type":"object","properties":{"mention_group_id":{"type":"string","description":"The mention group ID.","example":"a031772aba44466fbc534e4535a70e4e"},"members":{"type":"array","description":"The members in a mention group. The maximum number of **members** in a mention group is **100**.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"The member's user ID. If the member does not belong to the same account as the current, this field will be empty.","example":"6dfgdfgdg444447b0egga"},"member_id":{"type":"string","description":"The channel member's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"},"email":{"type":"string","description":"The member's email address. If the member does not belong to the same account as the current user or is not the current user's contact, this field will be empty.","example":"jchill@example.com"},"first_name":{"type":"string","description":"The member's first name. If the member does not belong to the same account as the current user or is not the current user's contact, this field will be empty.","example":"Jill"},"last_name":{"type":"string","description":"The member's last name. If the member does not belong to the same account as the current user or is not the current user's contact, this field will be empty.","example":"Chill"},"display_name":{"type":"string","description":"The member's display name.","example":"Jill Chill"},"is_external":{"type":"boolean","description":"Whether it is an external member.","example":true}}}},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"type":"integer","description":"The number of records returned within a single API call.","example":20},"has_more":{"type":"boolean","description":"Whether more data exists.","example":false}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to list mention group members failed. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `300` <br>\n The next page token is either invalid or has expired. <br>\n**Error Code:** `200` <br>\n Not allowed on a group chat. <br>\n**Error Code:** `200` <br>\n Not allowed on an archived channel. <br>\n**Error Code:** `200` <br>\n No permission to access the channel <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5508` <br>\n The mention group doesn't exist. <br>\n**Error Code:** `4130` <br>\n Channel does not exist: $channelId. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat_channel:read","chat_channel:write:admin","chat_channel:read:member"],"x-granular-scopes":["team_chat:read:mention_group","team_chat:read:mention_group:admin"]}},"post":{"tags":["Chat Channel Mention Group"],"summary":"Add channel members to a mention group","description":"Adds the channel members to a mention group. The maximum of a mention group members is 100. The caller must be the admin or owner of the channel.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:mention_group`,`team_chat:update:mention_group:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"addAChannelMembersToMentionGroup","parameters":[{"name":"channelId","in":"path","description":"The channel ID.","required":true,"schema":{"type":"string","example":"663aab5a8e8449dfbda87b51ecc1929d"}},{"name":"mentionGroupId","in":"path","description":"The mention group ID.","required":true,"schema":{"type":"string","example":"a031772aba44466fbc534e4535a70e4e"}}],"requestBody":{"description":"Adds channel members to mention group by member ID or user ID. The maximum number of users in a mention group is 20.","content":{"application/json":{"schema":{"required":["identifiers"],"type":"object","properties":{"identifiers":{"type":"array","description":"The user ID or member ID of the member you want to add to the mention group. \nYou can add a maximum of 20 users each time. \nIt allows `memberId` or `userId`.","items":{"type":"string","example":"zqmgs2tmspguoqcxyahsya"}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   Members added to the mention group."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5511` <br>\n The member(s) exist in the mention group. {0} <br>\n**Error Code:** `300` <br>\n Invalid parameter: identifiers. <br>\n**Error Code:** `5301` <br>\n Request to add members to the mention group failed. <br>\n**Error Code:** `5507` <br>\n Exceeded the limit of adding member(s) to a mention group. The maximum number of members in mention group is 100. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n The user(s) do not have permission to access the channel. {0}  <br>\n**Error Code:** `200` <br>\n Not allowed on a group chat. <br>\n**Error Code:** `200` <br>\n Not allowed on an archived channel. <br>\n**Error Code:** `200` <br>\n No permission to add members to channel mention group. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5508` <br>\n The mention group doesn't exist. <br>\n**Error Code:** `4130` <br>\n Channel does not exist: $channelId. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:update:mention_group","team_chat:update:mention_group:admin"]}},"delete":{"tags":["Chat Channel Mention Group"],"summary":"Remove channel mention group members","description":"Removes a mention group in channel. The caller must be the channel's admin or owner.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:mention_group`,`team_chat:update:mention_group:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"removeChannelMentionGroupMembers","parameters":[{"name":"channelId","in":"path","description":"The channel ID.","required":true,"schema":{"type":"string","example":"663aab5a8e8449dfbda87b51ecc1929d"}},{"name":"mentionGroupId","in":"path","description":"The mention group ID.","required":true,"schema":{"type":"string","example":"a031772aba44466fbc534e4535a70e4e"}},{"name":"identifiers","in":"query","description":"The user ID or member ID of the member you want to remove from the mention group. \nUse commas (,) to separate. And you can add a maximum of 20 users. \nIt allows `memberId` or `userId`.","required":true,"schema":{"type":"string","example":"zqmgs2tmspguoqcxyahsya,R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   Mention group members removed."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5510` <br>\n The member(s) do not exist in the mention group. {0} <br>\n**Error Code:** `5301` <br>\n Request to remove members from the mention group failed. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Not allowed on a group chat. <br>\n**Error Code:** `200` <br>\n Not allowed on an archived channel. <br>\n**Error Code:** `200` <br>\n No permission to remove members to channel mention group. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5508` <br>\n The mention group doesn't exist. <br>\n**Error Code:** `4130` <br>\n Channel does not exist: $channelId. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:update:mention_group","team_chat:update:mention_group:admin"]}}},"/chat/activities/channels":{"get":{"tags":["Chat Channels"],"summary":"List channel activity logs","description":"Returns a list of a channel's activity logs. Date range need be less or equal to 3 days.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_channel_activity_logs:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listAllChannelActivityLogs","parameters":[{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":15,"minimum":15,"type":"integer","example":15,"default":15}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"activity_type","in":"query","description":"The activity log type.","required":false,"schema":{"type":"string","example":"membership","default":"membership","enum":["membership"]}},{"name":"start_date","in":"query","description":"The activity log start date. Also supports ISO format combined with UTC designator: `2026-03-16T14:30:00Z`","required":true,"schema":{"type":"string","format":"date","example":"2025-04-01"}},{"name":"end_date","in":"query","description":"The activity log end date. The end date must be within three days. Also supports ISO format combined with UTC designator: `2026-03-16T14:30:00Z`","required":true,"schema":{"type":"string","format":"date","example":"2025-04-03"}},{"name":"channel_id","in":"query","description":"The channel's unique identifier. If channel_id is absent, we'll return activities of all channels.","required":false,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   List of channel activity logs successfully returned.","content":{"application/json":{"schema":{"required":["channel_activity_logs"],"type":"object","properties":{"channel_activity_logs":{"type":"array","description":"The activity logs channel.","items":{"required":["activity_timestamp","activity_type","channel_id","channel_id","operator"],"type":"object","properties":{"channel_id":{"type":"string","description":"The channel's unique identifier.","example":"825c9e31f1064c73b394c5e4557d3447"},"activity_type":{"type":"string","description":"The activity log type.","example":"membership","enum":["membership"]},"activity_timestamp":{"type":"integer","description":"The timestamp of the activity log date.","format":"int64","example":1581370790388},"operator":{"type":"object","properties":{"display_name":{"type":"string","description":"The user's display name.","example":"John Doe"},"user_id":{"type":"string","description":"The user's ID. If the user belongs to an external account, `user_id` is set to an empty string.","example":"37oirnidtk6ije2tsfazbq"},"member_id":{"type":"string","description":"The user's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"}},"description":"The user who made this activity."},"members":{"type":"object","properties":{"member_status":{"type":"string","description":"The member's joined or left status.","example":"joined","enum":["joined","left"]},"member_list":{"maxItems":100,"type":"array","description":"An array of a channel members activity.","items":{"type":"object","properties":{"display_name":{"type":"string","description":"The user's display name.","example":"John Doe"},"user_id":{"type":"string","description":"The user's ID. If the user belongs to an external account, `user_id` will be set to an empty string.","example":"37oirnidtk6ije2tsfazbq"},"member_id":{"type":"string","description":"The user's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"}}}}},"description":"Includes member join or leave status and member list."}}}},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"type":"integer","description":"The number of records returned within a single API call.","example":15}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Channel Id can't be empty or not exist. <br>\n**Error Code:** `300` <br>\n Channel activity log date not valid. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `403` <br>\n No permission to access channel activity logs <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5306` <br>\n  <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/rate-limits/). \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat_channel:read:admin"],"x-granular-scopes":["team_chat:read:list_channel_activity_logs:admin"]}}},"/chat/channels/events":{"patch":{"tags":["Chat Channels"],"summary":"Perform operations on channels","description":"Performs different operations on channels. \n\nOperations include archive and unarchive. It supports batch operations.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write:admin`,`chat_channel:write`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:archive_channels`,`team_chat:update:archive_channels:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"PerformOperationsOnChannels","requestBody":{"content":{"application/json":{"schema":{"required":["channel_ids","method"],"type":"object","properties":{"method":{"type":"string","description":"The method to perform: \n* `archive` &mdash; Archive the channels. \n* `unarchive` &mdash; Unarchive the channels.","example":"archive","enum":["archive","unarchive"]},"channel_ids":{"maxItems":10,"minItems":1,"uniqueItems":true,"type":"array","description":"The IDs of channels to be archived or unarchived.","items":{"type":"string","description":"The channel's unique identifier.","example":"825c9e31f1064c73b394c5e4557d3447"}}}}}}},"responses":{"200":{"description":"**Status Code**: `200`   Perform operations on channels returned.","content":{"application/json":{"schema":{"type":"object","properties":{"failed_channels":{"type":"array","description":"The failed channels array.","items":{"type":"object","properties":{"channel_id":{"type":"string","description":"The failed channel ID.","example":"b8f5e83164ca4e6b8d8abb527c7c35db"},"reason":{"type":"string","description":"The specific reason for the error.","example":"No Permission"},"error_code":{"type":"string","description":"200:  Unauthorized request. You do not have permission to perform operation on this channel.\n3214: Archiving/unarchiving the default channel is not allowed.\n3205: This channel has already been archived.\n3213: This channel has not been archived.\n3215: CMC with recurring meeting can't be archived.\n4130: Channel does not exist.","example":"The error code number"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid parameter. <br>\n**Error Code:** `4130` <br>\n Channel does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write:admin","chat_channel:write"],"x-granular-scopes":["team_chat:update:archive_channels","team_chat:update:archive_channels:admin"]}}},"/chat/channels/{channelId}":{"get":{"tags":["Chat Channels"],"summary":"Get a channel","description":"Returns information about a specific channel.\n\nZoom chat [channels](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-) allow users to communicate through chat in private or public groups. \n\nThe [**Get a channel**](/docs/api-reference/chat/methods#operation/getChannel) API retrieves the channel information of other account users.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:read`,`chat_channel:write`,`chat_channel:read:admin`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:channel`,`team_chat:read:channel:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getUserLevelChannel","parameters":[{"name":"channelId","in":"path","description":"The channel's unique identifier.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  \n \nChannel returned.  \n \n\n\n\n","content":{"application/json":{"schema":{"type":"object","properties":{"channel_settings":{"type":"object","properties":{"add_member_permissions":{"type":"integer","description":"This field indicates who can add new channel members:  \n * `1` - All channel members can add new members.  \n * `2` - Only channel owners and administrators can add new members.  \n **Note:** Only the channel owner can modify this setting. \n **Note:** This setting is always set to 1 and not editable for channel types 3, 4 and 5.","example":2,"enum":[1,2]},"new_members_can_see_previous_messages_files":{"type":"boolean","description":"Whether new channel members can view messages and files previously posted in the channel.","example":true},"posting_permissions":{"type":"integer","description":"The channel members' posting permissions:  \n * `1` — All chat channel members can post to the channel.  \n * `2` — Only the channel owner and administrators can post to the channel.  \n * `3` — Only the channel owner, administrators and certain members can post to the channel.","example":3,"enum":[1,2,3]},"mention_all_permissions":{"type":"integer","description":"This field indicates who can use @all:  \n * `1` - Everyone can use @all.  \n * `2` - Only channel owners and administrators can use @all.  \n * `3` - Nobody can use @all.  \n **Note:** Only the channel owner can modify this setting.","example":1,"enum":[1,2,3]},"allow_to_add_external_users":{"type":"integer","description":"Whether external users can be added to the channel:  \n * `0` — External user cannot be added to the channel.  \n * `1` — All chat channel members can add external users to the channel.  \n * `2` — Only members within your organization can add external users to the channel.  \n * `3` - Only channel owners and administrators can add external users to the channel.  \n **Note:** This setting is always set to 1 for channel type 4.","example":2,"enum":[0,1,2,3]},"designated_posting_members":{"type":"array","description":"The user IDs or member IDs of the channel's member to whom the posting permission was designated. \n \n`posting_permissions` must be `3` to have posting members.","items":{"type":"object","properties":{"member_id":{"type":"string","description":"The member id of the designated channel member who has posting permission.","example":"b8b03c9ed5114ed59e4833cc6cb4921b"},"user_id":{"type":"string","description":"The user ID of the designated channel member who has posting permission. If the member does not belong to the same account as the current, this field will be empty.","example":"xvenagdyr6yonp8fhpky0w"}},"description":"The information of the designated channel member who has posting permission."}}},"description":"The settings of the [chat channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-)."},"id":{"type":"string","description":"The channel's ID.","example":"cabc1234567defghijkl01234"},"jid":{"type":"string","description":"The [Jabber ID (JID)](https://en.wikipedia.org/wiki/JID_(Jabber)) to access the account.","example":"cabc1234567defghijkl01234@conference.xmpp.zoom.us"},"name":{"type":"string","description":"The channel name.","example":"Developers"},"type":{"type":"integer","description":"The channel's type: \n* `0` — An unknown channel type. \n* `1` — A private channel. Members must be invited to join this channel. \n* `2` — A private channel with members that belong to a Zoom account. All members of this channel are from the same organization and must be invited to join. \n* `3` — A public channel. Anyone can search for and join this channel. \n* `4` — An instant channel. This type of channel is created by adding members to a new chat. \n* `5` — A public channel. Anyone can join this channel and invite members from other Zoom accounts.","example":2,"enum":[0,1,2,3,4,5]},"channel_url":{"type":"string","description":"The URL of the Zoom Chat channel.","example":"https://zoom.us/launch/chat/v2/eyJzaWQiOiIyY2RkZjNyNjU3YTY0ODUzOWVhOThkODFhNjRiODE2YkBjb25mZXJlbmNlLnhtcHBkZXYuem9vbS51cyJ1"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to access this user's channel information. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4130` <br>\n Channel does not exist: $channelId. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat_channel:read","chat_channel:write","chat_channel:read:admin","chat_channel:write:admin"],"x-granular-scopes":["team_chat:read:channel","team_chat:read:channel:admin"]}},"delete":{"tags":["Chat Channels"],"summary":"Delete a channel","description":"Deletes a specific channel. Zoom chat [channels](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-) allow users to communicate via chat in private or public groups. \n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:channel`,`team_chat:delete:channel:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"deleteUserLevelChannel","parameters":[{"name":"channelId","in":"path","description":"Channel ID: the channel's unique identifier.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`  \n \nChannel deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to delete this user's channel.<br> <br>\n**Error Code:** `5301` <br>\n Request to delete a channel failed. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:delete:channel","team_chat:delete:channel:admin"]}},"patch":{"tags":["Chat Channels"],"summary":"Update a channel","description":"Updates the name, type, and settings of a specific channel you own or administer. \n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:channel`,`team_chat:update:channel:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"updateUserLevelChannel","parameters":[{"name":"channelId","in":"path","description":"The channel ID.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"A new name for the channel.","example":"Developers Channel"},"channel_settings":{"type":"object","properties":{"add_member_permissions":{"type":"integer","description":"This field indicates who can add new channel members:  \n * `1` - All channel members can add new members.  \n * `2` - Only channel owners and administrators can add new members.  \n **Note:** Only the channel owner can modify this setting.  \n **Note:** This setting is always set to 1 and not editable for channel types 3, 4 and 5.","example":2,"enum":[1,2]},"new_members_can_see_previous_messages_files":{"type":"boolean","description":"Whether new channel members can view messages and files previously posted in the channel.","example":true},"posting_permissions":{"type":"integer","description":"The channel members' posting permissions:  \n * `1` — All chat channel members can post to the channel.  \n * `2` — Only channel owners and administrators can post to the channel.  \n * `3` — Only channel owners, administrators, and certain members can post to the channel.","example":3,"enum":[1,2,3]},"mention_all_permissions":{"type":"integer","description":"This field indicates who can use @all: \n * `1` - Everyone can use @all. \n * `2` - Only channel owners and administrators can use @all. \n * `3` - Nobody can use @all. \n **Note:** Only the channel owner can modify this setting.","example":1,"enum":[1,2,3]},"allow_to_add_external_users":{"type":"integer","description":"Whether external users can be added to the channel:  \n * `0` — External user cannot be added to the channel.  \n * `1` — All chat channel members can add external users to the channel.  \n * `2` — Only members within your organization can add external users to the channel.  \n * `3` - Only channel owners and administrators can add external users to the channel.  \n **Note:** This setting is always set to 1 for channel type 4.","example":1,"default":0,"enum":[0,1,2,3]},"designated_posting_members":{"type":"array","description":"The user IDs or member IDs of the channel's member to whom the posting permission was designated. \n \nYou must select `3` for `posting_permissions` in the API request.","items":{"description":"Either the user ID or member ID of the designated channel member who has posting permission.","oneOf":[{"type":"object","properties":{"user_id":{"type":"string","description":"The user ID.","example":"alsjdflasjfasjfas"}},"description":"The user ID object."},{"type":"object","properties":{"member_id":{"type":"string","description":"The member ID.","example":"825c9e31f1064c73b394c5e4557d3447"}},"description":"The member ID object."}]}}},"description":"The settings of the [chat channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-)."},"type":{"type":"integer","description":"The type of change channel. For example, a change from public channel 5 to private 1, or a change from public 3 to private 2, vice versa, and so on.\n\nThe channel's type: \n* `1` — A private channel. Members must be invited to join this channel. \n* `2` — A private channel with members that belong to a Zoom account. All members of this channel are from the same organization and must be invited to join.\n* `3` — A public channel. Anyone can search for and join this channel.\n* `5` — A public channel. Anyone can join this channel and invite members from other Zoom accounts.","example":1,"enum":[1,2,3,5]}}}}}},"responses":{"204":{"description":"**Status Code:** `204`\nChannel updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The channel name already exists. <br>\n**Error Code:** `5301` <br>\n Request to update a channel failed. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to update a channel for this user.<br> <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:update:channel","team_chat:update:channel:admin"]}}},"/chat/channels/{channelId}/members":{"get":{"tags":["Chat Channels"],"summary":"List channel members","description":"Lists all members of a channel.\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:read`,`chat_channel:write`,`chat_channel:read:admin`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_members`,`team_chat:read:list_members:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listUserLevelChannelMembers","parameters":[{"name":"channelId","in":"path","description":"The channel's unique identifier.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned with a single API call.","required":false,"schema":{"maximum":100,"type":"integer","example":10,"default":30}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  \n \nList of channel members returned.\n\n","content":{"application/json":{"schema":{"type":"object","properties":{"members":{"type":"array","description":"The members in a channel.","items":{"type":"object","properties":{"email":{"type":"string","description":"The member's email address. If the member does not belong to the same account as the current user or is not the current user's contact, this field will be empty.","format":"email","example":"jchill@example.com"},"first_name":{"type":"string","description":"The member's first name. If the member does not belong to the same account as the current user or is not the current user's contact, this field will be empty.","example":"Jill"},"id":{"type":"string","description":"The member's user ID. If the member does not belong to the same account as the current, this field will be empty.","example":"6dfgdfgdg444447b0egga"},"member_id":{"type":"string","description":"The channel member's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"},"last_name":{"type":"string","description":"The member's last name. If the member does not belong to the same account as the current user or is not the current user's contact, this field will be empty.","example":"Chill"},"name":{"type":"string","description":"The user's display name.","example":"Jill Chill"},"role":{"type":"string","description":"The role of the member. The value can be one of these: `owner`, `admin`, `member`.","example":"admin","enum":["admin","owner","member"]},"is_external":{"type":"boolean","description":"Whether it is an external member.","example":true}}}},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"type":"integer","description":"The number of records returned within a single API call.","example":10},"total_records":{"type":"integer","description":"The total number of records returned.","example":1}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n No permission to access the channel members.<br> <br>\n**Error Code:** `300` <br>\n The next page token is either invalid or has expired. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat_channel:read","chat_channel:write","chat_channel:read:admin","chat_channel:write:admin"],"x-granular-scopes":["team_chat:read:list_members","team_chat:read:list_members:admin"]}},"post":{"tags":["Chat Channels"],"summary":"Invite channel members","description":"Invites members that are in a user's contact list to a channel. \n\nA [channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-) can have one or multiple members. \n\nFive is the maximum number of members you can add at once with this API. \n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:members`,`team_chat:write:members:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"InviteUserLevelChannelMembers","parameters":[{"name":"channelId","in":"path","description":"The channel's unique identifier.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"members":{"maxItems":5,"minItems":1,"type":"array","description":"The channel members. You can invite up to five members with a single API call.","items":{"required":["email"],"type":"object","properties":{"email":{"type":"string","description":"The member's email address.","format":"email","example":"user@zoom.us"}}}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`  \n \nMembers invited to the channel.","content":{"application/json":{"schema":{"type":"object","properties":{"added_at":{"type":"string","description":"The date and time when the members are added to the channel.","format":"date-time","example":"2020-02-10T21:39:50Z"},"ids":{"type":"string","description":"The comma-separated user IDs of the members added to the channel. User IDs of those who are not from the same account will be omitted from the list.","example":"D40dy5L7SJiSTayIvRV9Lw,KT6h5SfCSm6YNjZo7i8few"},"member_ids":{"type":"string","description":"The comma-separated member IDs of the members added to the channel.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ,R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to invite channel members failed.<br> <br>\n**Error Code:** `200` <br>\n Unauthorized request. You do not have permission to invite channel members. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:write:members","team_chat:write:members:admin"]}},"delete":{"tags":["Chat Channels"],"summary":"Batch remove members from a channel","description":"Removes multiple members from a chat channel in a batch. A [channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-) can have one or many members.   \n   \n \n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:batch_members`,`team_chat:delete:batch_members:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"batchRemoveChannelMembers","parameters":[{"name":"channelId","in":"path","description":"The channel's unique identifier.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}},{"name":"member_ids","in":"query","description":"The member IDs. Use commas (,) to separate a supported maximum of 20 IDs.","required":true,"schema":{"type":"string","example":"zqmgs2tmspguoqcxyahsya,R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}},{"name":"user_ids","in":"query","description":"Member or user IDs. Use commas (,) to separate a supported maximum of 20 IDs.","required":true,"schema":{"type":"string","example":"zqmgs2tmspguoqcxyahsya,R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204` **No Content**  \n \nMembers removed.\n\n\n"},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n No permission to remove channel members.<br> <br>\n**Error Code:** `5301` <br>\n Unable to remove channel member.<br> <br>\n**Error Code:** `300` <br>\n You can not remove yourself.<br> <br>\n**Error Code:** `300` <br>\n The maximum number of members that can be removed at a time is 20. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:delete:batch_members","team_chat:delete:batch_members:admin"]}}},"/chat/channels/{channelId}/members/groups":{"get":{"tags":["Chat Channels"],"summary":"List channel members (Groups)","description":"Returns a list of channel member groups.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:read:admin`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_groups:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listChannelMembersGroups","parameters":[{"name":"channelId","in":"path","description":"The channel's unique identifier.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   List of channel member groups returned.","content":{"application/json":{"schema":{"required":["channel_id","groups"],"type":"object","properties":{"groups":{"type":"array","description":"The member groups in a channel.","items":{"required":["group_id","group_name"],"type":"object","properties":{"group_id":{"type":"string","description":"The member group's ID.","example":"03dydv46RWKsMzUOdFGdeA"},"group_name":{"type":"string","description":"The member group's name.","example":"Your Group"}}}},"channel_id":{"type":"string","description":"The channel's unique identifier.","example":"825c9e31f1064c73b394c5e4557d3447"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Channel id should not be empty <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n No permission to access the channel member groups. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5306` <br>\n Channel does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat_channel:read:admin","chat_channel:write:admin"],"x-granular-scopes":["team_chat:read:list_groups:admin"]}},"post":{"tags":["Chat Channels"],"summary":"Invite channel members (Groups)","description":"Adds members and groups to a channel.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:groups:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"inviteChannelMembersGroups","parameters":[{"name":"channelId","in":"path","description":"The channel's unique identifier.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"groups":{"maxItems":5,"minItems":1,"type":"array","description":"The channel member groups.","items":{"required":["group_id"],"type":"object","properties":{"group_id":{"type":"string","description":"The member group's id.","example":"03dydv46RWKsMzUOdFGdeA"}}}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   Member groups added to the channel.","content":{"application/json":{"schema":{"required":["added_at","groups"],"type":"object","properties":{"added_at":{"type":"string","description":"The date and time when the member groups are added to the channel.","example":"2020-02-10T21:39:50Z"},"groups":{"type":"array","description":"The member groups added to the channel.","items":{"required":["group_id","group_name"],"type":"object","properties":{"group_id":{"type":"string","description":"The member group's ID.","example":"03dydv46RWKsMzUOdFGdeA"},"group_name":{"type":"string","description":"The member group's name.","example":"Your Group"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Unable to add member groups to the channel as chat permissions have been disabled. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to add channel member groups. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5306` <br>\n Channel does not exist. <br>\n**Error Code:** `4130` <br>\n Groups do not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write:admin"],"x-granular-scopes":["team_chat:write:groups:admin"]}}},"/chat/channels/{channelId}/members/groups/{groupId}":{"delete":{"tags":["Chat Channels"],"summary":"Remove a member (group)","description":"Removes a group from a chat channel.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:group:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"removeAMemberGroup","parameters":[{"name":"channelId","in":"path","description":"The unique identifier of the channel from where you would like to remove a member group.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}},{"name":"groupId","in":"path","description":"The member group ID to remove from the channel.","required":true,"schema":{"type":"string","example":"abc"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204` **No Content**   member group removed."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Channel id or Group id should not be empty <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to remove channel member groups on this user's behalf.<br> <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5306` <br>\n Channel does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write:admin"],"x-granular-scopes":["team_chat:delete:group:admin"]}}},"/chat/channels/{channelId}/members/me":{"post":{"tags":["Chat Channels"],"summary":"Join a channel","description":"Joins a channel that is open for anyone in the same organization to join. A [channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-) can have one or more members. You cannot use this API to join private channels that only allow invited members to be a part of them.\n\n**Note:** This API only supports **user-managed** [OAuth-app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app).\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:member`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"joinChannel","parameters":[{"name":"channelId","in":"path","description":"The channel ID.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}}],"responses":{"201":{"description":"**HTTP Status Code:** `201`\nSuccessfully joined the channel.","content":{"application/json":{"schema":{"type":"object","properties":{"added_at":{"type":"string","description":"The date and time when a user joined the channel.","format":"date-time","example":"2020-02-10T21:39:50Z"},"id":{"type":"string","description":"The user ID of the user who joined the public channel.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"member_id":{"type":"string","description":"The member ID of the user who joined the public channel.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n The request to join the channel failed. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:write:member"]}},"delete":{"tags":["Chat Channels"],"summary":"Leave a channel","description":"Leaves a specific channel. \n\nIf you're no longer interested in being a member of an existing channel, you can leave the channel at any time. After leaving the channel, you can no longer access information from that channel.\n\n**Note:** This API only supports **user-managed** [OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app)\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:member`,`team_chat:delete:member:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"leaveChannel","parameters":[{"name":"channelId","in":"path","description":"The channel's unique identifier.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`  \n \nLeft channel successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to leave the channel failed. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:delete:member","team_chat:delete:member:admin"]}}},"/chat/channels/{channelId}/members/{identifier}":{"delete":{"tags":["Chat Channels"],"summary":"Remove a member","description":" Removes a member from a chat channel. A [channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-) can have one or many members.   \n   \n \n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:member`,`team_chat:delete:member:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"removeAUserLevelChannelMember","parameters":[{"name":"channelId","in":"path","description":"The unique identifier of the channel from where you would like to remove a member. This can be retrieved from the [**List user's channels**](/docs/api-reference/chat/methods#operation/getChannels) API.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}},{"name":"identifier","in":"path","description":"The email address or user ID or member ID of the member whom you would like to be remove from the channel.","required":true,"schema":{"type":"string","example":"aqoUYBytR0iLREIdJT6QBw"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204` **No Content**  \n \nMember removed.\n\n\n"},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to remove channel members on this user's behalf.<br> <br>\n**Error Code:** `5301` <br>\n Unable to remove channel member. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:delete:member","team_chat:delete:member:admin"]}}},"/chat/users/{userId}/channels":{"get":{"tags":["Chat Channels"],"summary":"List user's channels","description":"Generates a list of user's chat channels. For user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter.Zoom chat [channels](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-) allow users to communicate through chat in private or public groups.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:read`,`chat_channel:write`,`chat_channel:read:admin`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_user_channels`,`team_chat:read:list_user_channels:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getChannels","parameters":[{"name":"userId","in":"path","description":"The user's unique identifier.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},{"name":"page_size","in":"query","description":"The number of records returned from a single API call.","required":false,"schema":{"maximum":1000,"type":"integer","example":10,"default":10}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"**Status Code**: `200`   \n \nUser's channels returned.","content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"channels":{"type":"array","description":"The information about the chat channels.","items":{"allOf":[{"type":"object","properties":{"channel_settings":{"type":"object","properties":{"add_member_permissions":{"type":"integer","description":"This field indicates who can add new channel members:  \n * `1` - All channel members can add new members.  \n * `2` - Only channel owners and administrators can add new members.  \n **Note:** Only the channel owner can modify this setting.  \n **Note:** This setting is always set to 1 and not editable for channel types 3, 4 and 5.","example":2,"enum":[1,2]},"new_members_can_see_previous_messages_files":{"type":"boolean","description":"Whether new channel members can view messages and files previously posted in the channel.","example":true},"posting_permissions":{"type":"integer","description":"The channel members' posting permissions:  \n * `1` — All chat channel members can post to the channel.  \n * `2` — Only channel owners and administrators can post to the channel.  \n * `3` — Only the channel owner, administrators, and certain members can post to the channel.","example":3,"enum":[1,2,3]},"mention_all_permissions":{"type":"integer","description":"This field indicates who can use @all:  \n * `1` - Everyone can use @all.  \n * `2` - Only channel owners and administrators can use @all.  \n * `3` - Nobody can use @all.  \n **Note:** Only the channel owner can modify this setting.","example":1,"enum":[1,2,3]},"allow_to_add_external_users":{"type":"integer","description":"Whether external users can be added to the channel:  \n * `0` — External user cannot be added to the channel.  \n * `1` — All chat channel members can add external users to the channel.  \n * `2` — Only members within your organization can add external users to the channel.  \n * `3` - Only channel owners and administrators can add external users to the channel.  \n **Note:** This setting is always set to 1 for channel type 4.","example":2,"enum":[0,1,2,3]}},"description":"The settings of the [chat channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-)."},"id":{"type":"string","description":"The channel's ID.","example":"cabc1234567defghijkl01234"},"jid":{"type":"string","description":"The [Jabber ID (JID)](https://en.wikipedia.org/wiki/JID_(Jabber)) to access the account.","example":"cabc1234567defghijkl01234@conference.xmpp.zoom.us"},"name":{"type":"string","description":"The channel name.","example":"Developers"},"type":{"type":"integer","description":"The channel's type: \n* `0` — An unknown channel type. \n* `1` — A private channel. Members must be invited to join this channel. \n* `2` — A private channel with members that belong to a Zoom account. All members of this channel are from the same organization and must be invited to join. \n* `3` — A public channel. Anyone can search for and join this channel. \n* `4` — An instant channel. Adding members to a new chat creates this type of channel. \n* `5` — A public channel. Anyone can join this channel and invite members from other Zoom accounts.","example":2,"enum":[0,1,2,3,4,5]},"channel_url":{"type":"string","description":"The URL of the Zoom Chat channel.","example":"https://zoom.us/launch/chat/v2/eyJzaWQiOiIyY2RkZjNyNjU3YTY0ODUzOWVhOThkODFhNjRiODE2YkBjb25mZXJlbmNlLnhtcHBkZXYuem9vbS51cyJ1"}},"description":"The information about the [chat channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-). "}]}},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token is returned when the available results exceed the current page size. The expiration period for this token is 15 minutes.","example":"qUEQqB1V0HVhJmwKFQrGOD"},"page_size":{"type":"integer","description":"The number of records returned per page in a single API call.","example":10},"total_records":{"type":"integer","description":"The total number of records found.","example":2}}}]}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The next page token is either invalid or has expired. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat_channel:read","chat_channel:write","chat_channel:read:admin","chat_channel:write:admin"],"x-granular-scopes":["team_chat:read:list_user_channels","team_chat:read:list_user_channels:admin"]}},"post":{"tags":["Chat Channels"],"summary":"Create a channel","description":"Creates a channel for a user. \n\nFor user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter. Zoom chat channels allow users to communicate through chat in private or public groups.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:user_channel`,`team_chat:write:user_channel:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"createChannel","parameters":[{"name":"userId","in":"path","description":"The user's unique identifier.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"channel_settings":{"type":"object","properties":{"add_member_permissions":{"type":"integer","description":"This field indicates who can add new channel members: \n * `1` - All channel members can add new members. \n * `2` - Only channel owners and administrators can add new members. \n **Note:** Only the channel owner can modify this setting. \n **Note:** This setting is always set to 1 and is not editable for channel types 3, 4 and 5.","example":2,"default":1,"enum":[1,2]},"new_members_can_see_previous_messages_files":{"type":"boolean","description":"Whether new channel members can view messages and files previously posted in the channel.","example":true,"default":true},"posting_permissions":{"type":"integer","description":"The channel members' posting permissions: \n * `1` — All chat channel members can post to the channel. \n * `2` — Only the channel owner and administrators can post to the channel. \n * `3` — Only the channel owner, administrators and certain members can post to the channel.","example":3,"default":1,"enum":[1,2,3]},"mention_all_permissions":{"type":"integer","description":"This field indicates who can use @all: \n * `1` - Everyone can use @all. \n * `2` - Only channel owner and administrators can use @all. \n * `3` - Nobody can use @all. \n **Note:** Only the channel owner can modify this setting.","example":1,"default":1,"enum":[1,2,3]},"allow_to_add_external_users":{"type":"integer","description":"Whether external users can be added to the channel:  \n * `0` — External user cannot be added to the channel.  \n * `1` — All chat channel members can add external users to the channel.  \n * `2` — Only members within your organization can add external users to the channel.  \n * `3` - Only channel owners and administrators can add external users to the channel.  \n **Note:** This setting is always set to 1 for channel type 4.","example":1,"default":0,"enum":[0,1,2,3]}},"description":"The settings of the [chat channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-)."},"members":{"type":"array","description":"The member(s) to include in the channel. You can add a maximum of 20 members to the channel at once with this API.","items":{"required":["email"],"type":"object","properties":{"email":{"type":"string","description":"The member's email address.","format":"email","example":"jchill@example.com"}}}},"name":{"maxLength":256,"type":"string","description":"The name of the channel.","example":"Developers"},"type":{"type":"integer","description":"The type of the channel. \n\nThe value can be one of the following:\n `1`: Private channel. In this type of channel, members must be invited to join a channel. \n `2`: Private channel with members that belong to one Zoom account. Members in this channel should be invited and the members should be from the same organization. \n `3`: Public channel. Anyone can search for this channel and join the channel. \n `4`: Group chat. This is an instant channel you create by adding members to a new chat.","example":2,"enum":[1,2,3,4]},"shared_space":{"required":["space_id"],"type":"object","properties":{"space_id":{"type":"string","description":"The shared space ID.","example":"8609fdea87b44e2f8e0"},"space_channel_type":{"type":"string","description":"The shared space channel type.\r\n* `private` - Only invited members can be added. Members do not have to join the shared space.\r\n* `public_for_members` - Everyone in the shared ppace can join.","example":"private","default":"private","enum":["private","public_for_members"]}},"description":"The shared space infomation, if the channel is created in a shared space. If provided, channel type must be private (`1` or `2`)."}}}}}},"responses":{"201":{"description":"**Status Code**: `201` \n \nChannel created.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The channel's unique identifier.","example":"825c9e31f1064c73b394c5e4557d3447"},"jid":{"type":"string","description":"The channel JID.","example":"825c9e31f1064c73b394c5e4557d3447@conference.xmpp.zoom.us"},"name":{"type":"string","description":"The channel name.","example":"Developers"},"type":{"type":"integer","description":"The type of the channel. The value can be one of the following: \n \n`1`: Private channel. In this type of channel, members must be invited to join a channel. \n \n`2`: Private channel with members that belong to one Zoom account. Members in this channel should be invited and the members should be from the same organization. \n \n`3`: Public channel. Anyone can search for this channel and join the channel. \n \n`4`: Group chat. This is an instant channel which you can create by adding members to a new chat.","example":2,"enum":[1,2,3,4]},"channel_url":{"type":"string","description":"The URL of the Zoom Chat channel.","example":"https://zoom.us/launch/chat/v2/eyJzaWQiOiIyY2RkZjNyNjU3YTY0ODUzOWVhOThkODFhNjRiODE2YkBjb25mZXJlbmNlLnhtcHBkZXYuem9vbS51cyJ1"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to create a channel failed. <br>\n**Error Code:** `300` <br>\n The channel name already exists. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $userId. <br>\n**Error Code:** `5407` <br>\n Shared space does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:write:user_channel","team_chat:write:user_channel:admin"]}},"delete":{"tags":["Chat Channels (Account-level)"],"summary":"Batch delete channels","description":"Delete channels in batches. For user-level apps, pass the `me` value instead of the `userId` parameter.\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:channels`,`team_chat:delete:channels:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"batchDeleteChannelsAccountLevel","parameters":[{"name":"userId","in":"path","description":"The user ID of the channel owner.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},{"name":"channel_ids","in":"query","description":"The channels' unique identifier. You can set up to 50 channel IDs. ","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447,4n5c9t31f1064c787f394c5enng7d3553"}}],"responses":{"202":{"description":"**HTTP Status Code:** `202` <br> Request successful.  "},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4300` <br>\n `channel_ids` cannot be empty. <br>\n**Error Code:** `4301` <br>\n The size of `channel_ids` cannot exceed 50. <br>\n**Error Code:** `4302` <br>\n Request to delete channels failed. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `4100` <br>\n Unauthorized request. You do not have permission to delete channel: $channelId. <br>\n**Error Code:** `4101` <br>\n Unauthorized request. You do not have permission to delete this user's channel. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4400` <br>\n Channel does not exist: $channelId. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:delete:channels","team_chat:delete:channels:admin"]}}},"/chat/channels":{"get":{"tags":["Chat Channels (Account-level)"],"summary":"List account's public channels","description":"Lists public chat channels that the account's users create. \n\n **Note:** This API only supports account-level apps. The user calling this API must have a [role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management) that has the **View** or **Edit** permission for the **Chat Channels** feature.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:read:admin`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_channels:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getAccountChannels","parameters":[{"name":"page_size","in":"query","description":"The number of records returned per page in a single API call.","required":false,"schema":{"maximum":20,"type":"integer","example":10,"default":10}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"**Status Code**: `200`   \n \nAccount's public channels returned.","content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"channels":{"type":"array","description":"The information about the chat channels.","items":{"allOf":[{"type":"object","properties":{"channel_settings":{"type":"object","properties":{"add_member_permissions":{"type":"integer","description":"This field indicates who can add new channel members:  \n * `1` - All channel members can add new members.  \n * `2` - Only channel owners and administrators can add new members.  \n **Note:** Only the channel owner can modify this setting.  \n **Note:** This setting is always set to 1 and not editable for channel types 3, 4 and 5.","example":2,"enum":[1,2]},"new_members_can_see_previous_messages_files":{"type":"boolean","description":"Whether new channel members can view messages and files previously posted in the channel.","example":true},"posting_permissions":{"type":"integer","description":"The channel members' posting permissions:  \n * `1` — All chat channel members can post to the channel.  \n * `2` — Only the channel owner and administrators can post to the channel.  \n * `3` — Only channel owners, administrators, and certain members can post to the channel.","example":3,"enum":[1,2,3]},"mention_all_permissions":{"type":"integer","description":"This field indicates who can use @all:  \n * `1` - Everyone can use @all.  \n * `2` - Only channel owners and administrators can use @all.  \n * `3` - Nobody can use @all. **Note:** Only the channel owner can modify this setting.","example":1,"enum":[1,2,3]},"allow_to_add_external_users":{"type":"integer","description":"Whether external users can be added to the channel:  \n * `0` — External user cannot be added to the channel.  \n * `1` — All chat channel members can add external users to the channel.  \n * `2` — Only members within your organization can add external users to the channel.  \n * `3` - Only channel owners and administrators can add external users to the channel.  \n **Note:** This setting is always set to 1 for channel type 4.","example":2,"enum":[0,1,2,3]}},"description":"The settings of the [chat channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-)."},"id":{"type":"string","description":"The channel's ID.","example":"cabc1234567defghijkl01234"},"jid":{"type":"string","description":"The [Jabber ID (JID)](https://en.wikipedia.org/wiki/JID_(Jabber)) that accesses the account.","example":"cabc1234567defghijkl01234@conference.xmpp.zoom.us"},"name":{"type":"string","description":"The channel name.","example":"Developers"},"type":{"type":"integer","description":"The channel's type: \n* `0` — An unknown channel type. \n* `1` — A private channel. Members must be invited to join this channel. \n* `2` — A private channel with members that belong to a Zoom account. All members of this channel are from the same organization and must be invited to join. \n* `3` — A public channel. Anyone can search for and join this channel. \n* `4` — An instant channel. Adding members to a new chat creates this type of channel. \n* `5` — A public channel. Anyone can join this channel and invite members from other Zoom accounts.","example":2,"enum":[0,1,2,3,4,5]},"channel_url":{"type":"string","description":"The URL of the Zoom Chat channel.","example":"https://zoom.us/launch/chat/v2/eyJzaWQiOiIyY2RkZjNyNjU3YTY0ODUzOWVhOThkODFhNjRiODE2YkBjb25mZXJlbmNlLnhtcHBkZXYuem9vbS51cyJ1"}},"description":"The information about the [chat channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-)."}]}},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token returns when the available results exceed the current page size. The expiration period for this token is 15 minutes.","example":"qUEQqB1V0HVhJmwKFQrGOD"},"page_size":{"type":"integer","description":"The number of records returned per page in a single API call.","example":10},"total_records":{"type":"integer","description":"The total number of records found.","example":2}}}]}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The next page token is either invalid or has expired. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat_channel:read:admin","chat_channel:write:admin"],"x-granular-scopes":["team_chat:read:list_channels:admin"]}}},"/chat/channels/search":{"post":{"tags":["Chat Channels (Account-level)"],"summary":"Search user's or account's channels","description":"Searches user's or account's chat channels.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:read`,`chat_channel:write`,`chat_channel:read:admin`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:search_channels`,`team_chat:write:search_channels:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `RESOURCE-INTENSIVE`","operationId":"searchChannels","requestBody":{"content":{"application/json":{"schema":{"required":["haystack","needle"],"type":"object","properties":{"user_id":{"type":"string","description":"The user's unique identifier. \nIt's required for account-level apps to search user joined channels. Otherwise it should be omitted.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"page_size":{"maximum":20,"minimum":1,"type":"integer","description":"The number of records returned from a single API call.","example":12,"default":10},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"needle":{"description":"Search target.","oneOf":[{"title":"search_by_channel_name","required":["keywords","search_type"],"type":"object","properties":{"search_type":{"type":"string","description":"This field searches by channel name.","example":"by_channel_name","default":"by_channel_name","enum":["by_channel_name"]},"keywords":{"type":"array","description":"The list of keywords.","items":{"minLength":1,"type":"string","description":"This field searches the keyword. It must contain only alphanumerical and unicode characters. Whitespaces, control characters, and symbol characters are forbidden.","example":"spring"}}},"description":"This field searches by channel name."},{"title":"search_by_channel_name_exact_match","required":["channel_name","search_type"],"type":"object","properties":{"search_type":{"type":"string","description":"This field searches by channel name for the exact match.","example":"by_channel_name_exact_match","default":"by_channel_name_exact_match","enum":["by_channel_name_exact_match"]},"channel_name":{"type":"string","description":"This field search the for the case sensitive exact channel name.","example":"hike bay area"}},"description":"This field searches by channel name for the exact match."}]},"haystack":{"type":"string","description":"The collection of channels in which search is performed. \n\n**user_joined** - All channels that the user is a member of, include internal and external channels. When selected, no more than one page of result will be returned. For account-level apps, the user calling this API to search another user joined channels must have a [role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management) that has the **View** permission for the **Chat Channels** feature. \n\n**public** - All account's public channels. \n\n**all** - All account's channels. The user calling this API to search all account's channels must have a [role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management) that has the **View** permission for the **Chat Channels** feature.","example":"user_joined","enum":["user_joined","public","all"]},"include_archived":{"type":"boolean","description":"Whether to return the archived channels.","example":false,"default":false}}}}}},"responses":{"200":{"description":"**Status Code**: `200` Channel search result returned.","content":{"application/json":{"schema":{"required":["channels","page_size"],"type":"object","properties":{"channels":{"uniqueItems":true,"type":"array","description":"The information about the chat channels.","items":{"required":["channel_url","id","member_count","name","type"],"type":"object","properties":{"id":{"type":"string","description":"The channel's ID.","example":"cabc1234567defghijkl01234"},"name":{"type":"string","description":"The channel name.","example":"Developers"},"type":{"type":"integer","description":"The channel's type: \n* `0` — An unknown channel type. \n* `1` — A private channel. Members must be invited to join this channel. \n* `2` — A private channel with members that belong to a Zoom account. All members of this channel are from the same organization and must be invited to join. \n* `3` — A public channel. Anyone can search for and join this channel. \n* `4` — An instant channel. Adding members to a new chat creates this type of channel. \n* `5` — A public channel. Anyone can join this channel and invite members from other Zoom accounts.","example":2,"enum":[0,1,2,3,4,5]},"channel_url":{"type":"string","description":"The URL of the Zoom Chat channel.","example":"https://zoom.us/launch/chat/v2/eyJzaWQiOiIyY2RkZjNyNjU3YTY0ODUzOWVhOThkODFhNjRiODE2YkBjb25mZXJlbmNlLnhtcHBkZXYuem9vbS51cyJ1"},"member_count":{"type":"integer","description":"The total number of members in the channel.","example":12}},"description":"The information about the [chat channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-). "}},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token is returned when the available results exceed the current page size. The expiration period for this token is 15 minutes.","example":"qUEQqB1V0HVhJmwKFQrGOD"},"page_size":{"type":"integer","description":"The number of records returned in a single API call.","example":10}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The next page token is either invalid or has expired. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n No permission to access user's channels. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat_channel:read","chat_channel:write","chat_channel:read:admin","chat_channel:write:admin"],"x-granular-scopes":["team_chat:write:search_channels","team_chat:write:search_channels:admin"]}}},"/chat/channels/{channelId}/activities":{"get":{"tags":["Chat Channels (Account-level)"],"summary":"List channel activity logs","description":"Returns a list of a channel's activity logs.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_channel_activity_logs:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listChannelActivityLogs","parameters":[{"name":"channelId","in":"path","description":"The channel's unique identifier.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":15,"minimum":15,"type":"integer","example":15,"default":15}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"activity_type","in":"query","description":"The activity log type.","required":false,"schema":{"type":"string","example":"all","default":"membership","enum":["membership"]}},{"name":"start_date","in":"query","description":"The activity log start date.","required":true,"schema":{"type":"string","format":"date","example":"2025-03-01"}},{"name":"end_date","in":"query","description":"The activity log end date.","required":true,"schema":{"type":"string","format":"date","example":"2025-03-30"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   List of channel activity logs successfully returned.","content":{"application/json":{"schema":{"required":["channel_activity_logs"],"type":"object","properties":{"channel_activity_logs":{"type":"array","description":"The activity logs channel.","items":{"required":["activity_timestamp","activity_type","operator"],"type":"object","properties":{"activity_type":{"type":"string","description":"The activity log type.","example":"membership","enum":["membership"]},"activity_timestamp":{"type":"integer","description":"The timestamp of the activity log date.","format":"int64","example":1581370790388},"operator":{"type":"object","properties":{"display_name":{"type":"string","description":"The user's display name.","example":"John Doe"},"user_id":{"type":"string","description":"The user's ID. If the user belongs to an external account, `user_id` is set to an empty string.","example":"37oirnidtk6ije2tsfazbq"},"member_id":{"type":"string","description":"The user's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"}},"description":"The user who made this activity."},"members":{"type":"object","properties":{"member_status":{"type":"string","description":"The member's joined or left status.","example":"join","enum":["joined","left"]},"member_list":{"maxItems":100,"type":"array","description":"An array of a channel members activity.","items":{"type":"object","properties":{"display_name":{"type":"string","description":"The user's display name.","example":"John Doe"},"user_id":{"type":"string","description":"The user's ID. If the user belongs to an external account, `user_id` will be set to an empty string.","example":"37oirnidtk6ije2tsfazbq"},"member_id":{"type":"string","description":"The user's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"}}}}},"description":"Includes member join or leave status and member list."}}}},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"type":"integer","description":"The number of records returned within a single API call.","example":15}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Channel Id can't be empty or not exist. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `403` <br>\n No permission to access channel activity logs <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5306` <br>\n Channel does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat_channel:read:admin"],"x-granular-scopes":["team_chat:read:list_channel_activity_logs:admin"]}}},"/chat/channels/{channelId}/owner/{identifier}":{"patch":{"tags":["Chat Channels (Account-level)"],"summary":"Assign a new channel owner","description":"Change the owner of a chat channel to another member within that channel.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:channel_owner:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"reassignChannelOwner","parameters":[{"name":"channelId","in":"path","description":"The unique identifier of the channel.","required":true,"schema":{"type":"string","example":"abc1baa0fd22426cbbd5da2cd0648a6f"}},{"name":"identifier","in":"path","description":"The email address, user ID, or member ID of the member to assign as the new owner.","required":true,"schema":{"type":"string","example":"v_-yPXzSS9W8F3zT0I5VTw"}}],"requestBody":{"description":"The new owner to assign to the channel."},"responses":{"204":{"description":"Owner reassigned successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5511` <br>\n The new owner is already the owner of this channel. <br>\n**Error Code:** `5511` <br>\n The new owner is not in the channel. <br>\n**Error Code:** `5301` <br>\n An internal error occurred when trying to change the owner. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Not allowed on a group chat. <br>\n**Error Code:** `200` <br>\n Not allowed on an archived channel. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4130` <br>\n Channel does not exist: $channelId. <br>\n**Error Code:** `1001` <br>\n User does not exist: $identifier. <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/rate-limits/). \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write:admin"],"x-granular-scopes":["team_chat:update:channel_owner:admin"]}}},"/chat/channels/{channelId}/retention":{"get":{"tags":["Chat Channels (Account-level)"],"summary":"Get retention policy of a channel","description":"Returns the retention policy of a channel.  \n\n**Note:** This API only supports account-level apps. The user calling this API must have a [role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management) that has the **View** or **Edit** permission for the **Chat Channels** feature.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:read:admin`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:retention:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getChannelRetention","parameters":[{"name":"channelId","in":"path","description":"The channel's unique identifier. The channel type must be 1, 2, 3, or 5. The channel must not be archived.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  \n \nChannel retention policy returned.","content":{"application/json":{"schema":{"required":["channel_id","cloud_retention"],"type":"object","properties":{"channel_id":{"type":"string","description":"The channel's unique identifier.","example":"825c9e31f1064c73b394c5e4557d3447"},"cloud_retention":{"required":["enable_custom_retention","retention_period"],"type":"object","properties":{"enable_custom_retention":{"type":"boolean","description":"The custom retention policy is enabled on the channel.","example":true},"retention_period":{"type":"string","description":"The retention period of the channel. 'y' - year, 'm' - month, 'd' - day.","example":"7y"}},"description":"The cloud retention policy of the channel."}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4300` <br>\n channel id cannot be empty. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to access channel retention policy. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4130` <br>\n Channel does not exist: `$channelId`. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat_channel:read:admin","chat_channel:write:admin"],"x-granular-scopes":["team_chat:read:retention:admin"]}},"patch":{"tags":["Chat Channels (Account-level)"],"summary":"Update retention policy of a channel","description":"Updates the retention policy of a channel.  \n\n**Note:** This API only supports account-level apps. The user calling this API must have a [role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management) that has the **Edit** permission for the **Chat Channels** feature.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:retention:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"updateChannelRetention","parameters":[{"name":"channelId","in":"path","description":"The channel's unique identifier. The channel type must be 1, 2, 3 or 5. The channel must not be archived.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["cloud_retention"],"type":"object","properties":{"cloud_retention":{"required":["enable_custom_retention"],"type":"object","properties":{"enable_custom_retention":{"type":"boolean","description":"This field enables custom retention policy of the channel. If set to `true`, `retention_period` is required.","example":true},"retention_period":{"type":"string","description":"The custom retention period of the channel. 'y' - year, 'm' - month, 'd' - day. \n\n- If set by day, accepted range is `1d` through `90d`. \n- If set by month, accepted range is `1m` through `120m`. \n- If set by year, accepted range is `1y` through `10y`.","example":"30m"}},"description":"The cloud retention policy of the channel."}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204` \nChannel retention policy is updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to update channel retention policy. <br>\n**Error Code:** `5301` <br>\n Unable to update channel retention policy. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4130` <br>\n Channel does not exist: `$channelId`. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write:admin"],"x-granular-scopes":["team_chat:update:retention:admin"]}}},"/chat/users/{userId}/channels/{channelId}":{"get":{"tags":["Chat Channels (Account-level)"],"summary":"Get a channel","description":"Returns information about a specific channel. For user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter.\n\nZoom chat [channels](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-) allow users to communicate through chat in private or public groups.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:read`,`chat_channel:write`,`chat_channel:read:admin`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:user_channel`,`team_chat:read:user_channel:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getChannel","parameters":[{"name":"channelId","in":"path","description":"The channel's unique identifier.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}},{"name":"userId","in":"path","description":"The unique identifier of the user who is the member of the channel.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  \n \nChannel returned.","content":{"application/json":{"schema":{"type":"object","properties":{"channel_settings":{"type":"object","properties":{"add_member_permissions":{"type":"integer","description":"This field indicates who can add new channel members:  \n * `1` - All channel members can add new members.  \n * `2` - Only channel owners and administrators can add new members.  \n **Note:** Only channel owners can modify this setting.  \n **Note:** This setting is always set to 1 and not editable for channel types 3, 4 and 5.","example":2,"enum":[1,2]},"new_members_can_see_previous_messages_files":{"type":"boolean","description":"Whether new channel members can view messages and files previously posted in the channel.","example":true},"posting_permissions":{"type":"integer","description":"The channel members' posting permissions:  \n * `1` — All chat channel members can post to the channel.  \n * `2` — Only channel owners and administrators can post to the channel.  \n * `3` — Only channel owners, administrators, and certain members can post to the channel.","example":3,"enum":[1,2,3]},"mention_all_permissions":{"type":"integer","description":"This field indicates who can use @all:  \n * `1` - Everyone can use @all.  \n * `2` - Only channel owners and administrators can use @all.  \n * `3` - Nobody can use @all.  \n **Note:** Only channel owners can modify this setting.","example":1,"enum":[1,2,3]},"allow_to_add_external_users":{"type":"integer","description":"Whether external users can be added to the channel:  \n * `0` — External users cannot be added to the channel.  \n * `1` — All chat channel members can add external users to the channel.  \n * `2` — Only members within your organization can add external users to the channel.  \n * `3` - Only channel owners and administrators can add external users to the channel.  \n **Note:** This setting is always set to 1 for channel type 4.","example":2,"enum":[0,1,2,3]},"designated_posting_members":{"type":"array","description":"The user IDs or member IDs of the channel's member to whom the posting permission was designated. \n \n`posting_permissions` must be `3` to have posting members.","items":{"type":"object","properties":{"member_id":{"type":"string","description":"The member ID of the designated channel member who has posting permission.","example":"b8b03c9ed5114ed59e4833cc6cb4921b"},"user_id":{"type":"string","description":"The user ID of the designated channel member who has posting permission. If the member does not belong to the same account as the current, this field will be empty.","example":"xvenagdyr6yonp8fhpky0w"}},"description":"The information of the designated channel member who has posting permission."}}},"description":"The settings of the [chat channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-)."},"id":{"type":"string","description":"The channel's ID.","example":"cabc1234567defghijkl01234"},"jid":{"type":"string","description":"The [Jabber ID (JID)](https://en.wikipedia.org/wiki/JID_(Jabber)) that accesses the account.","example":"cabc1234567defghijkl01234@conference.xmpp.zoom.us"},"name":{"type":"string","description":"The channel name.","example":"Developers"},"type":{"type":"integer","description":"The channel's type: \n* `0` — An unknown channel type. \n* `1` — A private channel. Members must be invited to join this channel. \n* `2` — A private channel with members that belong to a Zoom account. All members of this channel are from the same organization and must be invited to join. \n* `3` — A public channel. Anyone can search for and join this channel. \n* `4` — An instant channel. This type of channel is created by adding members to a new chat. \n* `5` — A public channel. Anyone can join this channel and invite members from other Zoom accounts.","example":2,"enum":[0,1,2,3,4,5]},"channel_url":{"type":"string","description":"The URL of the Zoom Chat channel.","example":"https://zoom.us/launch/chat/v2/eyJzaWQiOiIyY2RkZjNyNjU3YTY0ODUzOWVhOThkODFhNjRiODE2YkBjb25mZXJlbmNlLnhtcHBkZXYuem9vbS51cyJ1"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to access this user's channel information. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4130` <br>\n Channel does not exist: $channelId. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat_channel:read","chat_channel:write","chat_channel:read:admin","chat_channel:write:admin"],"x-granular-scopes":["team_chat:read:user_channel","team_chat:read:user_channel:admin"]}},"delete":{"tags":["Chat Channels (Account-level)"],"summary":"Delete a channel","description":"Deletes a specific channel. For user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter.\n\nZoom chat [channels](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-) allow users to communicate via chat in private or public groups.\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:user_channel`,`team_chat:delete:user_channel:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"deleteChannel","parameters":[{"name":"channelId","in":"path","description":"The channel's unique identifier.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}},{"name":"userId","in":"path","description":"The user ID of the channel owner.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`  \n \nChannel deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to delete this user's channel.<br> <br>\n**Error Code:** `5301` <br>\n Request to delete a channel failed. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:delete:user_channel","team_chat:delete:user_channel:admin"]}},"patch":{"tags":["Chat Channels (Account-level)"],"summary":"Update a channel","description":"Updates the name, type, and settings of a specific channel that the user owns or administers. For user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter.\n\nZoom chat channels allow users to communicate through chat in private or public channels.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:user_channel`,`team_chat:update:user_channel:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"updateChannel","parameters":[{"name":"channelId","in":"path","description":"The channel ID.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}},{"name":"userId","in":"path","description":"The unique identifier of the Zoom user who is the administrator of the channel.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"A new name for the channel.","example":"Developers Chat"},"channel_settings":{"type":"object","properties":{"add_member_permissions":{"type":"integer","description":"This field indicates who can add new channel members:  \n * `1` - All channel members can add new members.  \n * `2` - Only channel owners and administrators can add new members.  \n **Note:** Only the channel owner can modify this setting.  \n **Note:** This setting is always set to 1 and not editable for channel types 3, 4 and 5.","example":2,"enum":[1,2]},"new_members_can_see_previous_messages_files":{"type":"boolean","description":"Whether new channel members can view messages and files previously posted in the channel.","example":true},"posting_permissions":{"type":"integer","description":"The channel members' posting permissions:  \n * `1` — All chat channel members can post to the channel.  \n * `2` — Only channel owners and administrators can post to the channel.  \n * `3` — Only channel owners, administrators, and certain members can post to the channel.","example":3,"enum":[1,2,3]},"mention_all_permissions":{"type":"integer","description":"This field indicates who can use @all:  \n * `1` - Everyone can use @all.  \n * `2` - Only channel owners and administrators can use @all.  \n * `3` - Nobody can use @all.  \n **Note:** Only the channel owner can modify this setting.","example":1,"enum":[1,2,3]},"designated_posting_members":{"type":"array","description":"The user IDs or member IDs of the channel's member to whom the posting permission was designated. \n \nYou must select `3` for `posting_permissions` in the API request.","items":{"description":"Either the user ID or member ID of the designated channel member who has posting permission.","oneOf":[{"type":"object","properties":{"user_id":{"type":"string","description":"The user ID.","example":"alsjdflasjfasjfas"}},"description":"The user ID object."},{"type":"object","properties":{"member_id":{"type":"string","description":"The member ID.","example":"825c9e31f1064c73b394c5e4557d3447"}},"description":"The member ID object."}]}}},"description":"The settings of the [chat channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-)."},"type":{"type":"integer","description":"This field changes the channel type. For example, public channel 5 to private 1, public 3 to private 2, vice versa, and so on.\n\nThe channel's type: \n* `1` — A private channel. Members must be invited to join this channel. \n* `2` — A private channel with members that belong to a Zoom account. All members of this channel are from the same organization and must be invited to join.\n* `3` — A public channel. Anyone can search and join this channel.\n* `5` — A public channel. Anyone can join this channel and invite members from other Zoom accounts.","example":1,"enum":[1,2,3,5]}}}}}},"responses":{"204":{"description":"**Status Code:** `204`\nChannel updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The channel name already exists. <br>\n**Error Code:** `5301` <br>\n Request to update a channel failed. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to update a channel for this user.<br> <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:update:user_channel","team_chat:update:user_channel:admin"]}}},"/chat/users/{userId}/channels/{channelId}/admins":{"get":{"tags":["Chat Channels (Account-level)"],"summary":"List channel administrators","description":"Lists all administrators of a channel. \nFor user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter.\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:read`,`chat_channel:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_administrators:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listChannelAdministrators","parameters":[{"name":"userId","in":"path","description":"The user ID of member in the channel.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},{"name":"channelId","in":"path","description":"The channel ID.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}},{"name":"page_size","in":"query","description":"The number of records returned with a single API call.","required":false,"schema":{"maximum":50,"type":"integer","example":10,"default":10}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  \n \nList of channel administrators returned.\n\n","content":{"application/json":{"schema":{"type":"object","properties":{"admins":{"type":"array","description":"The channel administrator.","items":{"type":"object","properties":{"email":{"type":"string","description":"The administrator's email address. If the administrator does not belong to the same account as the current user or is not the current user's contact, this field will be empty.","format":"email","example":"jchill@example.com"},"first_name":{"type":"string","description":"The administrator's first name. If the admin does not belong to the same account as the current user or is not the current user's contact, this field will be empty.","example":"Jill"},"id":{"type":"string","description":"The administrator's user ID. If the admin does not belong to the same account as the current user, this field will be empty.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"member_id":{"type":"string","description":"The channel administrator's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"},"role":{"type":"string","description":"The role of the administrator. The value can be one of these: `owner`, `admin`.","example":"admin","enum":["admin","owner"]},"last_name":{"type":"string","description":"The administrator's last name. If the admin does not belong to the same account as the current useror is not the current user's contact, this field will be empty.","example":"Chill"},"name":{"type":"string","description":"The administrator's display name.","example":"Jill Chill"},"is_external":{"type":"boolean","description":"The current administrator is external to the userId's account.","example":false}}}},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"type":"integer","description":"The number of records returned within a single API call.","example":10}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to list channel's administrators on this user's behalf.<br> <br>\n**Error Code:** `300` <br>\n The next page token is either invalid or has expired. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_channel:read","chat_channel:read:admin"],"x-granular-scopes":["team_chat:read:list_administrators:admin"]}},"post":{"tags":["Chat Channels (Account-level)"],"summary":"Promote channel members to administrators","description":"Promotes members to an administrator role in a channel.  \n\nFor user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter.\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:administrator:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"promoteChannelMembersAsAdmin","parameters":[{"name":"userId","in":"path","description":"The user ID.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},{"name":"channelId","in":"path","description":"The channel ID.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"admins":{"maxItems":10,"minItems":1,"type":"array","description":"The channel administrators. You can promote up to 10 members in a single API call.","items":{"oneOf":[{"title":"email","required":["email"],"type":"object","properties":{"email":{"type":"string","description":"The admin's email address.","format":"email","example":"jchill@example.com"}}},{"title":"member_id","required":["member_id"],"type":"object","properties":{"member_id":{"type":"string","description":"The admin's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"}}}]}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`  \n \nPromoted member(s) to administrator(s) of the channel.","content":{"application/json":{"schema":{"type":"object","properties":{"added_at":{"type":"string","description":"The date and time when the members are promoted to administrator(s) in the channel.","format":"date-time","example":"2020-02-10T21:39:50Z"},"ids":{"type":"string","description":"A comma-separated user IDs of the administrators. The user IDs of those who are not from the same account will be omitted from the list.","example":"D40dy5L7SJiSTayIvRV9Lw,KT6h5SfCSm6YNjZo7i8few"},"member_ids":{"type":"string","description":"The member IDs of the administrators.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ,R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to promote member(s) as channel administrator(s) failed.<br> <br>\n**Error Code:** `200` <br>\n Unauthorized request. You do not have permission to promote member as channel administrator on this user's behalf. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:write:administrator:admin"]}},"delete":{"tags":["Chat Channels (Account-level)"],"summary":"Batch demote channel administrators","description":"Demotes administrators in a channel in batch. For user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter.\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:batch_administrators:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"batchDemoteChannelAdministrators","parameters":[{"name":"userId","in":"path","description":"The user ID of the channel administrator.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},{"name":"channelId","in":"path","description":"The channel ID.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}},{"name":"admin_ids","in":"query","description":"The member IDs with channel admin privileges. Use commas (,) to separate a maximum of 10 IDs in a call.","required":true,"schema":{"type":"string","example":"zqmgs2tmspguoqcxyahsya,za7AvP7o9AxypYwpaKYsOJ2K3VwXBZn4JtxgPGk8Lf7_1w"}},{"name":"user_ids","in":"query","description":"The member IDs or user IDs with channel admin privileges. Use commas (,) to separate a maximum of 10 IDs in a call.","required":true,"schema":{"type":"string","example":"zqmgs2tmspguoqcxyahsya,R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204` **No Content**  \n \nDemoted administrators to members.\n\n\n"},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n No permission to demote channel administrators.<br> <br>\n**Error Code:** `5301` <br>\n Unable to demote channel administrator.<br> <br>\n**Error Code:** `300` <br>\n The maximum number of administrators that can be demoted at a time is 10. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:delete:batch_administrators:admin"]}}},"/chat/users/{userId}/channels/{channelId}/members":{"get":{"tags":["Chat Channels (Account-level)"],"summary":"List channel members","description":"Returns a list of all members of a channel. For user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter.\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:read`,`chat_channel:write`,`chat_channel:read:admin`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_members`,`team_chat:read:list_members:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listChannelMembers","parameters":[{"name":"channelId","in":"path","description":"The channel ID.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}},{"name":"userId","in":"path","description":"The unique identifier of the user who is the owner of this channel.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},{"name":"page_size","in":"query","description":"The number of records returned with a single API call.","required":false,"schema":{"maximum":100,"type":"integer","example":20,"default":30}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  \n \nList of channel members returned.\n\n","content":{"application/json":{"schema":{"type":"object","properties":{"members":{"type":"array","description":"The members in a channel.","items":{"type":"object","properties":{"email":{"type":"string","description":"The member's email address. If the member does not belong to the same account as the current user or is not the current user's contact, this field will be empty.","format":"email","example":"jchill@example.com"},"first_name":{"type":"string","description":"The member's first name.  If the member does not belong to the same account as the current user or is not the current user's contact, this field will be empty.","example":"Jill"},"id":{"type":"string","description":"The member's user ID. If the member does not belong to the same account as the current user, this field will be empty.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"member_id":{"type":"string","description":"The channel member's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"},"last_name":{"type":"string","description":"The member's last name. If the member does not belong to the same account as the current user or is not the current user's contact, this field will be empty.","example":"Chill"},"name":{"type":"string","description":"The user's display name.","example":"Jill Chill"},"role":{"type":"string","description":"The role of the member. The value can be one of these: `owner`, `admin`, `member`.","example":"admin","enum":["admin","owner","member"]},"is_external":{"type":"boolean","description":"Whether it is an external member.","example":true}}}},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":100,"type":"integer","description":"The number of records returned with a single API call. ","example":50,"default":30},"total_records":{"type":"integer","description":"The total number of records returned.","example":100}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to view channel members on this user's behalf.<br> <br>\n**Error Code:** `300` <br>\n The next page token is either invalid or has expired. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat_channel:read","chat_channel:write","chat_channel:read:admin","chat_channel:write:admin"],"x-granular-scopes":["team_chat:read:list_members","team_chat:read:list_members:admin"]}},"post":{"tags":["Chat Channels (Account-level)"],"summary":"Invite channel members","description":"Invites members that are in a user's contact list to a channel. \nFor user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter.\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:members`,`team_chat:write:members:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"inviteChannelMembers","parameters":[{"name":"channelId","in":"path","description":"The channel's unique identifier.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}},{"name":"userId","in":"path","description":"The unique identifier of the user who is the member of this channel.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"members":{"type":"array","description":"The members of a chat channel. You can invite up to 20 members with a single API call. To invite external users, an email should be sent. You can send up to 100 emails a day. The call to invite external users fails when the number of sent emails exceeds the limit.","items":{"required":["email"],"type":"object","properties":{"email":{"type":"string","description":"The email address of the member.","format":"email","example":"jchill@example.com"}}}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`  \n \nMembers invited to the channel.","content":{"application/json":{"schema":{"type":"object","properties":{"added_at":{"type":"string","description":"The date and time when the member(s) are added to the channel.","format":"date-time","example":"2020-02-10T21:39:50Z"},"ids":{"type":"string","description":"The comma-separated user IDs of the members added to the channel. The user IDs of those who are not from the same account will be omitted from the list.","example":"D40dy5L7SJiSTayIvRV9Lw,KT6h5SfCSm6YNjZo7i8few"},"member_ids":{"type":"string","description":"The comma-separated member IDs of the members added to the channel.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ,R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to invite channel members failed.<br> <br>\n**Error Code:** `200` <br>\n Unauthorized request. You do not have permission to invite channel members on this user's behalf. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:write:members","team_chat:write:members:admin"]}},"delete":{"tags":["Chat Channels (Account-level)"],"summary":"Batch remove members from a user's channel","description":"Removes multiple members from a user's chat channel in a batch. A [chat channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-) can have one or many members.   \n   \n \n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write:admin`,`chat_channel:write`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:member:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"batchRemoveUserChannelMembers","parameters":[{"name":"channelId","in":"path","description":"The channel ID.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}},{"name":"userId","in":"path","description":"The user ID of the channel owner or channel admin.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},{"name":"identifiers","in":"query","description":"The user ID or member ID of the member you want to remove from the channel. \nYou can remove a maximum of 20 agent IDs. \nIt allows `memberId` or `userId`.","required":true,"schema":{"type":"string","example":"zqmgs2tmspguoqcxyahsya,R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204` **No Content**  \n \nMembers removed.\n\n\n"},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n No permission to remove channel members.<br> <br>\n**Error Code:** `5301` <br>\n Unable to remove channel member.<br> <br>\n**Error Code:** `300` <br>\n You can not remove the current user himself.<br> <br>\n**Error Code:** `300` <br>\n The maximum number of members that can be removed at a time is 20. <br>\n**Error Code:** `403` <br>\n Authenticated user has not permitted access to the targeted resource. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_channel:write:admin","chat_channel:write"],"x-granular-scopes":["team_chat:delete:member:admin"]}}},"/chat/users/{userId}/channels/{channelId}/members/{identifier}":{"delete":{"tags":["Chat Channels (Account-level)"],"summary":"Remove a member","description":" Removes a member from a chat channel. A [channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-) can have one or many members.  For user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter.\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_channel:write`,`chat_channel:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:member:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `Medium`","operationId":"removeAChannelMember","parameters":[{"name":"channelId","in":"path","description":"The unique identifier of the channel from where you would like to remove a member. Retrieve this from the [**List user's channels**](/docs/api-reference/chat/methods#operation/getChannels) API.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}},{"name":"identifier","in":"path","description":"The email address or user ID or member ID of the member whom you would like to be remove from the channel.","required":true,"schema":{"oneOf":[{"type":"string","format":"email","example":"jchill@example.com"},{"type":"string","example":"zQmgS2TMSpGUOQcXyAHsyA"},{"type":"string","example":"za7AvP7o9AxypYwpaKYsOJ2K3VwXBZn4JtxgPGk8Lf7_1w"}]}},{"name":"userId","in":"path","description":"The unique identifier of the channel administrator.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204` **No Content**  \n \nMember removed.\n\n\n"},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request\n\n**Error Code:** `200` <br>\nUnauthorized request. You do not have permission to remove channel members on this user's behalf.<br>\n\n**Error Code:** `5301` <br>\nUnable to remove channel member.\n\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_authorization":[]}],"x-extensions":{"x-macro-scopes":["chat_channel:write","chat_channel:write:admin"],"x-granular-scopes":["team_chat:delete:member:admin"]}}},"/chat/emoji":{"get":{"tags":["Chat Emoji"],"summary":"List custom emojis","description":"Queries the custom emojis list.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:read:admin`,`chat:read`,`chat:write:admin`,`chat:write`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_custom_emojis`,`team_chat:read:list_custom_emojis:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listCustomEmojis","parameters":[{"name":"page_size","in":"query","description":"The number of records returned with a single API call. ","required":false,"schema":{"maximum":50,"type":"integer","example":10,"default":10}},{"name":"search_key","in":"query","description":"The query string for emoji name. The minimum length is 3 characters. The maximum length is 256 characters. It is case sensitive.","required":false,"schema":{"maxLength":256,"minLength":3,"type":"string","example":"hello"}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"32.0,-9223372036854775808,1704438757798,so6Q0cltRtiHe7w_5lM39Q"}}],"responses":{"200":{"description":"**HTTP Status Code:**`200`   The list of emojis returned.","content":{"application/json":{"schema":{"required":["emojis","page_size"],"type":"object","properties":{"emojis":{"type":"array","description":"The list of emojis.","items":{"required":["date_added","file_id","member_id","name","user_email","user_id","user_name"],"type":"object","properties":{"file_id":{"type":"string","description":"The ID of this custom emoji.","example":"bKgNq133RoS5TMg99QfZJA"},"name":{"type":"string","description":"The emoji name.","example":"Hello"},"user_id":{"type":"string","description":"The user ID that added this emoji.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"member_id":{"type":"string","description":"The member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"},"user_name":{"type":"string","description":"The name of the user who added the custom emoji.","example":"Jack liu"},"user_email":{"type":"string","description":"The email of the user who added the custom emoji.","example":"hello@example.com"},"date_added":{"type":"string","description":"The date when this emoji was added.","example":"2020-02-10T21:39:50Z"}}}},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"32.0,-9223372036854775808,1704438757798,so6Q0cltRtiHe7w_5lM39Q"},"page_size":{"type":"integer","description":"The number of records returned within a single API call.","example":10},"search_key":{"type":"string","description":"The query string for emoji name.","example":"hello"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Account has not enabled the custom emojis feature. Contact Zoom Support for details. <br>\n**Error Code:** `5333` <br>\n Invalid parameter: search_key. The minimum length is 3 characters, the maximum length is 256 characters. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat:read:admin","chat:read","chat:write:admin","chat:write"],"x-granular-scopes":["team_chat:read:list_custom_emojis","team_chat:read:list_custom_emojis:admin"]}}},"/chat/emoji/files":{"post":{"tags":["Chat Emoji"],"summary":"Add a custom emoji","description":"Add a custom emoji. \n\n **Note:** \n* The base URL for this API's is `https://fileapi.zoom.us/v2`. \n* The rate limit of this API is 20 requests per second per API or 2000 requests per second per IP address. \n* The caller must support HTTP 30x redirects. \n* All files are sent as common files except `png`,`jpg`,`jpeg` and `gif` \n* The caller must retain the authorization header when redirected to a different hostname. \n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:write`,`chat:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:custom_emoji`,`team_chat:write:custom_emoji:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"addACustomEmoji","requestBody":{"content":{"multipart/form-data":{"schema":{"required":["file","name"],"type":"object","properties":{"name":{"maxLength":100,"minLength":3,"pattern":"^[a-zA-Z_0-9]{3,100}$","type":"string","description":"The name of the emoji to be added. Allowed characters: letters, numbers, underscores. The maximum length is 100.","example":"happy"},"file":{"maxLength":256,"type":"string","description":"The upload file in binary format. You can only send a maximum of 256KB. Only supports jpg, png, gif and jpeg.","format":"binary"}}}}}},"responses":{"201":{"description":"**Status Code:** `201`   Add this custom emoji successfully.","content":{"application/json":{"schema":{"required":["file_id","name"],"type":"object","properties":{"file_id":{"type":"string","description":"The file ID.","example":"9c5408f87660a840167674acd7d"},"name":{"type":"string","description":"The emoji name.","example":"happy"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid parameter, the possible reasons:\n1. Allowed characters: letters, numbers, underscores\n2. The maximum size of file is 256KB. <br>\n**Error Code:** `400` <br>\n Invalid file type. Only support jpg,png,gif,jpeg. <br>\n**Error Code:** `500` <br>\n Add this custom emoji failed. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `40090` <br>\n User has no permission to add custom emoji. Contact Zoom Support for details. <br>\n"},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict  \n\n **Error Code:** `30010` <br>\n Duplicate custom emoji name. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat:write","chat:write:admin"],"x-granular-scopes":["team_chat:write:custom_emoji","team_chat:write:custom_emoji:admin"]}}},"/chat/emoji/{fileId}":{"delete":{"tags":["Chat Emoji"],"summary":"Delete a custom emoji","description":"Delete a custom emoji by *fileId*.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:write`,`chat:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:custom_emoji`,`team_chat:delete:custom_emoji:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"DeleteCustomEmoji","parameters":[{"name":"fileId","in":"path","description":"The unique ID of the file.","required":true,"schema":{"type":"string","example":"qgH9UN5YSsuBEMuKBHs34Q"}}],"responses":{"204":{"description":"**Status Code:** `204`   Delete an emoji successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4600` <br>\n Delete this custom emoji failed. <br>\n**Error Code:** `300` <br>\n Account has not enabled the custom emojis feature. Contact Zoom Support for details. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n No permission to delete custom emojis. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5404` <br>\n This custom emoji does not exist: '${fileId}'. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat:write","chat:write:admin"],"x-granular-scopes":["team_chat:delete:custom_emoji","team_chat:delete:custom_emoji:admin"]}}},"/zoomchat/external_connections/accounts":{"get":{"tags":["Chat External Connections"],"summary":"External connections: view external accounts connected to your account.","description":"Use this endpoint to see which external accounts collaborate with your account and review the scale, timing, and policy settings of each relationship.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zoom_chat:read:list_external_connections:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`\n\n**Not supported in Gov cluster** ","operationId":"zoom_chat_connected_external_accounts_list","parameters":[{"name":"keyword","in":"query","description":"Optional keyword used to narrow the results.","required":false,"schema":{"type":"string","description":"Optional keyword used to narrow the results.","example":"external"}},{"name":"sort_by","in":"query","description":"The field used to sort results. Defaults to `initial_connection_date` when omitted.","required":false,"schema":{"type":"string","description":"The field used to sort results. Defaults to `initial_connection_date` when omitted.","example":"channels_with_users_from_this_account_count","default":"initial_connection_date","enum":["initial_connection_date","external_account_name","channels_with_users_from_this_account_count","direct_messages_with_unique_users_in_your_account_count","internal_users_in_chats_owned_by_this_account_count","external_users_in_chats_owned_by_your_account_count"]}},{"name":"sort_order","in":"query","description":"The sort direction. When omitted, date fields default to `desc` and non-date fields default to `asc`.","required":false,"schema":{"type":"string","description":"The sort direction. When omitted, date fields default to `desc` and non-date fields default to `asc`.","example":"desc","enum":["asc","desc"]}},{"name":"next_page_token","in":"query","description":"An opaque cursor returned by the previous response. Use it to fetch the next page.","required":false,"schema":{"type":"string","description":"An opaque cursor returned by the previous response. Use it to fetch the next page.","example":"2025-07-23,ovgxrfj8qfiyoh4nuhnvog"}},{"name":"limit","in":"query","description":"The maximum number of items to return on this page. Must be between 1 and 100. Defaults to 20.","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","description":"The maximum number of items to return on this page. Must be between 1 and 100. Defaults to 20.","example":20,"default":20}}],"responses":{"200":{"description":"Successful response containing external accounts connected to your account.","content":{"application/json":{"schema":{"required":["external_accounts","limit","sort_by","sort_order","summary"],"type":"object","properties":{"limit":{"maximum":100,"minimum":1,"type":"integer","description":"The maximum number of items requested for this page.","example":20,"default":20},"sort_by":{"type":"string","description":"The sort field applied to this page of results.","example":"initial_connection_date","default":"initial_connection_date","enum":["initial_connection_date","external_account_name","channels_with_users_from_this_account_count","direct_messages_with_unique_users_in_your_account_count","internal_users_in_chats_owned_by_this_account_count","external_users_in_chats_owned_by_your_account_count"]},"sort_order":{"type":"string","description":"The sort direction applied to this page of results.","example":"desc","enum":["asc","desc"]},"next_page_token":{"type":"string","description":"The cursor to fetch the next page. Omitted when there is no next page.","example":"2025-07-23,ovgxrfj8qfiyoh4nuhnvog"},"summary":{"type":"object","properties":{"channels_with_users_from_this_account_count":{"type":"integer","description":"The total number of chats owned by your account that include users from the listed external accounts.","format":"int64","example":2},"direct_messages_with_unique_users_in_your_account_count":{"type":"integer","description":"The total number of direct-message relationships between the listed external accounts and unique users in your account.","format":"int64","example":1},"domain_count":{"type":"integer","description":"The total number of domains represented across the listed external accounts.","format":"int64","example":1},"external_account_count":{"type":"integer","description":"The number of external accounts included in the current scope.","format":"int64","example":3},"external_users_in_chats_owned_by_your_account_count":{"type":"integer","description":"The total number of external users from the listed external accounts who are in chats owned by your account.","format":"int64","example":2},"internal_users_in_chats_owned_by_this_account_count":{"type":"integer","description":"The total number of users from your account who are in chats owned by the listed external accounts.","format":"int64","example":1}},"description":"Summary metrics for the external accounts in scope."},"external_accounts":{"type":"array","description":"The external accounts returned on this page.","items":{"required":["channels_with_users_from_this_account_count","direct_messages_with_unique_users_in_your_account_count","external_account_ref","external_users_in_chats_owned_by_your_account_count","internal_users_in_chats_owned_by_this_account_count","is_same_organization","uses_custom_account_settings"],"type":"object","properties":{"external_account_ref":{"type":"string","description":"An opaque reference to this external account. Pass it back unchanged to the external-account detail endpoints (e.g., `/accounts/{external_account_ref}/direct_chats`). This is not the external account's real ID.","example":"DK2X7U-qGhmxhpEUbgAAFgAAAEXu4hj30uUC-qdcPC9M3zm1EXFu1WyoPdDYgbgAUb7We7CsUAHrMDAwMDAz"},"external_account_name":{"type":"string","description":"The display name of the external account.","example":"External Account 1"},"direct_messages_with_unique_users_in_your_account_count":{"type":"integer","description":"The number of direct-message relationships between this external account and unique users in your account.","format":"int64","example":1},"uses_custom_account_settings":{"type":"boolean","description":"Whether this external account uses custom external collaboration settings.","example":true},"initial_connection_date":{"type":"string","description":"The date when the external account relationship was first established. Formatted as an ISO 8601 date (`yyyy-MM-dd`).","format":"date","example":"2024-08-09"},"is_same_organization":{"type":"boolean","description":"Whether this external account belongs to the same organization as your account.","example":false},"channels_with_users_from_this_account_count":{"type":"integer","description":"The number of channels that contain users from this external account.","format":"int64","example":2},"internal_users_in_chats_owned_by_this_account_count":{"type":"integer","description":"The number of your internal users in chats owned by this external account.","format":"int64","example":1},"external_users_in_chats_owned_by_your_account_count":{"type":"integer","description":"The number of users from this external account in chats owned by your account.","format":"int64","example":2},"domains":{"type":"array","description":"The domains associated with this external account.","items":{"type":"string","description":"A domain belonging to the external account.","example":"external-account-1.example.com"}},"external_account_settings":{"required":["allow_our_users_to_join_this_external_account_channels","allow_this_external_account_users_to_join_our_channels","default_allow_channel_members_to_add_external_users","default_allow_joining_external_channels_and_accepting_external_contacts","default_external_user_invite_scope","default_require_admin_approval_for_external_invites","default_require_admin_approval_for_external_joins","require_admin_approval_for_our_users_to_join_this_external_account_channels","require_admin_approval_for_this_external_account_users_to_join_our_channels"],"type":"object","properties":{"default_allow_channel_members_to_add_external_users":{"type":"boolean","description":"Account-level default rule. Whether channel members in this account are allowed to add external users to this account's channels.","example":true},"default_external_user_invite_scope":{"type":"string","description":"Account-level default scope for who can add external users to this account's channels.","example":"same_org_channel_members","enum":["all_channel_members","same_org_channel_members","account_admins_and_owner"]},"default_require_admin_approval_for_external_invites":{"type":"boolean","description":"Account-level default rule. Whether adding external users or inviting external users into this account's channels requires account admin approval.","example":true},"default_allow_joining_external_channels_and_accepting_external_contacts":{"type":"boolean","description":"Account-level default rule. Whether users in this account are allowed to join external-account-owned channels and accept external contact requests.","example":true},"default_require_admin_approval_for_external_joins":{"type":"boolean","description":"Account-level default rule. Whether joining external-account-owned channels or accepting external contacts requires account admin approval.","example":false},"allow_this_external_account_users_to_join_our_channels":{"type":"boolean","description":"Account-specific rule. Whether users from this external account are allowed to join this account's channels.","example":true},"require_admin_approval_for_this_external_account_users_to_join_our_channels":{"type":"boolean","description":"Account-specific rule. Whether users from this external account need account admin approval before joining this account's channels.","example":true},"allow_our_users_to_join_this_external_account_channels":{"type":"boolean","description":"Account-specific rule. Whether users in this account are allowed to join channels owned by this external account.","example":true},"require_admin_approval_for_our_users_to_join_this_external_account_channels":{"type":"boolean","description":"Account-specific rule. Whether users in this account need account admin approval before joining channels owned by this external account.","example":false}},"description":"The external collaboration policy details for this external account."}},"description":"An external account in the connection overview."}}},"description":"Successful response."}}}}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["IMExternalConnection:Read"],"x-granular-scopes":["zoom_chat:read:list_external_connections:admin"]}}},"/zoomchat/external_connections/accounts/{external_account_ref}/channels":{"get":{"tags":["Chat External Connections"],"summary":"External connections: view channels for one external account.","description":"Use this endpoint to see which channels and group chats involve a specific external account, how many users on each side are present, and whether the chat is owned by the external side. This endpoint currently merges classic channels and group chats into one list and does not expose `channel_type`.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zoom_chat:read:list_external_connections:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"zoom_chat_connected_channels_for_external_account_list","parameters":[{"name":"external_account_ref","in":"path","description":"Opaque reference to the target external account, as returned by the external-connections list endpoints. Pass it back unchanged; this is NOT the external account's real ID.","required":true,"schema":{"type":"string","description":"Opaque reference to the target external account, as returned by the external-connections list endpoints. Pass it back unchanged; this is NOT the external account's real ID.","example":"DK2X7U-qGhmxhpEUbgAAFgAAAEXu4hj30uUC-qdcPC9M3zm1EXFu1WyoPdDYgbgAUb7We7CsUAHrMDAwMDAz"}},{"name":"sort_by","in":"query","description":"Field used to sort results. Defaults to `joined_date` when omitted.","required":false,"schema":{"type":"string","description":"Field used to sort results. Defaults to `joined_date` when omitted.","example":"channel_name","default":"joined_date","enum":["joined_date","channel_name","account_name","users_from_your_account_count","external_users_from_this_account_count","external_users_from_other_accounts_count"]}},{"name":"sort_order","in":"query","description":"Sort direction. When omitted, date fields default to `desc` and non-date fields default to `asc`.","required":false,"schema":{"type":"string","description":"Sort direction. When omitted, date fields default to `desc` and non-date fields default to `asc`.","example":"desc","enum":["asc","desc"]}},{"name":"next_page_token","in":"query","description":"Opaque cursor returned by the previous response. Use it to fetch the next page.","required":false,"schema":{"type":"string","description":"Opaque cursor returned by the previous response. Use it to fetch the next page.","example":"2025-07-23,c3f9aa1ea7f444c19fe9f0b461430789"}},{"name":"limit","in":"query","description":"Maximum number of items to return on this page. Must be between 1 and 100; defaults to 20.","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","description":"Maximum number of items to return on this page. Must be between 1 and 100; defaults to 20.","example":20,"default":20}}],"responses":{"200":{"description":"Successful response containing channels and group chats for the target external account.","content":{"application/json":{"schema":{"required":["chats","limit","sort_by","sort_order","summary"],"type":"object","properties":{"limit":{"maximum":100,"minimum":1,"type":"integer","description":"Maximum number of items requested for this page.","example":20,"default":20},"sort_by":{"type":"string","description":"Sort field applied to this page of results.","example":"channel_name","default":"joined_date","enum":["joined_date","channel_name","account_name","users_from_your_account_count","external_users_from_this_account_count","external_users_from_other_accounts_count"]},"sort_order":{"type":"string","description":"Sort direction applied to this page of results.","example":"desc","enum":["asc","desc"]},"next_page_token":{"type":"string","description":"Cursor to fetch the next page. Omitted when there is no next page.","example":"2025-07-23,ovgxrfj8qfiyoh4nuhnvog"},"summary":{"type":"object","properties":{"chat_count":{"type":"integer","description":"Number of channels and group chats included in the results.","format":"int64","example":2},"external_users_from_other_accounts_count":{"type":"integer","description":"Total number of external users from other accounts across the returned chats.","format":"int64","example":1},"external_users_from_this_account_count":{"type":"integer","description":"Total number of external users from this external account across the returned chats.","format":"int64","example":2},"users_from_your_account_count":{"type":"integer","description":"Total number of users from your account across the returned chats.","format":"int64","example":5}},"description":"Summary metrics for the target external account's channels and group chats."},"chats":{"type":"array","description":"Channels and group chats returned on this page for the target external account.","items":{"required":["external_users_from_other_accounts_count","external_users_from_this_account_count","is_owned_by_external_account","users_from_your_account_count"],"type":"object","properties":{"joined_date":{"type":"string","description":"Date when this channel or group chat first became part of the relationship with the target external account. Formatted as an ISO 8601 date (yyyy-MM-dd).","format":"date","example":"2024-08-09"},"users_from_your_account_count":{"type":"integer","description":"Number of users from your account in this channel or group chat.","format":"int64","example":5},"external_users_from_this_account_count":{"type":"integer","description":"Number of users from the target external account in this channel or group chat.","format":"int64","example":2},"account_name":{"type":"string","description":"Display name of the account that owns the channel or group chat.","example":"Account 1"},"is_owned_by_external_account":{"type":"boolean","description":"Whether the channel or group chat is owned by the target external account.","example":false},"external_users_from_other_accounts_count":{"type":"integer","description":"Number of external users from accounts other than the target external account in this channel or group chat.","format":"int64","example":1},"channel_id":{"type":"string","description":"Identifier of the channel or group chat returned by this endpoint.","example":"c3f9aa1ea7f444c19fe9f0b461430789"},"channel_name":{"type":"string","description":"Display name of the channel or group chat.","example":"Channel 1"}},"description":"Channel or group chat involving the target external account."}}},"description":"Successful response."}}}}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["IMExternalConnection:Read"],"x-granular-scopes":["zoom_chat:read:list_external_connections:admin"]}}},"/zoomchat/external_connections/accounts/{external_account_ref}/direct_chats":{"get":{"tags":["Chat External Connections"],"summary":"External connections: view direct chats for one external account.","description":"Use this endpoint to see which external users from a specific external account have direct-message relationships with users in your account.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zoom_chat:read:list_external_connections:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"zoom_chat_connected_external_users_in_direct_chats_for_external_account_list","parameters":[{"name":"external_account_ref","in":"path","description":"Opaque reference to the target external account, as returned by the external-connections list endpoints. Pass it back unchanged; this is NOT the external account's real ID.","required":true,"schema":{"type":"string","description":"Opaque reference to the target external account, as returned by the external-connections list endpoints. Pass it back unchanged; this is NOT the external account's real ID.","example":"DK2X7U-qGhmxhpEUbgAAFgAAAEXu4hj30uUC-qdcPC9M3zm1EXFu1WyoPdDYgbgAUb7We7CsUAHrMDAwMDAz"}},{"name":"sort_by","in":"query","description":"Field used to sort results. Defaults to `joined_date` when omitted.","required":false,"schema":{"type":"string","description":"Field used to sort results. Defaults to `joined_date` when omitted.","example":"external_user_name","default":"joined_date","enum":["joined_date","external_user_name","chats_owned_by_your_account_count","direct_messages_with_unique_users_in_your_account_count"]}},{"name":"sort_order","in":"query","description":"Sort direction. When omitted, date fields default to `desc` and non-date fields default to `asc`.","required":false,"schema":{"type":"string","description":"Sort direction. When omitted, date fields default to `desc` and non-date fields default to `asc`.","example":"desc","enum":["asc","desc"]}},{"name":"next_page_token","in":"query","description":"Opaque cursor returned by the previous response. Use it to fetch the next page.","required":false,"schema":{"type":"string","description":"Opaque cursor returned by the previous response. Use it to fetch the next page.","example":"RGlrZXkgSmluX3Rlc3Q,YjFkNDdkZGZlZmJjYzhlZDkyMmQ5MjVkOGJlNWZlNzU"}},{"name":"limit","in":"query","description":"Maximum number of items to return on this page. Must be between 1 and 100; defaults to 20.","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","description":"Maximum number of items to return on this page. Must be between 1 and 100; defaults to 20.","example":20,"default":20}}],"responses":{"200":{"description":"Successful response containing direct-message relationships for the target external account.","content":{"application/json":{"schema":{"required":["external_users","limit","sort_by","sort_order","summary"],"type":"object","properties":{"limit":{"maximum":100,"minimum":1,"type":"integer","description":"Maximum number of items requested for this page.","example":20,"default":20},"sort_by":{"type":"string","description":"Sort field applied to this page of results.","example":"external_user_name","default":"joined_date","enum":["joined_date","external_user_name","chats_owned_by_your_account_count","direct_messages_with_unique_users_in_your_account_count"]},"sort_order":{"type":"string","description":"Sort direction applied to this page of results.","example":"desc","enum":["asc","desc"]},"next_page_token":{"type":"string","description":"Cursor to fetch the next page. Omitted when there is no next page.","example":"2025-07-23,ovgxrfj8qfiyoh4nuhnvog"},"summary":{"type":"object","properties":{"direct_messages_with_unique_users_in_your_account_count":{"type":"integer","description":"Total number of direct-message relationships between the returned external users and unique users in your account.","format":"int64","example":3},"external_user_count":{"type":"integer","description":"Number of external users represented in the returned direct chats.","format":"int64","example":1},"users_from_your_account_count":{"type":"integer","description":"Total number of users from your account represented across the returned direct-message relationships.","format":"int64","example":1}},"description":"Summary metrics for the target external account's direct-message relationships."},"external_users":{"type":"array","description":"External users returned on this page who have direct-message relationships with the target external account.","items":{"required":["chats_owned_by_your_account_count","direct_messages_with_unique_users_in_your_account_count","is_external_user_deactivated"],"type":"object","properties":{"joined_date":{"type":"string","description":"Date when this external user first established a relationship with your account. Formatted as an ISO 8601 date (yyyy-MM-dd).","format":"date","example":"2025-07-23"},"is_external_user_deactivated":{"type":"boolean","description":"Whether the external user is deactivated.","example":false},"chats_owned_by_your_account_count":{"type":"integer","description":"Number of chats owned by your account that include this external user.","format":"int64","example":1},"external_user_email":{"type":"string","description":"Email address of the external user.","format":"email","example":"external-user-1@example.com"},"direct_messages_with_unique_users_in_your_account_count":{"type":"integer","description":"Number of direct-message relationships between this external user and unique users in your account.","format":"int64","example":2},"member_id":{"type":"string","description":"Member identifier of the external user from the target external account.","example":"2vy0eiD8DM8__vVkJsUb9qjbA_t0kMaXORP2-K0tidIYIAZWz_qNcaVoAGAf8okQ"},"external_user_name":{"type":"string","description":"Display name of the external user from the target external account.","example":"External User 1"}},"description":"External user who has a direct-message relationship with the target external account."}}},"description":"Successful response."}}}}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["IMExternalConnection:Read"],"x-granular-scopes":["zoom_chat:read:list_external_connections:admin"]}}},"/zoomchat/external_connections/external_users":{"get":{"tags":["Chat External Connections"],"summary":"External connections: view external users who collaborate with your account.","description":"Use this endpoint to see which external users are connected to your account, which external account they belong to, and how much collaboration exists through chats and direct messages.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zoom_chat:read:list_external_connections:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`\n\n**Not supported in Gov cluster** ","operationId":"zoom_chat_connected_external_users_list","parameters":[{"name":"keyword","in":"query","description":"Optional keyword used to narrow the results.","required":false,"schema":{"type":"string","description":"Optional keyword used to narrow the results.","example":"external"}},{"name":"sort_by","in":"query","description":"Field used to sort results. Defaults to `initial_connection_date` when omitted.","required":false,"schema":{"type":"string","description":"Field used to sort results. Defaults to `initial_connection_date` when omitted.","example":"external_account_name","default":"initial_connection_date","enum":["initial_connection_date","external_user_name","external_account_name","chats_owned_by_your_account_count","direct_messages_with_unique_users_in_your_account_count"]}},{"name":"sort_order","in":"query","description":"Sort direction. Defaults to `asc` when omitted.","required":false,"schema":{"type":"string","description":"Sort direction. Defaults to `asc` when omitted.","example":"desc","default":"asc","enum":["asc","desc"]}},{"name":"next_page_token","in":"query","description":"Opaque cursor returned by the previous response. Use it to fetch the next page.","required":false,"schema":{"type":"string","description":"Opaque cursor returned by the previous response. Use it to fetch the next page.","example":"2025-07-23,ovgxrfj8qfiyoh4nuhnvog"}},{"name":"limit","in":"query","description":"Maximum number of items to return on this page. Must be between 1 and 100. Defaults to 20.","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","description":"Maximum number of items to return on this page. Must be between 1 and 100. Defaults to 20.","example":20,"default":20}}],"responses":{"200":{"description":"Successful response containing external users connected to your account.","content":{"application/json":{"schema":{"required":["external_users","limit","sort_by","sort_order","summary"],"type":"object","properties":{"limit":{"maximum":100,"minimum":1,"type":"integer","description":"Maximum number of items requested for this page.","example":20,"default":20},"sort_by":{"type":"string","description":"Sort field applied to this page of results.","example":"initial_connection_date","default":"initial_connection_date","enum":["initial_connection_date","external_user_name","external_account_name","chats_owned_by_your_account_count","direct_messages_with_unique_users_in_your_account_count"]},"sort_order":{"type":"string","description":"Sort direction applied to this page of results.","example":"desc","enum":["asc","desc"]},"next_page_token":{"type":"string","description":"Cursor to fetch the next page. Omitted when there is no next page.","example":"2025-07-23,ovgxrfj8qfiyoh4nuhnvog"},"summary":{"type":"object","properties":{"direct_messages_with_unique_users_in_your_account_count":{"type":"integer","description":"Total direct-message relationships between the listed external users and unique users in your account.","format":"int64","example":4},"external_user_count":{"type":"integer","description":"Number of external users included in the current scope.","format":"int64","example":9}},"description":"Summary metrics for the external users in scope."},"external_users":{"type":"array","description":"External users returned on this page.","items":{"required":["chats_owned_by_your_account_count","direct_messages_with_unique_users_in_your_account_count","is_deactivated","is_same_organization"],"type":"object","properties":{"member_id":{"type":"string","description":"Member identifier of the external user.","example":"2vy0eiD8DM8__vVkJsUb9qjbA_t0kMaXORP2-K0tidIYIAZWz_qNcaVoAGAf8okQ"},"external_user_name":{"type":"string","description":"Display name of the external user.","example":"External User 1"},"external_user_email":{"type":"string","description":"Email address of the external user.","format":"email","example":"external-user-1@example.com"},"external_account_ref":{"type":"string","description":"Opaque reference to the external account this external user belongs to. Pass it back unchanged to the external-account detail endpoints (for example, `/accounts/{external_account_ref}/direct_chats`). This is **not** the external account's real ID.","example":"DK2X7U-qGhmxhpEUbgAAFgAAAEXu4hj30uUC-qdcPC9M3zm1EXFu1WyoPdDYgbgAUb7We7CsUAHrMDAwMDAz"},"external_account_name":{"type":"string","description":"Display name of the external account associated with this user.","example":"External Account 1"},"chats_owned_by_your_account_count":{"type":"integer","description":"Number of chats owned by your account that include this external user.","format":"int64","example":1},"direct_messages_with_unique_users_in_your_account_count":{"type":"integer","description":"Number of direct-message relationships between this external user and unique users in your account.","format":"int64","example":0},"is_same_organization":{"type":"boolean","description":"Whether the external account associated with this user belongs to the same organization as your account.","example":false},"is_deactivated":{"type":"boolean","description":"Whether the external user is deactivated.","example":false}},"description":"External user in the connection overview."}}},"description":"Successful response."}}}}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["IMExternalConnection:Read"],"x-granular-scopes":["zoom_chat:read:list_external_connections:admin"]}}},"/zoomchat/external_connections/external_users/{member_id}/channels":{"get":{"tags":["Chat External Connections"],"summary":"External connections: view channels for one external user.","description":"Use this endpoint to see which channels and group chats a specific external user participates in, who invited them, and whether the chat is owned by the external side. This endpoint currently merges classic channels and group chats into one list and does not expose `channel_type`.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zoom_chat:read:list_external_connections:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`\n\n**Not supported in Gov cluster** ","operationId":"zoom_chat_connected_channels_for_external_user_list","parameters":[{"name":"member_id","in":"path","description":"Member identifier of the target external user. It must resolve to an existing external user.","required":true,"schema":{"type":"string","description":"Member identifier of the target external user. It must resolve to an existing external user.","example":"2vy0eiD8DM8__vVkJsUb9qjbA_t0kMaXORP2-K0tidIYIAZWz_qNcaVoAGAf8okQ"}},{"name":"sort_by","in":"query","description":"Field used to sort results. Defaults to `joined_date` when omitted.","required":false,"schema":{"type":"string","description":"Field used to sort results. Defaults to `joined_date` when omitted.","example":"channel_name","default":"joined_date","enum":["joined_date","channel_name","invited_by_user_name"]}},{"name":"sort_order","in":"query","description":"Sort direction. When omitted, date fields default to `desc` and non-date fields default to `asc`.","required":false,"schema":{"type":"string","description":"Sort direction. When omitted, date fields default to `desc` and non-date fields default to `asc`.","example":"desc","enum":["asc","desc"]}},{"name":"next_page_token","in":"query","description":"Opaque cursor returned by the previous response. Use it to fetch the next page.","required":false,"schema":{"type":"string","description":"Opaque cursor returned by the previous response. Use it to fetch the next page.","example":"2025-07-23,c3f9aa1ea7f444c19fe9f0b461430789"}},{"name":"limit","in":"query","description":"Maximum number of items to return on this page. Must be between 1 and 100; defaults to 20.","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","description":"Maximum number of items to return on this page. Must be between 1 and 100; defaults to 20.","example":20,"default":20}}],"responses":{"200":{"description":"Successful response containing channels and group chats for the target external user.","content":{"application/json":{"schema":{"required":["chats","limit","sort_by","sort_order","summary"],"type":"object","properties":{"limit":{"maximum":100,"minimum":1,"type":"integer","description":"Maximum number of items requested for this page.","example":20,"default":20},"sort_by":{"type":"string","description":"Sort field applied to this page of results.","example":"channel_name","default":"joined_date","enum":["joined_date","channel_name","invited_by_user_name"]},"sort_order":{"type":"string","description":"Sort direction applied to this page of results.","example":"desc","enum":["asc","desc"]},"next_page_token":{"type":"string","description":"Cursor to fetch the next page. Omitted when there is no next page.","example":"2025-07-23,ovgxrfj8qfiyoh4nuhnvog"},"summary":{"type":"object","properties":{"chat_count":{"type":"integer","description":"Number of channels and group chats included in the results.","format":"int64","example":2}},"description":"Summary metrics for the target external user's channels and group chats."},"chats":{"type":"array","description":"Channels and group chats returned on this page for the target external user.","items":{"required":["inviter","is_owned_by_external_account"],"type":"object","properties":{"joined_date":{"type":"string","description":"Date when the target external user joined this channel or group chat. Formatted as an ISO 8601 date (yyyy-MM-dd).","format":"date","example":"2024-08-09"},"is_owned_by_external_account":{"type":"boolean","description":"Whether the channel or group chat is owned by the external account.","example":false},"inviter":{"required":["is_external"],"type":"object","properties":{"user_id":{"type":"string","description":"Internal user ID of the inviter. Present when the inviter is internal.","example":"ovgxrfj8qfiyoh4nuhnvog"},"member_id":{"type":"string","description":"External member ID of the inviter. Present when the inviter is external.","example":"2vy0eiD8DM8__vVkJsUb9qjbA_t0kMaXORP2-K0tidIYIAZWz_qNcaVoAGAf8okQ"},"user_name":{"type":"string","description":"Display name of the inviter.","example":"User 1"},"user_email":{"type":"string","description":"Email address of the inviter.","format":"email","example":"user-1@example.com"},"account_name":{"type":"string","description":"Account name of the inviter.","example":"Account 1"},"is_external":{"type":"boolean","description":"Whether the inviter belongs to an external account.","example":false}},"description":"The user who invited the target external user. Either `user_id` (internal inviter) or `member_id` (external inviter) is populated; `is_external` indicates which."},"channel_id":{"type":"string","description":"Identifier of the channel or group chat.","example":"c3f9aa1ea7f444c19fe9f0b461430789"},"channel_name":{"type":"string","description":"Display name of the channel or group chat.","example":"Channel 1"}},"description":"Channel or group chat involving the target external user."}}},"description":"Successful response."}}}}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["IMExternalConnection:Read"],"x-granular-scopes":["zoom_chat:read:list_external_connections:admin"]}}},"/zoomchat/external_connections/external_users/{member_id}/direct_chats":{"get":{"tags":["Chat External Connections"],"summary":"External connections: view direct chats for one external user.","description":"Use this endpoint to see which internal users have direct-message relationships with a specific external user and when those relationships began.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zoom_chat:read:list_external_connections:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`\n\n**Not supported in Gov cluster** ","operationId":"zoom_chat_internal_users_in_direct_chats_with_external_user_list","parameters":[{"name":"member_id","in":"path","description":"The member identifier of the target external user. It must resolve to an existing external user.","required":true,"schema":{"type":"string","description":"The member identifier of the target external user. It must resolve to an existing external user.","example":"2vy0eiD8DM8__vVkJsUb9qjbA_t0kMaXORP2-K0tidIYIAZWz_qNcaVoAGAf8okQ"}},{"name":"sort_by","in":"query","description":"The field used to sort results. Defaults to `joined_date` when omitted.","required":false,"schema":{"type":"string","description":"The field used to sort results. Defaults to `joined_date` when omitted.","example":"internal_user_name","default":"joined_date","enum":["joined_date","internal_user_name"]}},{"name":"sort_order","in":"query","description":"The sort direction. When omitted, date fields default to `desc` and non-date fields default to `asc`.","required":false,"schema":{"type":"string","description":"The sort direction. When omitted, date fields default to `desc` and non-date fields default to `asc`.","example":"desc","enum":["asc","desc"]}},{"name":"next_page_token","in":"query","description":"An opaque cursor returned by the previous response. Use it to fetch the next page.","required":false,"schema":{"type":"string","description":"An opaque cursor returned by the previous response. Use it to fetch the next page.","example":"RGlrZXkgSmluX3Rlc3Q,YjFkNDdkZGZlZmJjYzhlZDkyMmQ5MjVkOGJlNWZlNzU"}},{"name":"limit","in":"query","description":"The maximum number of items to return on this page. Must be between 1 and 100; defaults to 20.","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","description":"The maximum number of items to return on this page. Must be between 1 and 100; defaults to 20.","example":20,"default":20}}],"responses":{"200":{"description":"Successful response containing direct-message relationships for the target external user.","content":{"application/json":{"schema":{"required":["internal_users","limit","sort_by","sort_order","summary"],"type":"object","properties":{"limit":{"maximum":100,"minimum":1,"type":"integer","description":"The maximum number of items requested for this page.","example":20,"default":20},"sort_by":{"type":"string","description":"The sort field applied to this page of results.","example":"internal_user_name","default":"joined_date","enum":["joined_date","internal_user_name"]},"sort_order":{"type":"string","description":"The sort direction applied to this page of results.","example":"desc","enum":["asc","desc"]},"next_page_token":{"type":"string","description":"The cursor to fetch the next page. Omitted when there is no next page.","example":"2025-07-23,ovgxrfj8qfiyoh4nuhnvog"},"summary":{"type":"object","properties":{"internal_user_count":{"type":"integer","description":"The number of internal users represented in the returned direct chats.","format":"int64","example":1}},"description":"Summary metrics for the target external user's direct-message relationships."},"internal_users":{"type":"array","description":"The internal users returned on this page who have direct-message relationships with the target external user.","items":{"required":["is_external_user_deactivated"],"type":"object","properties":{"joined_date":{"type":"string","description":"The date when this direct-message relationship was first established. Formatted as an ISO 8601 date (`yyyy-MM-dd`).","format":"date","example":"2025-01-08"},"is_external_user_deactivated":{"type":"boolean","description":"Whether the target external user is deactivated.","example":false},"internal_user_email":{"type":"string","description":"The email address of the internal user.","format":"email","example":"internal-user-1@example.com"},"user_id":{"type":"string","description":"The identifier of the internal user who has the direct-message relationship with the target external user. The original internal user ID is returned without lowercasing.","example":"ovgxrfj8qfiyoh4nuhnvog"},"internal_user_name":{"type":"string","description":"The display name of the internal user who has the direct-message relationship with the target external user.","example":"Internal User 1"}},"description":"An internal user who has a direct-message relationship with the target external user."}}},"description":"Successful response."}}}}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["IMExternalConnection:Read"],"x-granular-scopes":["zoom_chat:read:list_external_connections:admin"]}}},"/zoomchat/external_connections/internal_users":{"get":{"tags":["Chat External Connections"],"summary":"External connections: view internal users who collaborate with external users.","description":"Use this endpoint to see which users in your account have external collaboration activity and how much collaboration each person has across chats and direct messages.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zoom_chat:read:list_external_connections:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`\n\n**Not supported in Gov cluster** ","operationId":"zoom_chat_internal_users_with_external_activity_list","parameters":[{"name":"keyword","in":"query","description":"Optional keyword used to narrow the results.","required":false,"schema":{"type":"string","description":"Optional keyword used to narrow the results.","example":"external"}},{"name":"sort_by","in":"query","description":"The field used to sort results. Defaults to `initial_connection_date` when omitted.","required":false,"schema":{"type":"string","description":"The field used to sort results. Defaults to `initial_connection_date` when omitted.","example":"chats_owned_by_external_accounts_count","default":"initial_connection_date","enum":["initial_connection_date","internal_user_name","chats_owned_by_external_accounts_count","direct_messages_with_unique_external_users_count"]}},{"name":"sort_order","in":"query","description":"The sort direction. When omitted, date fields default to `desc` and non-date fields default to `asc`.","required":false,"schema":{"type":"string","description":"The sort direction. When omitted, date fields default to `desc` and non-date fields default to `asc`.","example":"desc","enum":["asc","desc"]}},{"name":"next_page_token","in":"query","description":"The opaque cursor returned by the previous response. Use it to fetch the next page.","required":false,"schema":{"type":"string","description":"The opaque cursor returned by the previous response. Use it to fetch the next page.","example":"2025-07-23,ovgxrfj8qfiyoh4nuhnvog"}},{"name":"limit","in":"query","description":"The maximum number of items to return on this page. Must be between 1 and 100. Defaults to 20.","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","description":"The maximum number of items to return on this page. Must be between 1 and 100. Defaults to 20.","example":20,"default":20}}],"responses":{"200":{"description":"Successful response containing internal users with external collaboration activity.","content":{"application/json":{"schema":{"required":["internal_users","limit","sort_by","sort_order","summary"],"type":"object","properties":{"limit":{"maximum":100,"minimum":1,"type":"integer","description":"The maximum number of items requested for this page.","example":20,"default":20},"sort_by":{"type":"string","description":"The sort field applied to this page of results.","example":"initial_connection_date","default":"initial_connection_date","enum":["initial_connection_date","internal_user_name","chats_owned_by_external_accounts_count","direct_messages_with_unique_external_users_count"]},"sort_order":{"type":"string","description":"The sort direction applied to this page of results.","example":"desc","enum":["asc","desc"]},"next_page_token":{"type":"string","description":"The cursor to fetch the next page. Omitted when there is no next page.","example":"2025-07-23,ovgxrfj8qfiyoh4nuhnvog"},"summary":{"type":"object","properties":{"direct_messages_with_unique_external_users_count":{"type":"integer","description":"The total number of direct message relationships between the listed internal users and unique external users.","format":"int64","example":3},"internal_user_count":{"type":"integer","description":"The number of internal users included in the current scope.","format":"int64","example":2}},"description":"Summary metrics for the internal users in scope."},"internal_users":{"type":"array","description":"The list of internal users returned on this page.","items":{"required":["chats_owned_by_external_accounts_count","direct_messages_with_unique_external_users_count","is_deactivated"],"type":"object","properties":{"user_id":{"type":"string","description":"The identifier of the internal user in the caller's account. The original internal user ID is returned without lowercasing.","example":"ovgxrfj8qfiyoh4nuhnvog"},"internal_user_name":{"type":"string","description":"The display name of the internal user.","example":"Internal User 1"},"internal_user_email":{"type":"string","description":"The email address of the internal user.","format":"email","example":"internal-user-1@example.com"},"chats_owned_by_external_accounts_count":{"type":"integer","description":"The number of chats owned by external accounts that include this internal user.","format":"int64","example":15},"direct_messages_with_unique_external_users_count":{"type":"integer","description":"The number of direct message relationships between this internal user and unique external users.","format":"int64","example":3},"is_deactivated":{"type":"boolean","description":"Whether the internal user is deactivated.","example":false}},"description":"An internal user in the collaboration overview."}}},"description":"Successful response."}}}}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["IMExternalConnection:Read"],"x-granular-scopes":["zoom_chat:read:list_external_connections:admin"]}}},"/zoomchat/external_connections/internal_users/{user_id}/channels":{"get":{"tags":["Chat External Connections"],"summary":"External connections: view channels for one internal user.","description":"Use this endpoint to see which channels and group chats a specific user in your account participates in for external collaboration, who invited them, and whether the chat is owned by the external side. This endpoint currently merges classic channels and group chats into one list and does not expose `channel_type`.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zoom_chat:read:list_external_connections:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"zoom_chat_connected_channels_for_internal_user_list","parameters":[{"name":"user_id","in":"path","description":"Identifier of the target internal user in the caller's account.","required":true,"schema":{"type":"string","description":"Identifier of the target internal user in the caller's account.","example":"ovgxrfj8qfiyoh4nuhnvog"}},{"name":"sort_by","in":"query","description":"Field used to sort results. Defaults to `joined_date` when omitted.","required":false,"schema":{"type":"string","description":"Field used to sort results. Defaults to `joined_date` when omitted.","example":"channel_name","default":"joined_date","enum":["joined_date","channel_name","account_name","invited_by_user_name"]}},{"name":"sort_order","in":"query","description":"Sort direction. When omitted, date fields default to `desc` and non-date fields default to `asc`.","required":false,"schema":{"type":"string","description":"Sort direction. When omitted, date fields default to `desc` and non-date fields default to `asc`.","example":"desc","enum":["asc","desc"]}},{"name":"next_page_token","in":"query","description":"Opaque cursor returned by the previous response. Use it to fetch the next page.","required":false,"schema":{"type":"string","description":"Opaque cursor returned by the previous response. Use it to fetch the next page.","example":"2025-07-23,c3f9aa1ea7f444c19fe9f0b461430789"}},{"name":"limit","in":"query","description":"Maximum number of items to return on this page. Must be between 1 and 100; defaults to 20.","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","description":"Maximum number of items to return on this page. Must be between 1 and 100; defaults to 20.","example":20,"default":20}}],"responses":{"200":{"description":"Successful response containing channels and group chats for the target internal user.","content":{"application/json":{"schema":{"required":["chats","limit","sort_by","sort_order","summary"],"type":"object","properties":{"limit":{"maximum":100,"minimum":1,"type":"integer","description":"Maximum number of items requested for this page.","example":20,"default":20},"sort_by":{"type":"string","description":"Sort field applied to this page of results.","example":"channel_name","default":"joined_date","enum":["joined_date","channel_name","account_name","invited_by_user_name"]},"sort_order":{"type":"string","description":"Sort direction applied to this page of results.","example":"desc","enum":["asc","desc"]},"next_page_token":{"type":"string","description":"Cursor to fetch the next page. Omitted when there is no next page.","example":"2025-07-23,ovgxrfj8qfiyoh4nuhnvog"},"summary":{"type":"object","properties":{"chat_count":{"type":"integer","description":"Number of channels and group chats included in the results.","format":"int64","example":13}},"description":"Summary metrics for the target internal user's channels and group chats."},"chats":{"type":"array","description":"Channels and group chats returned on this page for the target internal user.","items":{"required":["inviter","is_owned_by_external_account"],"type":"object","properties":{"joined_date":{"type":"string","description":"Date when the target internal user joined this channel or group chat. Formatted as an ISO 8601 date (yyyy-MM-dd).","format":"date","example":"2025-06-26"},"is_owned_by_external_account":{"type":"boolean","description":"Whether the channel or group chat is owned by an external account.","example":true},"inviter":{"required":["is_external"],"type":"object","properties":{"user_id":{"type":"string","description":"Internal user ID of the inviter. Present when the inviter is internal.","example":"ovgxrfj8qfiyoh4nuhnvog"},"member_id":{"type":"string","description":"External member ID of the inviter. Present when the inviter is external.","example":"2vy0eiD8DM8__vVkJsUb9qjbA_t0kMaXORP2-K0tidIYIAZWz_qNcaVoAGAf8okQ"},"user_name":{"type":"string","description":"Display name of the inviter.","example":"User 1"},"user_email":{"type":"string","description":"Email address of the inviter.","format":"email","example":"user-1@example.com"},"account_name":{"type":"string","description":"Account name of the inviter.","example":"Account 1"},"is_external":{"type":"boolean","description":"Whether the inviter belongs to an external account.","example":true}},"description":"The user who invited the target internal user. Either `user_id` (internal inviter) or `member_id` (external inviter) is populated; `is_external` indicates which."},"account_name":{"type":"string","description":"Display name of the account that owns the channel or group chat.","example":"Account 1"},"channel_id":{"type":"string","description":"Identifier of the channel or group chat returned by this endpoint.","example":"c3f9aa1ea7f444c19fe9f0b461430789"},"channel_name":{"type":"string","description":"Display name of the channel or group chat.","example":"Channel 1"}},"description":"Channel or group chat involving the target internal user."}}},"description":"Successful response."}}}}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["IMExternalConnection:Read"],"x-granular-scopes":["zoom_chat:read:list_external_connections:admin"]}}},"/zoomchat/external_connections/internal_users/{user_id}/direct_chats":{"get":{"tags":["Chat External Connections"],"summary":"External connections: view direct chats for one internal user.","description":"Use this endpoint to see which external users have direct-message relationships with a specific user in your account and when those relationships began.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zoom_chat:read:list_external_connections:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`\n\n**Not supported in Gov cluster** ","operationId":"zoom_chat_connected_external_users_in_direct_chats_with_internal_user_list","parameters":[{"name":"user_id","in":"path","description":"Identifier of the target internal user in the caller's account.","required":true,"schema":{"type":"string","description":"Identifier of the target internal user in the caller's account.","example":"ovgxrfj8qfiyoh4nuhnvog"}},{"name":"sort_by","in":"query","description":"Field used to sort results. Defaults to `joined_date` when omitted.","required":false,"schema":{"type":"string","description":"Field used to sort results. Defaults to `joined_date` when omitted.","example":"external_user_name","default":"joined_date","enum":["joined_date","external_user_name","external_account_name"]}},{"name":"sort_order","in":"query","description":"Sort direction. When omitted, date fields default to `desc` and non-date fields default to `asc`.","required":false,"schema":{"type":"string","description":"Sort direction. When omitted, date fields default to `desc` and non-date fields default to `asc`.","example":"desc","enum":["asc","desc"]}},{"name":"next_page_token","in":"query","description":"Opaque cursor returned by the previous response. Use it to fetch the next page.","required":false,"schema":{"type":"string","description":"Opaque cursor returned by the previous response. Use it to fetch the next page.","example":"em9vbSAx,NGQ3NTcxYTI2OTk1ZmFlYTY2MzI4NTA2ZTJmOTE3ZmI"}},{"name":"limit","in":"query","description":"Maximum number of items to return on this page. Must be between 1 and 100; defaults to 20.","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","description":"Maximum number of items to return on this page. Must be between 1 and 100; defaults to 20.","example":20,"default":20}}],"responses":{"200":{"description":"Successful response containing direct-message relationships for the target internal user.","content":{"application/json":{"schema":{"required":["external_users","limit","sort_by","sort_order","summary"],"type":"object","properties":{"limit":{"maximum":100,"minimum":1,"type":"integer","description":"Maximum number of items requested for this page.","example":20,"default":20},"sort_by":{"type":"string","description":"Sort field applied to this page of results.","example":"external_user_name","default":"joined_date","enum":["joined_date","external_user_name","external_account_name"]},"sort_order":{"type":"string","description":"Sort direction applied to this page of results.","example":"desc","enum":["asc","desc"]},"next_page_token":{"type":"string","description":"Cursor to fetch the next page. Omitted when there is no next page.","example":"em9vbSBhY2NvdW50,NjkwM2FhMTEzOTI3YTFjNWNiNzM1YTU4NThlMGQwMjc"},"summary":{"type":"object","properties":{"external_user_count":{"type":"integer","description":"Number of external users represented in the returned direct chats.","format":"int64","example":3}},"description":"Summary metrics for the target internal user's direct-message relationships."},"external_users":{"type":"array","description":"External users returned on this page who have direct-message relationships with the target internal user.","items":{"required":["is_external_user_deactivated"],"type":"object","properties":{"joined_date":{"type":"string","description":"Date when this direct-message relationship was first established. Formatted as an ISO 8601 date (yyyy-MM-dd).","format":"date","example":"2026-06-03"},"is_external_user_deactivated":{"type":"boolean","description":"Whether the external user is deactivated.","example":false},"external_user_email":{"type":"string","description":"Email address of the external user.","format":"email","example":"external-user-1@example.com"},"external_account_name":{"type":"string","description":"Display name of the external account associated with the external user.","example":"External Account 1"},"member_id":{"type":"string","description":"Member identifier of the external user who has the direct-message relationship with the target internal user.","example":"2vy0eiD8DM8__vVkJsUb9qjbA_t0kMaXORP2-K0tidIYIAZWz_qNcaVoAGAf8okQ"},"external_user_name":{"type":"string","description":"Display name of the external user who has the direct-message relationship with the target internal user.","example":"External User 1"}},"description":"External user who has a direct-message relationship with the target internal user."}}},"description":"Successful response."}}}}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["IMExternalConnection:Read"],"x-granular-scopes":["zoom_chat:read:list_external_connections:admin"]}}},"/chat/files/{fileId}":{"get":{"tags":["Chat Files"],"summary":"Get file info","description":"Returns information about the chat file.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:read`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:file`,`team_chat:read:file:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getFileInfo","parameters":[{"name":"fileId","in":"path","description":"The chat file's unique ID.","required":true,"schema":{"type":"string","example":"LDG2jzoOS2aV4wkyLMaryg"}}],"responses":{"200":{"description":"Returns the chat file's response.","content":{"application/json":{"schema":{"required":["OS_file_type","created_time","digest","download_url","file_id","file_name","length","modified_time"],"type":"object","properties":{"file_id":{"type":"string","description":"The chat file's unique ID.","example":"LDG2jzoOS2aV4wkyLMaryg"},"file_name":{"type":"string","description":"The chat file's name.","example":"fdaiul_IM.txt"},"OS_file_type":{"type":"string","description":"The file's extension type.","example":"txt"},"length":{"type":"number","description":"The chat file's length by bytes.","example":36},"digest":{"type":"string","description":"The chat file's digest that uses SHA-256.","example":"0a6066b576b65730c88dfdf17a24c22c962975420b84a760d181ccc524a2cb80"},"created_time":{"type":"number","description":"The created time of the file.","example":1705472166417},"modified_time":{"type":"number","description":"The modified time of the file.","example":1705472166417},"download_url":{"type":"string","description":"The file downloadable URL.","example":"https://zoomdev.us/file/download/wR3p30efRtauNrQbyGHkMg?archive=revision&filename=748F23F1-3728-49C9-8742-CE7AD77BBFAA.opus&jwt=eyJhbGciOiJFUzI1NiIsImsiOiJLSzQxYXo3LyJ9.eyJhdWQiOiJ6ZnMiLCJoZGlnIjpmYWxzZSwiaXNzIjoiZmlsZSIsImlpYyI6ImRldiIsImV4cCI6MTczMzQ2MDY4OSwib3JpIjoid2ViIiwiaWF0IjoxNzMzMzc0Mjg5LCJkaWciOiIzOGVlMTU0ODE2OTk5NDNiNmRjYmRjMzllNGE2NmQxMDI1MzJkMDY1YjE3NmYwNmQzZmYxMTJlMjhiN2JkZGEzIn0.KiCS4-dCg_5BTUjBgpPHBgPhnKCfozDaDQWGz5rOw2bd9ndStYCgN6qXW6vPZYMLeIzR1VNuEY0o0AV8PG8A7Q"},"public_url":{"type":"string","description":"(DEPRECATED) The public URL of the file, if the file's public URL has been enabled.","example":"https://file.zoomdev.us/DSIdNwh5TsiR_ChEC_7nlw/MS4zLu6KX-djd-McseQyDf_L6ZZIFR4vuvr8M34OcKfBq8bx/Book1%200630.xlsx?business=im_public_url"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `300` <br>\n Access token is required. <br>\n**Error Code:** `100` <br>\n Invalid Access token. <br>\n**Error Code:** `401` <br>\n Service access not permitted. <br>\n**Error Code:** `106` <br>\n Access token is expired <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `403` <br>\n Operation not permitted. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `404` <br>\n Resource not found. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatMessage:Read"],"x-macro-scopes":["chat:read"],"x-granular-scopes":["team_chat:read:file","team_chat:read:file:admin"]}},"delete":{"tags":["Chat Files"],"summary":"Delete a chat file","description":"Deletes a chat file.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:write`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:file`,`team_chat:delete:file:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteChatFile","parameters":[{"name":"fileId","in":"path","description":"The chat file's unique ID.","required":true,"schema":{"type":"string","example":"LDG2jzoOS2aV4wkyLMaryg"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`: file deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `300` <br>\n Access token is required. <br>\n**Error Code:** `100` <br>\n Invalid Access token. <br>\n**Error Code:** `401` <br>\n Service access not permitted. <br>\n**Error Code:** `106` <br>\n Access token is expired <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `403` <br>\n Operation not permitted. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `404` <br>\n Resource not found. <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_authorization":[]}],"x-extensions":{"x-permissions":["NewIMChatHistory:Edit"],"x-macro-scopes":["chat:write"],"x-granular-scopes":["team_chat:delete:file","team_chat:delete:file:admin"]}}},"/chat/users/{userId}/files":{"post":{"tags":["Chat Files"],"summary":"Upload a chat file","description":"Uploads a file to chat. \n\n **Note:** \n* The base URL for this API's is `https://file.zoom.us/v2/`. \n* The rate limit of this API is 20 requests per second per API or 2000 requests per second per IP address. \n* The caller must support HTTP 30x redirects. \n* All files are sent as common files except `png`,`jpg`,`jpeg` and `gif` \n* Zoom Cloud Storage will store the files sent through this API. If you do not use Zoom Cloud Storage, Zoom Cloud will temporarily store these files for 7 days. \n* The caller must retain the authorization header when redirected to a different hostname. \n* After upload a file, the default behavior will show the file in personal chat message. \n\n For an **account-level** [OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app), this API can only be used on behalf of a user who is assigned with a [role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management#:~:text=Each%20user%20in%20a%20Zoom,owner%2C%20administrator%2C%20or%20member.&amp;text=Role%2Dbased%20access%20control%20enables,needs%20to%20view%20or%20edit.) that has the **Edit** permission for **Chat Messages**. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:write`,`chat_message:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:files`,`team_chat:write:files:admin`","operationId":"uploadAChatFile","parameters":[{"name":"userId","in":"path","description":"The user's ID.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},{"name":"postToPersonalChat","in":"query","description":"If this field is set to true, the file will be uploaded and posted to personal chat. Or if it is set to false, the file will be uploaded but not posted to personal chat.","required":false,"schema":{"type":"string","example":"true","default":"true"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","description":"The upload file, in binary format. You can only send a maximum of 1GB files for images and all other file types.","format":"binary"}}}}}},"responses":{"201":{"description":"**Status Code:** `201`   \n \nFile successfully uploaded.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The file ID.","example":"9c5408f87660a840167674acd7d"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n**Error Code:** `300` <br>\n Maximum file size exceeded: ${maxSize} <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_message:write","chat_message:write:admin"],"x-granular-scopes":["team_chat:write:files","team_chat:write:files:admin"]}}},"/chat/users/{userId}/messages/files":{"post":{"tags":["Chat Files"],"summary":"Send a chat file","description":"Sends a file on Zoom to either an individual user in your contact list or a [channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-) of which you are a member. \n\n **Note:** \n* The base URL for this API is `https://file.zoom.us/v2/`. \n* The rate limit of this API is 20 requests per second per API or 2000 requests per second per IP address. \n* The caller must support HTTP 30x redirects. \n* All files are sent as common files except `png`,`jpg`,`jpeg` and `gif` \n* Zoom Cloud Storage will store the files sent through this API. If you do not use Zoom Cloud Storage, Zoom Cloud will temporarily store these files for 7 days. \n* The caller must retain the authorization header when redirected to a different hostname. \n\nFor user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter. \n\n For an [account-level OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app), this API can only be used on behalf of a user who is assigned with a [role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management) that has the **Edit** permission for **Chat Messages**. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:write`,`chat_message:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:message_files`,`team_chat:write:message_files:admin`","operationId":"sendChatFile","parameters":[{"name":"userId","in":"path","description":"The user's ID.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"required":["files"],"type":"object","properties":{"files":{"maxItems":1,"type":"array","description":"A list of the chat files to send, in binary format. \n* This field only supports one file. \n* You can only send a maximum of 16 megabytes for images and 20 megabytes for all other file types.","items":{"type":"string","format":"binary"}},"reply_main_message_id":{"type":"string","description":"The reply message's ID. This field only returns if the message is a reply message.","example":"8cfaf567-bf5a-4acc-b4f2-88b3d371aca5"},"to_channel":{"type":"string","description":"The channel ID of the channel to which to send the chat file.","example":"825c9e31f1064c73b394c5e4557d3447"},"to_contact":{"type":"string","description":"The user ID or member ID of the contact to whom you want to send the chat file.","example":"za7AvP7o9AxypYwpaKYsOJ2K3VwXBZn4JtxgPGk8Lf7_1w"}}}}}},"responses":{"201":{"description":"**Status Code:** `201`   \n \nFile sent.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The message ID.","example":"ex1233578gdfjkh"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request\n\n**Error Code:** `5301` <br>\nMessage sending failed.\n\n**Error Code:** `5402` <br>\nThis only supports replies to a main message.\n\n**Error Code:** `124` <br>\nInvalid access token.\n\n**Error Code:** `300` <br>\nMaximum file size exceeded: ${maxSize}\n\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found\n\n**Error Code:** `1001` <br>\nUser does not exist: $to_contact.<br>\n\n**Error Code:** `4130` <br>\nChannel does not exist: $to_channel.\n\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_authorization":[]}],"x-extensions":{"x-macro-scopes":["chat_message:write","chat_message:write:admin"],"x-granular-scopes":["team_chat:write:message_files","team_chat:write:message_files:admin"]}}},"/chat/channel/message/events":{"patch":{"tags":["Chat Messages"],"summary":"Perform operations on the message of channel","description":"Performs different operations, such as pin or unpin, on the message of channel.  \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:write`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:pin_message`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"PerformMessageOfChannel","requestBody":{"content":{"application/json":{"schema":{"required":["channel_id","message_id","method"],"type":"object","properties":{"method":{"type":"string","description":"The method to perform: \n* `pin` &mdash; Pin a message of channel. \n* `unpin` &mdash; Unpin a message of channel.","example":"pin","enum":["pin","unpin"]},"message_id":{"type":"string","description":"The unique identifier of the message.","example":"8cfaf567-bf5a-4acc-b4f2-88b3d371aca5"},"channel_id":{"type":"string","description":"The channel's unique identifier.","example":"825c9e31f1064c73b394c5e4557d3447"}}}}}},"responses":{"204":{"description":"**Status Code:** `204`   Perform operation on the message of channel successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Perform operations on the message of channel failed. <br>\n**Error Code:** `5401` <br>\n Message does not exist: `$message_id`. <br>\n**Error Code:** `300` <br>\n Invalid parameter: params. <br>\n**Error Code:** `4130` <br>\n Channel does not exist: `$channel_id`. <br>\n**Error Code:** `3216` <br>\n This message has already been pinned: `$message_id`. <br>\n**Error Code:** `3217` <br>\n This message has not been pinned: `$message_id`. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n No permission to perform operations on the message of channel. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat:write"],"x-granular-scopes":["team_chat:update:pin_message"]}}},"/chat/channels/{channelId}/pinned":{"get":{"tags":["Chat Messages"],"summary":"List pinned history messages of channel","description":"Returns a list of pinned history messages of channel.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:read`,`chat:read:admin`,`chat:write`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_pinned_messages`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listChannelPinnedMessages","parameters":[{"name":"channelId","in":"path","description":"The channel's unique identifier.","required":true,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}},{"name":"page_size","in":"query","description":"The number of records returned with a single API call. The default value is 10.","required":false,"schema":{"maximum":50,"type":"integer","example":10,"default":10}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"1707034615202"}},{"name":"include_history","in":"query","description":"If the value is true, the query result includes pinned history messages.","required":false,"schema":{"type":"boolean","example":false,"default":false}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   List of pinned history messages returned.","content":{"application/json":{"schema":{"required":["channel_id","messages"],"type":"object","properties":{"messages":{"type":"array","description":"The pinned history messages of the channel.","items":{"required":["currently_pinned","message","message_id","message_timestamp","pinned_by_external_user","pinned_time","pinner_member_id","pinner_user_id"],"type":"object","properties":{"message_id":{"type":"string","description":"The message's unique identifier.","example":"61ACBF3A-8B70-445D-85B2-8EF489F225D"},"message_timestamp":{"type":"integer","description":"The timestamp of the message.","format":"int64","example":1661997628249},"pinner_user_id":{"type":"string","description":"The user ID of the user who pinned the message. If the pinnner is an external user, the result is empty.","example":"nldhyzxwqwkwgwdlgry2rq"},"pinner_member_id":{"type":"string","description":"The member ID of the user who pinned this message.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"},"pinned_time":{"type":"string","description":"The time of when the message was pinned.","example":"2020-02-10T21:39:50Z"},"currently_pinned":{"type":"boolean","description":"A true value denotes the current pinned message.","example":false},"message":{"type":"string","description":"The message content.","example":"hello, world!"},"pinned_by_external_user":{"type":"boolean","description":"If the value is true, an external user pinned the message.","example":false},"encryption_info":{"type":"object","properties":{"key_id":{"type":"string","description":"The key ID for retrieving the data key.","example":"ZXhhbXBsZS1rZXktaWQ="},"encrypt_context":{"type":"string","description":"The Base64-encoded encryption context for retrieving the data key.","example":"MTAwMSMjI0NTRTpUZWFtQ2hhdDpFeHRlcm5hbCMjIzcyYTdjOWI1YjFmNDQ1YjM4YWE5NWY0YzU2ODk3NTFjQGNvbmZlcmVuY2UueG1wcGRldi56b29tLnVz"},"encrypt_content":{"type":"string","description":"For encrypted messages, the encrypted payload corresponding to the message field. After decryption, it returns the plaintext message content.","example":"DPOGczEf1FKiIHmcuwAAAwAAABOU5fzpb5Hn8s6t9vzu3yC+dy4="},"encryption_algorithm":{"type":"string","description":"The encryption algorithm used for the message content.","example":"AES-GCM-256"}},"description":"Encryption metadata for a CMK Hybrid encrypted chat message."}}}},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token returns when the available results exceed the current page size. The expiration period for this token is 15 minutes.","example":"1707034615202"},"channel_id":{"type":"string","description":"The channel's unique identifier.","example":"825c9e31f1064c73b394c5e4557d3447"},"page_size":{"type":"integer","description":"The number of records returned per page in a single API call.","example":10}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Must provide the parameter: channel_id. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n No permission to query pinned history messages of this channel. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4130` <br>\n Channel does not exist: '$channel_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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat:read","chat:read:admin","chat:write"],"x-granular-scopes":["team_chat:read:list_pinned_messages"]}}},"/chat/forwarded_message/{forwardId}":{"get":{"tags":["Chat Messages"],"summary":"Get a forwarded message","description":"Returns a chat message previously sent to a contact or a channel. For user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter.\n\nYou must provide one of the following query parameters:  \n \n* `to_contact` &mdash; The email address of the Zoom contact to whom you sent the message.\n* `to_channel` &mdash; The ID of the Zoom channel where you sent the message.\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:read`,`chat_message:read:admin`,`chat_message:write`,`chat_message:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:user_message`,`team_chat:read:user_message:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getForwardedMessage","parameters":[{"name":"forwardId","in":"path","description":"The unique identifier of the forwarded message.","required":true,"schema":{"type":"string","example":"481a961f9c2b4c9f9df93d7d64e8b870"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200` <br>\n Message successfully returned.\n\n","content":{"application/json":{"schema":{"type":"object","properties":{"bot_message":{"type":"object","description":"The chatbot's message in JSON format. For more information, see [Send, edit, and delete messages](https://developers.zoom.us/docs/team-chat-apps/send-edit-and-delete-messages/) in the Team Chat apps documentation."},"date_time":{"type":"string","description":"The date and time when the message was sent.","format":"date-time","example":"2020-02-10T21:39:50Z"},"download_url":{"type":"string","description":"The file's download URL.","example":"https://example.com/file/download/xt0aNj_DRtqRn041pIfpSQ?filename=Screenshot%202022-03-01%20at%20144337.png&jwt=eyJhbGciOiJIUzI1NiJ9.eyJkaWciOiJkOTllM2QwMjRjNmFiODNiMTNlNjVjYzM3NjJlYjc4ODMwMDE4YTNjNzNiNjc3ZWE3MzNlZDEzMTgxMTE3MzNkIiwiaXNzIjoiY3Jvc3NmaWxlIiwiYXVkIjoiZmlsZSIsImV4cCI6MTY0NjIwMzQ4MX0.7SF4L-xY-mqXgRD-NCzJOIu5nkuy33eKksif2m75Y38"},"file_id":{"type":"string","description":"The file's ID.","example":"XDCDSJNVCDS"},"file_name":{"type":"string","description":"The file's name.","example":"Screenshot 2022-03-01 at 144337.png"},"file_size":{"type":"integer","description":"The file size in bytes.","example":89},"rich_text":{"type":"array","description":"The [rich text formatting](https://support.zoom.us/hc/en-us/articles/115004789183-Replying-to-and-managing-chat-messages) information.","items":{"type":"object","properties":{"start_position":{"type":"integer","description":"The start position of the rich text in the message string.","example":0},"end_position":{"type":"integer","description":"The end position of the rich text in the message string.","example":5},"format_type":{"type":"string","description":"The type of rich text format.","example":"Paragraph","enum":["Bold","Italic","Strikethrough","BulletedList","NumberedList","Underline","FontSize","FontColor","BackgroundColor","LeftIndent","Paragraph","Quote","AddLink"]},"format_attr":{"type":"string","description":"The attribute values of a specific format type. FontSize: 's' for small, 'm' for medium, or 'l' for large font sizes. FontColor and BackgroundColor: only supports RGB values (e.g., 'FFC0CB'). LeftIndent: a positive pixel length. Paragraph: 'h1' for heading 1, 'h2' for heading 2, or 'h3' for heading 3. AddLink: must be a valid URL with an 'http' or 'https' prefix (e.g., 'https://example.com').","example":"h1"}}}},"files":{"type":"array","description":"The information about the chat file.","items":{"type":"object","properties":{"download_url":{"type":"string","description":"The chat file's download URL.","example":"https://zoom.us/file/download/xBvggqyjQUal6TecwMlYwQ?filename=example.jpg&jwt=eyJhbGciOiJIUzI1NiJ9.eyJkaWciOiI3Yzg5YzBhYjIzYmZmMjdjNzE3NTQ4YzdjMTc0Njk3MWYzYjNmNjFjMzU5OTliNjE1ZjdjMWJmMzc5YTJiZThlIiwiYXVkIjoiZmlsZSIsImlzcyI6ImNyb3NzZmlsZSIsImV4cCI6MTY0ODI2NDY5N30.2fQxw3F1cEhvFJmnE2zPOdkHnPeZUktv_P0M--e-Tg8"},"file_id":{"type":"string","description":"The chat file's unique ID.","example":"xBvggqyjQUal6TecwMlYwQ"},"file_name":{"type":"string","description":"The chat file's name and extension.","example":"example.jpg"},"file_size":{"type":"integer","description":"The chat file's size in bytes.","example":3966}}}},"id":{"type":"string","description":"The unique identifier of the forwarded message.","example":"6dfgdfgdg444447b0egga"},"message":{"type":"string","description":"The message content.","example":"Hello."},"message_type":{"type":"string","description":"The common type of messages that indicates which type of file to include: plain_text_message, jpg_image_file, audio_file, video_file, png_image_file, gif_file, giphy_file, code_snippet, file_and_text, or others.","example":"code_snippet","enum":["plain_text_message","jpg_image_file","audio_file","video_file","png_image_file","gif_file","giphy_file","code_snippet","file_and_text","others"]},"reactions":{"type":"array","description":"A list of emoji reactions.","items":{"type":"object","properties":{"emoji":{"type":"string","description":"The emoji's Unicode value in UTF-32 format.","example":"U+1F600"},"total_count":{"type":"integer","description":"The emoji's total usage count.","example":1},"user_ids":{"type":"array","description":"A list of user IDs from the same account that replied to this message with this emoji. User IDs of those who are not from the same account will be omitted from the list.","items":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},"member_ids":{"type":"array","description":"A list of user member IDs that replied to this message with this emoji.","items":{"type":"string","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}}}},"reply_main_message_id":{"type":"string","description":"The unique ID of the main message in the thread. The API only returns this value if the message is a reply message.","example":"DE159sdhmf---dasfC7EBFE73"},"reply_main_message_timestamp":{"type":"integer","description":"The timestamp when the main message in the thread was sent. This field only returns if the message is a reply message.","format":"int64","example":1581370790388},"sender":{"type":"string","description":"The message sender's email address. If the sender does not belong to the same account as the current user or is not the current user's contact, this field is empty.","example":"jchill@example.com"},"send_member_id":{"type":"string","description":"The message sender's member ID.","example":"v4iyWT1LTfy8QvPG4GTvdgLTfy8QvG4GTWT1LTfy8QvPG4vPG4"},"sender_display_name":{"type":"string","description":"The message sender's display name.","example":"Tom"},"timestamp":{"type":"integer","description":"The message's timestamp.","format":"int64","example":1581370790388},"at_items":{"type":"array","items":{"type":"object","properties":{"at_contact":{"type":"string","description":"The contact's user ID. This field will be empty if the user ID does not belong to the same account as the current user.","example":"MO6johaFRIOlYivs3NnyvA"},"at_contact_member_id":{"type":"string","description":"The member ID of the contact. This field is returned if the value of the at_type field is set to 1.","example":"R4aF9Oj0fVM2hhezJTEmSKj0fVM2JTEaF9Oj0fVMj0fF9OF9O"},"at_type":{"type":"integer","description":"The type of mention. 1: Contact. 2: Channel.","example":2,"enum":[1,2]},"end_position":{"type":"integer","description":"The end position of the mention in the message string.","example":8},"start_position":{"type":"integer","description":"The start position of the mention ('@') in the message string.","example":0}}}},"interactive_cards":{"type":"array","description":"The information about the chat interactive card.","items":{"type":"object","properties":{"card_id":{"type":"string","description":"The chat interactive card's unique ID.","example":"xBvggqyjQUal6TecwMlYwQ"},"card_json":{"type":"string","description":"The JSON string for the interactive card.","example":"{   \"content\": {     \"settings\": {       \"default_sidebar_color\": \"#0E72ED\",       \"is_split_sidebar\": false     }   } }"}}}}},"description":"The information about the chat message."}}}}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["ChatMessage:Read"],"x-macro-scopes":["chat_message:read","chat_message:read:admin","chat_message:write","chat_message:write:admin"],"x-granular-scopes":["team_chat:read:user_message","team_chat:read:user_message:admin"]}}},"/chat/messages/bookmarks":{"get":{"tags":["Chat Messages"],"summary":"List bookmarks","description":"Returns the bookmarks for a given channel, 1:1 conversation, or across all of the sessions \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:read`,`chat_message:write`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_bookmarks`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"fetchBookmarks","parameters":[{"name":"to_contact","in":"query","description":"This field allows you to query by the email address, user ID, or member ID of a chat contact. The API only returns messages bookmarked in the 1:1 conversation between the user and the queried contact. <br><br>If `to_contact' and 'to_channel` values are not provided, bookmarks across all of the user's sessions will be returned.","required":false,"schema":{"type":"string","example":"CxabcD3ojfdbjfg"}},{"name":"to_channel","in":"query","description":"This field allows you to query by the channel ID of a channel in which the user had chat conversations. The API only returns messages bookmarked by the user in the queried channel. <br><br>If `to_contact' and 'to_channel` values are not provided, bookmarks across all of the user's sessions will be returned.","required":false,"schema":{"type":"string","example":"qrstuvwxyz67890"}},{"name":"page_size","in":"query","description":"The number of records to be returned with a single API call. ","required":false,"schema":{"maximum":50,"minimum":1,"type":"integer","example":10,"default":10}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"**HTTP Status Code:**`200`<br>List of bookmarked messages returned.","content":{"application/json":{"schema":{"required":["bookmarks","page_size"],"type":"object","properties":{"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"type":"integer","description":"The number of records returned within a single API call.","example":10},"bookmarks":{"type":"array","description":"The information about the user's bookmarks.","items":{"oneOf":[{"required":["channel_id","channel_name","is_sent_by_user","message","message_id","message_timestamp","sender_display_name","sender_member_id","sender_user_id"],"type":"object","properties":{"channel_id":{"type":"string","description":"The channel ID of the chat session.","example":"ayxzxi9ttyau5lskqorl1w3rtl1y5ssri"},"channel_name":{"type":"string","description":"The name of the channel","example":"xBvggqyjQUal6TecwMlYwQ"},"message":{"type":"string","description":"The message content.","example":"Hello"},"message_id":{"type":"string","description":"The message ID, which is the message's unique identifier. You can use the [**Get a message**](/docs/api/rest/reference/chat/methods/#operation/getChatMessage) API to fetch additional details about the message.","example":"EAB58B01-B35F-4F97-BA69-F9650F54679A"},"message_timestamp":{"type":"integer","description":"The message sent time.","format":"int64","example":1703307811000},"sender_user_id":{"type":"string","description":"The sender's user ID. It omits the user ID who is not from the same account.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"sender_member_id":{"type":"string","description":"The message sender's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2he"},"sender_display_name":{"type":"string","description":"The message sender's display name.","example":"Jane Smith"},"is_sent_by_user":{"type":"boolean","description":"This field returns `true` if the user sends the bookmarked message.","example":false},"reply_main_message_id":{"type":"string","description":"The main message's unique ID. The API only returns this value if the bookmarked message is a reply or thread message. ","example":"7FDDE92B-042F-429E-B3F3-3A63838C417F"},"reply_main_message_timestamp":{"type":"integer","description":"The main message's timestamp. The API only returns this value if the bookmarked message is a reply or thread message. ","format":"int64","example":1705010505067}},"description":"The details of a message bookmarked in a channel."},{"required":["is_sent_by_user","message","message_id","message_timestamp","peer_contact_member_id","peer_contact_name","peer_contact_user_id"],"type":"object","properties":{"peer_contact_name":{"type":"string","description":"The name of the peer contact of the conversation.","example":"Jane Snith"},"peer_contact_user_id":{"type":"string","description":"The user ID of the peer contact of the conversation. It omits the user ID who is not from the same account.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"peer_contact_member_id":{"type":"string","description":"The member ID of the peer contact of the conversation.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"message":{"type":"string","description":"The message content.","example":"Hello"},"message_id":{"type":"string","description":"The message ID, which is the message's unique identifier. You can use the [**Get a message**](/docs/api/rest/reference/chat/methods/#operation/getChatMessage) API to fetch additional details about the message.","example":"EAB58B01-B35F-4F97-BA69-F9650F54679A"},"message_timestamp":{"type":"integer","description":"The message sent time.","format":"int64","example":1703307811000},"is_sent_by_user":{"type":"boolean","description":"This field returns `true` if the user sends a bookmarked message.","example":false},"reply_main_message_id":{"type":"string","description":"The main message's unique ID. The API only returns this value if the bookmarked message is a reply or thread message. ","example":"7FDDE92B-042F-429E-B3F3-3A63838C417F"},"reply_main_message_timestamp":{"type":"integer","description":"The main message's timestamp. The API only returns this value if the bookmarked message is a reply or thread message. ","format":"int64","example":1705010505067}},"description":"The details of a message bookmarked in a 1:1 conversation."}]}}},"description":"The user's bookmarks."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The next page token is invalid or expired. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to access this user's chat bookmarks. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $userId. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_message:read","chat_message:write"],"x-granular-scopes":["team_chat:read:list_bookmarks"]}},"patch":{"tags":["Chat Messages"],"summary":"Add or remove a bookmark","description":"Adds a bookmark to a message or removes the bookmark from a message.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:write`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:bookmark`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"addOrRemoveABookmark","parameters":[{"name":"message_id","in":"query","description":"The unique identifier of the message.  You can retrieve the message ID using the [**List user's chat messages**](https://developers.zoom.us/docs/api/rest/reference/chat/methods/#operation/getChannels) API.","required":true,"schema":{"type":"string","example":"8cfaf567-bf5a-4acc-b4f2-88b3d371aca5"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["action"],"type":"object","properties":{"action":{"type":"string","description":"This field specifies an action for this request. The value can be one of the following:\n \n`add_bookmark`: Add a new bookmark. \n`remove_bookmark`: Remove an existing bookmark.","example":"add_bookmark","enum":["add_bookmark","remove_bookmark"]},"to_channel":{"type":"string","description":"The channel ID where the message was sent. <br> You must provide this parameter or the `to_contact` parameter in the API request.\n You can retrieve the channel ID using the [**List user's channels**](https://developers.zoom.us/docs/api/rest/reference/chat/methods/#operation/getChannels) API.","example":"825c9e31f1064c73b394c5e4557d3447"},"to_contact":{"description":"The email address, user ID, or member ID of the contact to whom the message was sent.  <br>You must provide either a `to_contact` or `to_channel` parameter in the API request.","oneOf":[{"type":"string","description":"The email address.","format":"email","example":"jchill@example.com"},{"type":"string","description":"The user ID.","example":"zQmgS2TMSpGUOQcXyAHsyA"},{"type":"string","description":"The member ID.","example":"za7AvP7o9AxypYwpaKYsOJ2K3VwXBZn4JtxgPGk8Lf7_1w"}]}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`  \n\n Bookmark added/removed successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n  <br> Must provide either $to_contact or $to_channel parameter. <br> <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $to_contact or $userId. <br>\n**Error Code:** `4130` <br>\n Channel does not exist: $to_channel. <br>\n**Error Code:** `5401` <br>\n Message does not exist: $messageId. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_message:write"],"x-granular-scopes":["team_chat:update:bookmark"]}}},"/chat/messages/schedule":{"get":{"tags":["Chat Messages"],"summary":"List scheduled messages","description":"Returns a list of scheduled messages.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:read`,`chat_message:write`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_scheduled_messages`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listScheduledMessages","parameters":[{"name":"to_contact","in":"query","description":"The email address, user ID, or member ID of the person to whom the draft message will be sent.","required":false,"schema":{"type":"string","example":"helo@example.com"}},{"name":"to_channel","in":"query","description":"The channel ID to whom the draft message will be sent. You must provide this parameter or the `to_contact` parameter.","required":false,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned with a single API call. The default value is 10.","required":false,"schema":{"maximum":50,"type":"integer","example":10,"default":10}}],"responses":{"200":{"description":"**HTTP Status Code:**`200`   List of scheduled messages.","content":{"application/json":{"schema":{"required":["messages","page_size"],"type":"object","properties":{"to_channel":{"type":"string","description":"The channel's unique identifier.","example":"qrstuvwxyz67890"},"to_contact":{"type":"string","description":"The email address, user ID, or member ID of a chat contact with whom the user communicated.","example":"hello@example.com"},"page_size":{"type":"integer","description":"The number of records returned with a single API call. ","example":10},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"messages":{"type":"array","description":"The scheduled messages.","items":{"required":["create_date","draft_id","message","scheduled_time"],"type":"object","properties":{"draft_id":{"type":"string","description":"The draft ID.","example":"2d712699-62f3-4114-9fbf-29d40664eb09"},"create_date":{"type":"string","description":"The date when the draft was created.","format":"date-time","example":"2020-02-10T21:39:50Z"},"scheduled_time":{"type":"string","description":"The date when will send the message.","format":"date-time","example":"2020-02-10T21:39:50Z"},"download_url":{"type":"string","description":"The file's download URL.","example":"https://example.com/file/download/xt0aNj_DRtqRn041pIfpSQ?filename=Screenshot%202022-03-01%20at%20144337.png&jwt=eyJhbGciOiJIUzI1NiJ9.eyJkaWciOiJkOTllM2QwMjRjNmFiODNiMTNlNjVjYzM3NjJlYjc4ODMwMDE4YTNjNzNiNjc3ZWE3MzNlZDEzMTgxMTE3MzNkIiwiaXNzIjoiY3Jvc3NmaWxlIiwiYXVkIjoiZmlsZSIsImV4cCI6MTY0NjIwMzQ4MX0.7SF4L-xY-mqXgRD-NCzJOIu5nkuy33eKksif2m75Y38"},"file_id":{"type":"string","description":"The file's ID.","example":"XDCDSJNVCDS"},"file_name":{"type":"string","description":"The file's name.","example":"Screenshot 2022-03-01 at 144337.png"},"file_size":{"type":"integer","description":"The file size.","example":89},"rich_text":{"type":"array","description":"The [rich text formatting](https://support.zoom.us/hc/en-us/articles/115004789183-Replying-to-and-managing-chat-messages) information.","items":{"required":["end_position","format_attr","format_type","start_position"],"type":"object","properties":{"start_position":{"type":"integer","description":"The start position of the rich text in the message string.","example":0},"end_position":{"type":"integer","description":"The end position of the rich text.","example":5},"format_type":{"type":"string","description":"The type of rich text format.","example":"Paragraph","enum":["Bold","Italic","Strikethrough","BulletedList","NumberedList","Underline","FontSize","FontColor","BackgroundColor","LeftIndent","Paragraph","Quote","AddLink"]},"format_attr":{"type":"string","description":"The attribute values of a specific `format_type`:\n\n1.`FontSize`: `s` for small, `m` for medium, or `l` for large font sizes. \n\n2.`FontColor` and `BackgroundColor`: only supports RGB values. For example: `FFC0CB` \n\n3.`LeftIndent`: a positive pixel length.  \n\n4.`Paragraph`: `h1` for heading 1, `h2` for heading 2, or `h3` for heading 3. \n\n5.`AddLink`: must be a valid URL with an `http` or `https` prefix. For example: `https://example.com`","example":"h1"}}}},"files":{"type":"array","description":"The information about the chat file.","items":{"required":["download_url","file_id","file_name","file_size"],"type":"object","properties":{"download_url":{"type":"string","description":"The chat file's download URL.","example":"https://zoom.us/file/download/xBvggqyjQUal6TecwMlYwQ?filename=example.jpg&jwt=eyJhbGciOiJIUzI1NiJ9.eyJkaWciOiI3Yzg5YzBhYjIzYmZmMjdjNzE3NTQ4YzdjMTc0Njk3MWYzYjNmNjFjMzU5OTliNjE1ZjdjMWJmMzc5YTJiZThlIiwiYXVkIjoiZmlsZSIsImlzcyI6ImNyb3NzZmlsZSIsImV4cCI6MTY0ODI2NDY5N30.2fQxw3F1cEhvFJmnE2zPOdkHnPeZUktv_P0M--e-Tg8"},"file_id":{"type":"string","description":"The chat file's unique ID.","example":"xBvggqyjQUal6TecwMlYwQ"},"file_name":{"type":"string","description":"The chat file's name and extension.","example":"example.jpg"},"file_size":{"type":"integer","description":"The chat file's size in bytes.","example":3966}}}},"message":{"type":"string","description":"The message content.","example":"hello!"},"reply_main_message_id":{"type":"string","description":"The unique ID of the main message in the thread. The API only returns this value if the message is a reply message.","example":"d3be6ca7-3a0b-44fb-a429-4d6b30ac64a6"},"reply_main_message_timestamp":{"type":"number","description":"The timestamp when the main message in the thread was sent. This field only returns if the message is a reply message.","format":"int64","example":1581370790388},"at_items":{"type":"array","items":{"required":["at_contact","at_contact_member_id","at_type","end_position","start_position"],"type":"object","properties":{"at_contact":{"type":"string","description":"The contact's user ID. This field will be empty if the user ID does not belong to the same account as the current user.","example":"MO6johaFRIOlYivs3NnyvA"},"at_contact_member_id":{"type":"string","description":"The member ID of the contact. This field is returned if the value of `at_type` field is set to 1.","example":"R4aF9Oj0fVM2hhezJTEmSKj0fVM2JTEaF9Oj0fVMj0fF9OF9O"},"at_type":{"type":"integer","description":"The type of mention. `1`: Contact. \n\n* `2`: Channel.","example":2,"enum":[1,2]},"end_position":{"type":"integer","description":"The end position of the mention.\n\nExample message: \"@Shrijana How are you?\"\nIn this case, the end position of the mention \"@Shrijana\" is 8. Hence, the value of this field will be 8.","example":8},"start_position":{"type":"integer","description":"The start position of the mention(\"@\") in the message string. \n\nFor example if you want to include the mention at the beginning of the message, the value for this field will be 0. \n\nExample message: \"@Shrijana How are you?\"\n\n","example":0}}}}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid parameter: '$params' <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $to_contact. <br>\n**Error Code:** `4130` <br>\n Channel does not exist: $to_channel. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatMessage:Read"],"x-macro-scopes":["chat_message:read","chat_message:write"],"x-granular-scopes":["team_chat:read:list_scheduled_messages"]}}},"/chat/messages/schedule/{draftId}":{"delete":{"tags":["Chat Messages"],"summary":"Delete a scheduled message","description":"Deletes a scheduled message.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:write`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:scheduled_message`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteScheduleMessage","parameters":[{"name":"draftId","in":"path","description":"The draft ID. Add this parameter if you want to delete a schedule message.","required":true,"schema":{"type":"string","example":"8cfaf567-bf5a-4acc-b4f2-88b3d371aca5"}},{"name":"to_contact","in":"query","description":"The email address, user ID, or member ID of the person to whom the draft message will be sent.","required":false,"schema":{"type":"string","example":"nldhy1xwqwkwgwdlgry2rq"}},{"name":"to_channel","in":"query","description":"The channel ID where the draft message will be sent. You must provide this parameter or the `to_contact` parameter.","required":false,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`  Delete this schedule message successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5404` <br>\n Invalid draft id: $draft_id. <br>\n**Error Code:** `5301` <br>\n Request to delete the scheduled message failed. <br>\n**Error Code:** `300` <br>\n Must provide either to_contact or to_channel parameter. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatMessage:Edit"],"x-macro-scopes":["chat_message:write"],"x-granular-scopes":["team_chat:delete:scheduled_message"]}}},"/chat/users/{userId}/messages":{"get":{"tags":["Chat Messages"],"summary":"List user's chat messages","description":"Returns a list of chat messages and shared files between a user and an individual contact, or a chat channel. For user-level apps, pass [the `me` value](https://developers.zoom.us/docs/api/rest/using-zoom-apis/#the-me-keyword) instead of the `userId` parameter.  \n\n**Note:** For an [account-level OAuth app](https://developers.zoom.us/docs/integrations/create/), this API can only be used on behalf of a [user assigned to a role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management) with the **Edit** permission for **Chat Messages**. \n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:read`,`chat_message:write`,`chat_message:read:admin`,`chat_message:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_user_messages`,`team_chat:read:list_user_messages:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getChatMessages","parameters":[{"name":"userId","in":"path","description":"The unique identifier of the user.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},{"name":"to_contact","in":"query","description":"This field allows you to query by the email address, user ID, or member ID of a chat contact with whom the user communicated. The API only returns messages sent and received between the user and the queried contact. \n\n**Note:** \n* You must provide either the `to_contact` or the `to_channel` query parameter. \n* When you call the `search_key` and `search_type` query parameters, this query parameter is optional and **not** required.","required":false,"schema":{"type":"string","example":"5UhQMZkDQ1CuuKVl1N5JIw"}},{"name":"to_channel","in":"query","description":"This field allows you to query by the channel ID of a channel in which the user had chat conversations. The API only returns messages sent and received by the user in the queried channel. \n\n**Note:** \n* You must provide either the `to_contact` or the `to_channel` query parameter. \n* When you call the `search_key` and `search_type` query parameters, this query parameter is optional and **not** required.","required":false,"schema":{"type":"string","example":"qrstuvwxyz67890"}},{"name":"date","in":"query","description":"The query date from which to retrieve the chat messages. This value defaults to the current date. \n\n **Note:** If you do not provide the `date` or `from` query parameters, the API defaults to the `date` query parameter.","required":false,"schema":{"type":"string","format":"date","example":"2020-03-01"}},{"name":"from","in":"query","description":"The query start date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.\n\n **Note:** If you provide both the `date` and `from` query parameters, the API uses the `date` value to query.","required":false,"schema":{"type":"string","format":"date-time","example":"2020-02-10T21:39:50Z"}},{"name":"to","in":"query","description":"The query end date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format. This value defaults to the current date.","required":false,"schema":{"type":"string","format":"date-time","example":"2020-02-15T12:00:00Z"}},{"name":"page_size","in":"query","description":"The number of records returned with a single API call. ","required":false,"schema":{"maximum":50,"type":"integer","example":10,"default":10}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"include_deleted_and_edited_message","in":"query","description":"**Optional**   \n \nThis field sets the value of this field to `true` to include edited and deleted messages in the response.","required":false,"schema":{"type":"boolean","example":true,"default":false}},{"name":"search_type","in":"query","description":"The type of search: \n* `message` &mdash; Search messages. \n* `file` &mdash; Search files. \n\n**Note:** \n* If you use this query parameter, you must also include a `search_key` query parameter value. \n* The `to_contact` and the `to_channel` query parameters are **not** required when you query this parameter. If you do not call them, the API returns **all** contact and channel messages that match the `search_type` query. \n* If you query this parameter, you **cannot** also query the `include_deleted_and_edited_message` parameter. This query parameter does not support the return of deleted or updated messages.","required":false,"schema":{"type":"string","example":"message","enum":["message","file"]}},{"name":"search_key","in":"query","description":"The query string for messages or files, up to 256 characters. \n\n**Note:** \n* If you use this query parameter, you must also include a `search_type` query parameter value. \n* The `to_contact` and the `to_channel` query parameters are **not** required when you query this parameter. If you do not call them, the API returns **all** contact and channel messages that match the `search_key` query. \n* If you query this parameter, you **cannot** also query the `include_deleted_and_edited_message` parameter. This query parameter does not support the return of deleted or updated messages.","required":false,"schema":{"maxLength":256,"minLength":1,"type":"string","example":"hello"}},{"name":"exclude_child_message","in":"query","description":"This parameter excludes returning all child messages in a chat. It leaves only the parent messages.","required":false,"schema":{"type":"boolean","example":true,"default":false}},{"name":"download_file_formats","in":"query","description":"This field returns the download URL in the specified format for different types of files. Currently, we only support the download URL in the .mp4 format for audio files. If this parameter is not specified, it returns the download URL of the file in its default format.","required":false,"schema":{"type":"string","example":"audio/mp4","enum":["audio/mp4"]}}],"responses":{"200":{"description":"**HTTP Status Code:**`200`  \n \nThe list of chat messages returned.","content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string","description":"The date to query.","format":"date","example":"2020-03-01"},"from":{"type":"string","description":"The queried start date. The API only returns this value if you call the `from` query parameter.","format":"date-time","example":"2020-02-10T21:39:50Z"},"messages":{"type":"array","description":"The information about the received messages and files.","items":{"type":"object","properties":{"bot_message":{"type":"object","description":"The chatbot's message in JSON format. For more information, read the [Chatbots: Send, Edit, and Delete Messages](https://marketplace.zoom.us/docs/guides/chatbots/send-edit-and-delete-messages) documentation."},"date_time":{"type":"string","description":"The date and time when the message was sent.","format":"date-time","example":"2020-02-10T21:39:50Z"},"files":{"type":"array","description":"The information about all the chat files (if there are multiple files).","items":{"type":"object","properties":{"download_url":{"type":"string","description":"The chat file's download URL.","example":"https://zoom.us/file/download/xBvggqyjQUal6TecwMlYwQ?filename=example.jpg&jwt=eyJhbGciOiJIUzI1NiJ9.eyJkaWciOiI3Yzg5YzBhYjIzYmZmMjdjNzE3NTQ4YzdjMTc0Njk3MWYzYjNmNjFjMzU5OTliNjE1ZjdjMWJmMzc5YTJiZThlIiwiYXVkIjoiZmlsZSIsImlzcyI6ImNyb3NzZmlsZSIsImV4cCI6MTY0ODI2NDY5N30.2fQxw3F1cEhvFJmnE2zPOdkHnPeZUktv_P0M--e-Tg8"},"file_id":{"type":"string","description":"The chat file's unique ID.","example":"xBvggqyjQUal6TecwMlYwQ"},"file_name":{"type":"string","description":"The chat file's name and file extension.","example":"example.jpg"},"file_size":{"type":"integer","description":"The chat file's size, in bytes.","example":3966}}}},"rich_text":{"type":"array","description":"The [rich text formatting](https://support.zoom.us/hc/en-us/articles/115004789183-Replying-to-and-managing-chat-messages) information.","items":{"type":"object","properties":{"start_position":{"type":"integer","description":"The start position of the rich text in the message string.","example":0},"end_position":{"type":"integer","description":"The end position of the rich text.","example":5},"format_type":{"type":"string","description":"The type of rich text format.","example":"Paragraph","enum":["Bold","Italic","Strikethrough","BulletedList","NumberedList","Underline","FontSize","FontColor","BackgroundColor","LeftIndent","Paragraph","Quote","AddLink"]},"format_attr":{"type":"string","description":"The attribute values of a specific `format_type`:\n\n1.`FontSize`: `s` for small, `m` for medium, or `l` for large font sizes. \n\n2.`FontColor` and `BackgroundColor`: only supports RGB values. For example: `FFC0CB` \n\n3.`LeftIndent`: a positive pixel length.  \n\n4.`Paragraph`: `h1` for heading 1, `h2` for heading 2, or `h3` for heading 3. \n\n5.`AddLink`: must be a valid URL with an `http` or `https` prefix. For example: `https://example.com`","example":"h1"}}}},"download_url":{"type":"string","description":"The first file's download URL.","example":"https://zoom.us/file/download/xBvggqyjQUal6TecwMlYwQ?filename=example.jpg&jwt=eyJhbGciOiJIUzI1NiJ9.eyJkaWciOiI3Yzg5YzBhYjIzYmZmMjdjNzE3NTQ4YzdjMTc0Njk3MWYzYjNmNjFjMzU5OTliNjE1ZjdjMWJmMzc5YTJiZThlIiwiYXVkIjoiZmlsZSIsImlzcyI6ImNyb3NzZmlsZSIsImV4cCI6MTY0ODI2NDY5N30.2fQxw3F1cEhvFJmnE2zPOdkHnPeZUktv_P0M--e-Tg8"},"file_id":{"type":"string","description":"The first file's unique ID.","example":"xBvggqyjQUal6TecwMlYwQ"},"file_name":{"type":"string","description":"The first file's name.","example":"example.jpg"},"file_size":{"type":"integer","description":"The first file's size, in bytes.","example":3966},"id":{"type":"string","description":"The message ID, which is the message's unique identifier.","example":"EAB58B01-B35F-4F97-BA69-F9650F54679A"},"message":{"type":"string","description":"The message content.","example":"hello, world!"},"message_type":{"type":"string","description":"The common type of messages that indicates  which type of file to include. \n plain_text_message. \n jpg_image_file. \n audio_file. \n video_file. \n png_image_file. \n gif_file. \n giphy_file. \n code_snippet. \n file_and_text. \n others. ","example":"code_snippet","enum":["plain_text_message","jpg_image_file","audio_file","video_file","png_image_file","gif_file","giphy_file","code_snippet","file_and_text","others"]},"reactions":{"type":"array","description":"A list of emoji reactions.","items":{"type":"object","properties":{"emoji":{"type":"string","description":"The emoji's unicode value, in `UTF-32` format.","example":"U+1F600"},"total_count":{"type":"integer","description":"The emoji's total usage count.","example":1},"senders":{"type":"array","description":"Users that reacted to this message with this emoji.","items":{"type":"object","properties":{"user_id":{"type":"string","description":"This field is the user ID from the same account that reacted to this message with this emoji. It omits the user ID who is not from the same account.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"member_id":{"type":"string","description":"The user member ID that reacted to this message with this emoji.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}}}}}},"reply_main_message_id":{"type":"string","description":"The unique identifier of a reply. This field returns if the message is a reply message.","example":"27ED2949-6457-417C-83EA-72515DAF00BD"},"reply_main_message_timestamp":{"type":"integer","description":"The timestamp of when the reply message was sent. This field returns if the message is a reply message.","format":"int64","example":1581370790388},"sender":{"type":"string","description":"The message sender's email address. If the sender does not belong to the same account as the current user or is not the current user's contact, this field is empty.","example":"jchill@example.com"},"send_member_id":{"type":"string","description":"The message sender's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"},"sender_display_name":{"type":"string","description":"The message sender's display name.","example":"Tom"},"status":{"type":"string","description":"This field indicates whether a message is an original message(unedited), an edited message, or a deleted message. This field only returns if you set the value of `for include_deleted_and_edited_message` query parameter to `true`.","example":"Edited","enum":["Deleted","Edited","Normal"]},"timestamp":{"type":"integer","description":"The timestamp of the message.","format":"int64","example":1581370790388},"at_items":{"type":"array","items":{"type":"object","properties":{"at_contact":{"type":"string","description":"The contact's user ID. This field is empty if the contact does not belong to the same account as the current user.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"at_contact_member_id":{"type":"string","description":"The contact's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"},"at_type":{"type":"integer","description":"The type of mention. `1`: Contact. \n\n* `2`: Channel.","example":2,"enum":[1,2]},"end_position":{"type":"integer","description":"The end position of the mention.\n\nExample message: &quot;@Shrijana How are you?&quot;\nIn this case, the end position of the mention &quot;@Shrijana&quot; is 8. Hence, the value of this field is 8.","example":8},"start_position":{"type":"integer","description":"The start position of the mention(&quot;@&quot;) in the message string. \n\nFor example if you want to include the mention at the beginning of the message, the value for this field is 0. \n\nExample message: &quot;@Shrijana How are you?&quot;\n\n","example":0}}}},"interactive_cards":{"type":"array","description":"The information about the chat interactive card.","items":{"type":"object","properties":{"card_id":{"type":"string","description":"The chat interactive card's unique ID.","example":"xBvggqyjQUal6TecwMlYwQ"},"card_json":{"type":"string","description":"The JSON string for the interactive card.","example":"{   \"content\": {     \"settings\": {       \"default_sidebar_color\": \"#0E72ED\",       \"is_split_sidebar\": false     }   } }"}}}},"encryption_info":{"type":"object","properties":{"key_id":{"type":"string","description":"The key ID for retrieving the data key.","example":"ZXhhbXBsZS1rZXktaWQ="},"encrypt_context":{"type":"string","description":"The Base64-encoded encryption context for retrieving the data key.","example":"MTAwMSMjI0NTRTpUZWFtQ2hhdDpFeHRlcm5hbCMjIzcyYTdjOWI1YjFmNDQ1YjM4YWE5NWY0YzU2ODk3NTFjQGNvbmZlcmVuY2UueG1wcGRldi56b29tLnVz"},"encrypt_content":{"type":"string","description":"For encrypted messages, the encrypted payload corresponding to the message field. After decryption, it returns the plaintext message content.","example":"DPOGczEf1FKiIHmcuwAAAwAAABOU5fzpb5Hn8s6t9vzu3yC+dy4="},"encryption_algorithm":{"type":"string","description":"The encryption algorithm used for the message content.","example":"AES-GCM-256"}},"description":"Encryption metadata for a CMK Hybrid encrypted chat message."}}}},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.\n","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"type":"integer","description":"The number of records returned within a single API call.","example":10,"default":10},"to":{"type":"string","description":"The queried end date. The API only returns this value if you call the `to` query parameter.","format":"date-time","example":"2020-04-01T21:39:50Z"}},"description":"The chat message object."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to access this user's chat messages.<br> <br>\n**Error Code:** `300` <br>\n The next page token is invalid or expired.<br> <br>\n**Error Code:** `300` <br>\n Must provide either contact or channel parameter.<br> <br>\n**Error Code:** `300` <br>\n Only provide past chat messages in recent 6 months.<br> <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $to_contact.<br> <br>\n**Error Code:** `4130` <br>\n Channel does not exist: $to_channel. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatMessage:Read"],"x-macro-scopes":["chat_message:read","chat_message:write","chat_message:read:admin","chat_message:write:admin"],"x-granular-scopes":["team_chat:read:list_user_messages","team_chat:read:list_user_messages:admin"]}},"post":{"tags":["Chat Messages"],"summary":"Send a chat message","description":"Sends chat messages to a user in your contact list or to a [channel](https://support.zoom.us/hc/en-us/articles/200912909-Getting-Started-With-Channels-Group-Messaging-) of which you are a member.  \nFor user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter.\n\n- To send a message to a contact, provide the contact's email address in the `to_contact` field.  \n- To send a message to a channel, provide the channel's ID in the `to_channel` parameter.\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:write`,`chat_message:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:user_message`,`team_chat:write:user_message:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"sendaChatMessage","parameters":[{"name":"userId","in":"path","description":"The unique identifier of the user.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["message"],"type":"object","properties":{"at_items":{"type":"array","description":"The [chat mentions](https://support.zoom.us/hc/en-us/articles/360037567431-Using-chat-mentions-and-slash-commands) object. Use this object to include mentions in the message that will be sent to  a channel. ","items":{"type":"object","properties":{"at_contact":{"description":"This field is required if the value of `at_type` field is set to 1. \n\n","oneOf":[{"type":"string","description":"The email address of the contact. \n\n","format":"email","example":"jchill@example.com"},{"type":"string","description":"The member ID of the contact. \n\n","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"},{"type":"string","description":"The mention group ID.","example":"04bbd90c0d7f4446ad59eca5c1fc1375"}]},"at_type":{"type":"integer","description":"The type of mention. You can use one of the following values:  \n \n* `1`: Mention a contact. \n\n* `2`: Mention &quot;all&quot; to notify everyone in the channel.\n\n* `3`: Mention a mention group. ","example":2,"enum":[1,2,3]},"end_position":{"type":"integer","description":"The end position of the mention.\n\nExample message: &quot;@Shrijana How are you?&quot;\nIn this case, the end position of the mention &quot;@Shrijana&quot; is 8. Hence, the value of this field will be 8.","example":8},"start_position":{"type":"integer","description":"The start position of the mention(&quot;@&quot;) in the message string. \n\nFor example if you want to include the mention at the beginning of the message, the value for this field will be 0. \n\nExample message: &quot;@Shrijana How are you?&quot;","example":0}}}},"rich_text":{"type":"array","description":"The [rich text formatting](https://support.zoom.us/hc/en-us/articles/115004789183-Replying-to-and-managing-chat-messages) object. Use this object to include rich text in the message that will be sent. Use `\\n` as newline char.  ","items":{"type":"object","properties":{"start_position":{"type":"integer","description":"The start position of the rich text in the message string. \n\nFor example if you want to bold the first character at the beginning of the message, the value for this field will be 0. \n\nExample message: &quot;Hello&quot;","example":0},"end_position":{"type":"integer","description":"The end position of the rich text.\n\nExample message: &quot;Hello&quot;\nIn this case, we only want to bold the first character and its end position is 1. Hence, the value of this field will be 1.","example":1},"format_type":{"type":"string","description":"The type of rich text. There is some special logic which is the same as on the Zoom client. \n\n1. `AddLink`'s position can not cross multi lines. \n\n2. A `BulletedList` will clear the formatting of a `NumberedList`, `Quote`, or `LeftIndent` after it. \n\n3. Likewise, a `NumberedList` will clear the formatting of a `BulletedList`, `Quote`, or `LeftIndent` after it. \n\n4. Only `AddLink`, `NumberedList` and `BulletedList` can apply to a message which already applied a `Quote`.  \n\n5. A `Quote` will clear the formatting of all styles after it except `AddLink`, `NumberedList`, `BulletedList`, or `Italic`. \n\n6. An `AddLink` will clear the formatting of `BackgroundColor`, `FontColor`, or `Underline` after it.  \n\n7. `BackgroundColor`, `FontColor` and `Underline` can not apply to a message which already applied `AddLink`. \n\n8. `BulletedList`, `NumberedList`, `LeftIndent`, `Paragraph`, and `Quote` will automatically expand to apply to the whole line.","example":"Paragraph","enum":["Bold","Italic","Strikethrough","BulletedList","NumberedList","Underline","FontSize","FontColor","BackgroundColor","LeftIndent","Paragraph","Quote","AddLink"]},"format_attr":{"type":"string","description":"This field is required if the value of the `format_type` field is listed below:\n\n1.`FontSize` value: `s` for small, `m` for medium, or `l` for large font size. \n\n2.`FontColor` and `BackgroundColor` value: only supports RGB value. For example: `FFC0CB` \n\n3.`LeftIndent` value: a positive pixel length.  \n\n4.`Paragraph` value: `h1` for Heading 1, `h2` for Heading 2, or `h3` for Heading 3. \n\n5.`AddLink` value: must be a valid URL, with an `http` or `https` prefix. For example: `https://example.com`","example":"h1"}}}},"message":{"maxLength":1024,"type":"string","description":"The message to be sent.","example":"Hello"},"file_ids":{"maxItems":6,"type":"array","description":"A list of the file IDs to send. This field only accepts a maximum of six file IDs.","items":{"type":"string","example":"M87v-bbmRGKCtl8nGNggvA"}},"reply_main_message_id":{"type":"string","description":"The unique ID of the main message in the thread. This field is required if the message is a reply message.","example":"{27ED2949-6457-417C-83EA-72515DAF00BD}"},"to_channel":{"type":"string","description":"The channel ID of the channel where you would like to send a message.\n\nChannel Message Rate Limits:\n\n• Within 1 second: up to 10 messages allowed; exceeded requests will be blocked for 10 seconds  \n• Within 10 seconds: up to 30 messages allowed; exceeded requests will be blocked for 30 seconds  \n• Within 100 seconds: up to 60 messages allowed; exceeded requests will be blocked for 60 seconds  \n• Within 1000 seconds: up to 450 messages allowed; exceeded requests will be blocked for 300 seconds  \n\n\nIf any time window limit is exceeded, message sending for the Channel is temporarily blocked.\nMessage sending automatically resumes after the block period ends.","example":"825c9e31f1064c73b394c5e4557d3447"},"to_contact":{"description":"The email address, user ID, or member ID of the person you wish to send a message.","oneOf":[{"type":"string","format":"email","example":"jchill@example.com"},{"type":"string","example":"za7AvP7o9AxypYwpaKYsOJ2K3VwXBZn4JtxgPGk8Lf7_1w"},{"type":"string","example":"MbLtBAYYQUSqP64XySjfnQ"}]},"interactive_cards":{"maxItems":5,"type":"array","description":"A list of the interactive card to send. The app calling this API must be the app to which the card belongs, otherwise the card cannot be sent. This field only accepts a maximum of five interactive cards to send.","items":{"type":"object","properties":{"card_json":{"type":"string","description":"The JSON string for the interactive card. Only successfully created cards will be sent. Failure to create a card will result in message delivery failure.","example":"{   \"content\": {     \"settings\": {       \"default_sidebar_color\": \"#0E72ED\",       \"is_split_sidebar\": false     }   } }"}}}},"scheduled_time":{"type":"string","description":"The scheduled time to send the message in yyyy-MM-dd'T'HH:mm:ss'Z' format. It must be more than 30 minutes from now and within 180 days.","format":"date-time","example":"2020-02-10T21:39:50Z"}}}}}},"responses":{"201":{"description":"**Status Code:** `201`  \n \nMessage sent.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the message or draft. If the `scheduled_time` is not empty, then it's the draft ID.","example":"8cfaf567-bf5a-4acc-b4f2-88b3d371aca5"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Message sending failed.<br> <br>\n**Error Code:** `5402` <br>\n This only supports replies to a main message.<br> <br>\n**Error Code:** `5403` <br>\n Account settings do not allow files to be sent. <br>\n**Error Code:** `300` <br>\n Invalid parameter: send_time. The time requirement is more than 30 minutes from now and within 180 days. <br>\n**Error Code:** `5405` <br>\n Failed to create interactive card. <br>\n**Error Code:** `5418` <br>\n The user can not chat with others. <br>\n**Error Code:** `5419` <br>\n Can not send message to an E2E channel. <br>\n**Error Code:** `5420` <br>\n Can not send message to an archived channel. <br>\n**Error Code:** `5421` <br>\n Can not send message to a blocked contact. <br>\n**Error Code:** `5508` <br>\n The mention group doesn't exist. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $to_contact.<br> <br>\n**Error Code:** `4130` <br>\n Channel does not exist: $to_channel.<br> <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatMessage:Edit"],"x-macro-scopes":["chat_message:write","chat_message:write:admin"],"x-granular-scopes":["team_chat:write:user_message","team_chat:write:user_message:admin"]}}},"/chat/users/{userId}/messages/{messageId}":{"get":{"tags":["Chat Messages"],"summary":"Get a message","description":"Returns a chat message previously sent to a contact or a channel. For user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter.\n\nYou must provide one of the following query parameters:  \n \n* `to_contact` &mdash; The email address of the Zoom contact to whom you sent the message.\n* `to_channel` &mdash; The ID of the Zoom channel where you sent the message.\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:read`,`chat_message:read:admin`,`chat_message:write`,`chat_message:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:user_message`,`team_chat:read:user_message:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getChatMessage","parameters":[{"name":"userId","in":"path","description":"The unique identifier of the user.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},{"name":"messageId","in":"path","description":"The unique identifier of the message.","required":true,"schema":{"type":"string","example":"8cfaf567-bf5a-4acc-b4f2-88b3d371aca5"}},{"name":"to_contact","in":"query","description":"The user ID, member ID, or email address of a chat contact to whom the message was sent. You must provide this parameter or the `to_channel` parameter.","required":false,"schema":{"type":"string","example":"5UhQMZkDQ1CuuKVl1N5JIw"}},{"name":"to_channel","in":"query","description":"The channel ID where the message was sent. You must provide this parameter or the `to_channel` parameter.","required":false,"schema":{"type":"string","example":"cd102f7602c6428db0a273e632eb020B"}},{"name":"download_file_formats","in":"query","description":"For different types of files, this field returns the download URL in the specified format. \n\nCurrently, we only support the download URL in the `mp4` format for audio files. If this parameter is not specified, it returns the download URL of the file in its default format.","required":false,"schema":{"type":"string","example":"audio/mp4","enum":["audio/mp4"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \n Message successfully returned.","content":{"application/json":{"schema":{"type":"object","properties":{"bot_message":{"type":"object","description":"The chatbot's message in JSON format. For more information, see [Send, edit, and delete messages](https://developers.zoom.us/docs/team-chat-apps/send-edit-and-delete-messages/) in the *Team Chat apps* documentation."},"date_time":{"type":"string","description":"The date and time when the message was sent.","format":"date-time","example":"2020-02-10T21:39:50Z"},"download_url":{"type":"string","description":"The file's download URL.","example":"https://example.com/file/download/xt0aNj_DRtqRn041pIfpSQ?filename=Screenshot%202022-03-01%20at%20144337.png&jwt=eyJhbGciOiJIUzI1NiJ9.eyJkaWciOiJkOTllM2QwMjRjNmFiODNiMTNlNjVjYzM3NjJlYjc4ODMwMDE4YTNjNzNiNjc3ZWE3MzNlZDEzMTgxMTE3MzNkIiwiaXNzIjoiY3Jvc3NmaWxlIiwiYXVkIjoiZmlsZSIsImV4cCI6MTY0NjIwMzQ4MX0.7SF4L-xY-mqXgRD-NCzJOIu5nkuy33eKksif2m75Y38"},"file_id":{"type":"string","description":"The file's ID.","example":"XDCDSJNVCDS"},"file_name":{"type":"string","description":"The file's name.","example":"Screenshot 2022-03-01 at 144337.png"},"file_size":{"type":"integer","description":"The file size.","example":89},"rich_text":{"type":"array","description":"The [rich text formatting](https://support.zoom.us/hc/en-us/articles/115004789183-Replying-to-and-managing-chat-messages) information.","items":{"type":"object","properties":{"start_position":{"type":"integer","description":"The start position of the rich text in the message string.","example":0},"end_position":{"type":"integer","description":"The end position of the rich text.","example":5},"format_type":{"type":"string","description":"The type of rich text format.","example":"Paragraph","enum":["Bold","Italic","Strikethrough","BulletedList","NumberedList","Underline","FontSize","FontColor","BackgroundColor","LeftIndent","Paragraph","Quote","AddLink"]},"format_attr":{"type":"string","description":"The attribute values of a specific `format_type`:\n\n1.`FontSize`: `s` for small, `m` for medium, or `l` for large font sizes. \n\n2.`FontColor` and `BackgroundColor`: only supports RGB values. For example: `FFC0CB` \n\n3.`LeftIndent`: a positive pixel length.  \n\n4.`Paragraph`: `h1` for heading 1, `h2` for heading 2, or `h3` for heading 3. \n\n5.`AddLink`: must be a valid URL with an `http` or `https` prefix. For example: `https://example.com`","example":"h1"}}}},"files":{"type":"array","description":"The information about the chat file.","items":{"type":"object","properties":{"download_url":{"type":"string","description":"The chat file's download URL.","example":"https://zoom.us/file/download/xBvggqyjQUal6TecwMlYwQ?filename=example.jpg&jwt=eyJhbGciOiJIUzI1NiJ9.eyJkaWciOiI3Yzg5YzBhYjIzYmZmMjdjNzE3NTQ4YzdjMTc0Njk3MWYzYjNmNjFjMzU5OTliNjE1ZjdjMWJmMzc5YTJiZThlIiwiYXVkIjoiZmlsZSIsImlzcyI6ImNyb3NzZmlsZSIsImV4cCI6MTY0ODI2NDY5N30.2fQxw3F1cEhvFJmnE2zPOdkHnPeZUktv_P0M--e-Tg8"},"file_id":{"type":"string","description":"The chat file's unique ID.","example":"xBvggqyjQUal6TecwMlYwQ"},"file_name":{"type":"string","description":"The chat file's name and extension.","example":"example.jpg"},"file_size":{"type":"integer","description":"The chat file's size in bytes.","example":3966}}}},"id":{"type":"string","description":"The message ID.","example":"6dfgdfgdg444447b0egga"},"message":{"type":"string","description":"The message content.","example":"Hello."},"message_type":{"type":"string","description":"The common type of messages that indicates  which type of file to include. \n plain_text_message. \n jpg_image_file. \n audio_file. \n video_file. \n png_image_file. \n gif_file. \n giphy_file. \n code_snippet. \n file_and_text. \n others. ","example":"code_snippet","enum":["plain_text_message","jpg_image_file","audio_file","video_file","png_image_file","gif_file","giphy_file","code_snippet","file_and_text","others"]},"reactions":{"type":"array","description":"A list of emoji reactions.","items":{"type":"object","properties":{"emoji":{"type":"string","description":"The emoji's unicode value in `UTF-32` format.","example":"U+1F600"},"total_count":{"type":"integer","description":"The emoji's total usage count.","example":1},"user_ids":{"type":"array","description":"A list of user IDs from the same account, that replied to this message with this emoji. user IDs of those who are not from the same account will be omitted from the list.","items":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},"member_ids":{"type":"array","description":"A list of user member IDs that replied to this message with this emoji.","items":{"type":"string","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}}}},"reply_main_message_id":{"type":"string","description":"The unique ID of the main message in the thread. The API only returns this value if the message is a reply message.","example":"DE159sdhmf---dasfC7EBFE73"},"reply_main_message_timestamp":{"type":"integer","description":"The timestamp when the main message in the thread was sent. This field only returns if the message is a reply message.","format":"int64","example":1581370790388},"sender":{"type":"string","description":"The message sender's email address. If the sender does not belong to the same account as the current user or is not the current user's contact, this field is empty.","example":"jchill@example.com"},"send_member_id":{"type":"string","description":"The message sender's member ID.","example":"v4iyWT1LTfy8QvPG4GTvdgLTfy8QvG4GTWT1LTfy8QvPG4vPG4"},"sender_display_name":{"type":"string","description":"The message sender's display name.","example":"Tom"},"timestamp":{"type":"integer","description":"The message's timestamp.","format":"int64","example":1581370790388},"message_url":{"type":"string","description":"The URL of the message.","example":"https://zoom.us/launch/chat/v2/eyJtaWQiOiI3NTkyNTY3RS1DQjA2LTQ1MDYtQjA5NC1FNDdGMTU0OUQzNkMiLCJzaWQi"},"at_items":{"type":"array","items":{"type":"object","properties":{"at_contact":{"type":"string","description":"The contact's user ID. This field will be empty if the user ID does not belong to the same account as the current user.","example":"MO6johaFRIOlYivs3NnyvA"},"at_contact_member_id":{"type":"string","description":"The member ID of the contact. This field is returned if the value of `at_type` field is set to 1.","example":"R4aF9Oj0fVM2hhezJTEmSKj0fVM2JTEaF9Oj0fVMj0fF9OF9O"},"at_type":{"type":"integer","description":"The type of mention. `1`: Contact. \n\n* `2`: Channel.","example":2,"enum":[1,2]},"end_position":{"type":"integer","description":"The end position of the mention.\n\nExample message: \"@Shrijana How are you?\"\nIn this case, the end position of the mention \"@Shrijana\" is 8. Hence, the value of this field will be 8.","example":8},"start_position":{"type":"integer","description":"The start position of the mention(\"@\") in the message string. \n\nFor example if you want to include the mention at the beginning of the message, the value for this field will be 0. \n\nExample message: \"@Shrijana How are you?\"\n\n","example":0}}}},"interactive_cards":{"type":"array","description":"The information about the chat interactive card.","items":{"type":"object","properties":{"card_id":{"type":"string","description":"The chat interactive card's unique ID.","example":"xBvggqyjQUal6TecwMlYwQ"},"card_json":{"type":"string","description":"The JSON string for the interactive card.","example":"{   \"content\": {     \"settings\": {       \"default_sidebar_color\": \"#0E72ED\",       \"is_split_sidebar\": false     }   } }"}}}},"encryption_info":{"type":"object","properties":{"key_id":{"type":"string","description":"The key ID for retrieving the data key.","example":"ZXhhbXBsZS1rZXktaWQ="},"encrypt_context":{"type":"string","description":"The Base64-encoded encryption context for retrieving the data key.","example":"MTAwMSMjI0NTRTpUZWFtQ2hhdDpFeHRlcm5hbCMjIzcyYTdjOWI1YjFmNDQ1YjM4YWE5NWY0YzU2ODk3NTFjQGNvbmZlcmVuY2UueG1wcGRldi56b29tLnVz"},"encrypt_content":{"type":"string","description":"For encrypted messages, the encrypted payload corresponding to the message field. After decryption, it returns the plaintext message content.","example":"DPOGczEf1FKiIHmcuwAAAwAAABOU5fzpb5Hn8s6t9vzu3yC+dy4="},"encryption_algorithm":{"type":"string","description":"The encryption algorithm used for the message content.","example":"AES-GCM-256"}},"description":"Encryption metadata for a CMK Hybrid encrypted chat message."}},"description":"The information about the chat message."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n * The provided \"to_contact\" or \"to_channel\" parameter is invalid. <br>\n**Error Code:** `300` <br>\n * Channel does not exist: $messageId \n* Must provide either \"contact\" or \"channel\" parameter. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $to_contact <br>\n**Error Code:** `4130` <br>\n Channel does not exist: $to_channel <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatMessage:Read"],"x-macro-scopes":["chat_message:read","chat_message:read:admin","chat_message:write","chat_message:write:admin"],"x-granular-scopes":["team_chat:read:user_message","team_chat:read:user_message:admin"]}},"put":{"tags":["Chat Messages"],"summary":"Update a message","description":"Edits a chat message that you previously sent to either a contact or a channel in Zoom. \n\nIt provides the ID of the message as the value of the `messageId` parameter. You can get the ID from the [List User's Chat Messages](https://developers.zoom.us/docs/api/rest/reference/chat/methods/#operation/getChatMessages) API. Additionally, as a query parameter, you must provide either the contact's **email address** of the contact or the **Channel ID** of the channel where the message was sent.\n\nFor user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter.\n\n**Note:** For an **account-level** [OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app), you can only use this API on behalf of a user who is assigned with a [role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management#:~:text=Each%20user%20in%20a%20Zoom,owner%2C%20administrator%2C%20or%20member.&amp;text=Role%2Dbased%20access%20control%20enables,needs%20to%20view%20or%20edit.) that has the **Edit** permission for **Chat Messages**.\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:write`,`chat_message:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:user_message`,`team_chat:update:user_message:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"editMessage","parameters":[{"name":"userId","in":"path","description":"The unique identifier of the user.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},{"name":"messageId","in":"path","description":"The unique identifier of the message.","required":true,"schema":{"type":"string","example":"8cfaf567-bf5a-4acc-b4f2-88b3d371aca5"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"The edited message.","example":"Hello there."},"to_channel":{"type":"string","description":"The channel ID where you sent the message. You must provide either this parameter or the `to_contact` parameter in the API request.","example":"825c9e31f1064c73b394c5e4557d3447"},"to_contact":{"description":"The email address, user ID, or member ID of the contact to whom the message was sent. You must provide either this parameter or the `to_channel` parameter in the API request.","oneOf":[{"type":"string","format":"email","example":"jchill@example.com"},{"type":"string","example":"zQmgS2TMSpGUOQcXyAHsyA"},{"type":"string","example":"za7AvP7o9AxypYwpaKYsOJ2K3VwXBZn4JtxgPGk8Lf7_1w"}]},"file_ids":{"maxItems":6,"type":"array","description":"A list of the file IDs to update. This field only accepts a maximum of six file IDs. If this field is empty, the files in the message will be cleared.","items":{"type":"string","example":"M87v-bbmRGKCtl8nGNggvA"}},"interactive_cards":{"type":"array","description":"A list of the interactive cards to update. The app calling this API must be the app to which the card belongs, otherwise the card cannot be created. This field only accepts a maximum of five interactive cards. If this field is empty, the interactive card in the message will be cleared.","items":{"description":"The `card_id` and `card_json` are both optional fields. `card_id` takes precedence if both are provided. If it's a `card_json`, we will create a new interactive card, and the corresponding `card_id` will also change.\n","oneOf":[{"type":"object","properties":{"card_id":{"type":"string","description":"The chat interactive card's unique ID. This ID only supports the `card_id` from the original message and cannot be used across different messages.","example":"xBvggqyjQUal6TecwMlYwQ"}}},{"type":"object","properties":{"card_json":{"type":"string","description":"The JSON string for the interactive card. Only successfully created cards will be sent. Failure to create a card will result in message delivery failure.","example":"{   \"content\": {     \"settings\": {       \"default_sidebar_color\": \"#0E72ED\",       \"is_split_sidebar\": false     }   } }"}}}]}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`  \n \nMessage updated successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Only the sender of this message can make updates.<br> <br>\n**Error Code:** `300` <br>\n Message does not exist: $messageId. <br> Must provide either contact or channel parameter.<br> <br>\n**Error Code:** `300` <br>\n A plain text message that is sent without any files is not allowed to update with the file. <br>\n**Error Code:** `5404` <br>\n File does not exist: $file_ids. <br>\n**Error Code:** `5045` <br>\n Failed to create interactive card. <br>\n**Error Code:** `5046` <br>\n Interactive Cards does not exist:  `$interactive_cards.card_id`. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $to_contact.<br> <br>\n**Error Code:** `4130` <br>\n Channel does not exist: $to_channel.<br> <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatMessage:Edit"],"x-macro-scopes":["chat_message:write","chat_message:write:admin"],"x-granular-scopes":["team_chat:update:user_message","team_chat:update:user_message:admin"]}},"delete":{"tags":["Chat Messages"],"summary":"Delete a message","description":"Deletes a chat message previously sent to a contact or a channel. For user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter. \n\n For an [account-level OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app), this API can only be used on behalf of a user who is assigned with a [role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management) that has the **Edit** permission for **Chat Messages**. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:write`,`chat_message:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:user_message`,`team_chat:delete:user_message:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `Medium`","operationId":"deleteChatMessage","parameters":[{"name":"userId","in":"path","description":"Unique identifier of the user.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},{"name":"messageId","in":"path","description":"Message ID: Unique Identifier of the message.","required":true,"schema":{"type":"string","example":"8cfaf567-bf5a-4acc-b4f2-88b3d371aca5"}},{"name":"to_contact","in":"query","description":"The member ID  or user ID or email address of a chat contact to whom the message was sent. You must provide this parameter or the `to_channel` parameter.","required":false,"schema":{"oneOf":[{"type":"string","format":"email","example":"jchill@example.com"},{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"},{"type":"string","example":"za7AvP7o9AxypYwpaKYsOJ2K3VwXBZn4JtxgPGk8Lf7_1w"}]}},{"name":"to_channel","in":"query","description":"The channel ID where the message was sent. You must provide this parameter or the `to_channel` parameter.","required":false,"schema":{"type":"string","example":"825c9e31f1064c73b394c5e4557d3447"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nMessage deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request\n\n**Error Code:** `200` <br>\n* The contact or the channel parameter provided is invalid. \n* Only the sender of this message can make updates.\n\n**Error Code:** `300` <br>\n* Channel does not exist: $messageId \n* You must provide the \"to_contact\" or the \"to_channel\" query parameter.\n\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found\n\n**Error Code:** `1001` <br>\nUser does not exist: $to_contact\n\n**Error Code:** `4130` <br>\nChannel does not exist: $to_channel\n\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_authorization":[]}],"x-extensions":{"x-macro-scopes":["chat_message:write","chat_message:write:admin"],"x-granular-scopes":["team_chat:delete:user_message","team_chat:delete:user_message:admin"]}}},"/chat/users/{userId}/messages/{messageId}/emoji_reactions":{"patch":{"tags":["Chat Messages"],"summary":"React to a chat message","description":"Adds or removes an emoji to a chat message.\n\nFor an **account-level** [OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app), this API can only be used on behalf of a user who is assigned with a [role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management#:~:text=Each%20user%20in%20a%20Zoom,owner%2C%20administrator%2C%20or%20member.&amp;text=Role%2Dbased%20access%20control%20enables,needs%20to%20view%20or%20edit.) that has the **Edit** permission for **Chat Messages**.\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:write`,`chat_message:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:message_emoji`,`team_chat:update:message_emoji:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"reactMessage","parameters":[{"name":"userId","in":"path","description":"The user's unique ID.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},{"name":"messageId","in":"path","description":"The message's unique ID.","required":true,"schema":{"type":"string","example":"8cfaf567-bf5a-4acc-b4f2-88b3d371aca5"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","description":"The action to perform with the message:\n* `add` &mdash; Add an emoji reaction.\n* `remove` &mdash; Remove an emoji reaction.","example":"remove","enum":["add","remove"]},"emoji":{"type":"string","description":"The emoji's unicode value, in `UTF-32` format. For more information, read the [Emojipedia](https://emojipedia.org/emoji-modifier-sequence/) documentation.","example":"U+1F600"},"to_channel":{"type":"string","description":"The channel's ID where you sent the message. You must provide either the `to_contact` or the `to_channel` parameter in the API request.\n\nTo get a channel's ID, use the [**List user's channels**](/docs/api-reference/chat/methods#operation/getChannels) API.","example":"825c9e31f1064c73b394c5e4557d3447"},"to_contact":{"description":"The email address or user ID or member ID of the contact to whom the message was sent. You must provide either the `to_contact` or the `to_channel` parameter in the API request. To get a channel's ID, use the [**List user's channels**](/docs/api-reference/chat/methods#operation/getChannels) API.","oneOf":[{"type":"string","format":"email","example":"jchill@example.com"},{"type":"string","example":"zQmgS2TMSpGUOQcXyAHsyA"},{"type":"string","example":"za7AvP7o9AxypYwpaKYsOJ2K3VwXBZn4JtxgPGk8Lf7_1w"}]},"custom_emoji":{"type":"boolean","description":"If set to true, you will need to provide the `custom_emoji_id` field.","example":false},"custom_emoji_id":{"type":"string","description":"The custom emoji file's ID where you react the message. \n\nTo get a custom emoji ID, use the [**List custom emojis**](https://developers.zoom.us/docs/api/team-chat/#tag/chat-emoji/GET/chat/emoji) API.","example":"mvaVolafRwSU2-9ag2b8pA"}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`  \n \nMessage reacted successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Message does not exist: $messageId <br> Must provide either contact or channel parameter. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $to_contact.<br> <br>\n**Error Code:** `4130` <br>\n Channel does not exist: $to_channel. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_message:write","chat_message:write:admin"],"x-granular-scopes":["team_chat:update:message_emoji","team_chat:update:message_emoji:admin"]}}},"/chat/users/{userId}/messages/{messageId}/status":{"patch":{"tags":["Chat Messages"],"summary":"Mark message read or unread","description":"Marks a chat message as read or unread. For user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter. \n\n**Note:** \n\nFor an [account-level OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app), this API can only be used on behalf of a [user assigned to a role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management) with the &quot;**Edit**&quot; permission for **Chat Messages**. \n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:write`,`chat_message:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:message_status`,`team_chat:update:message_status:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"markMessage","parameters":[{"name":"userId","in":"path","description":"The unique identifier of the user.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},{"name":"messageId","in":"path","description":"The unique identifier of the message.","required":true,"schema":{"type":"string","example":"8cfaf567-bf5a-4acc-b4f2-88b3d371aca5"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","description":"The values include   \n `read` or `unread`.","example":"read","enum":["read","unread"]},"timestamp":{"type":"integer","description":"The marking message's timestamp.","example":1581370790388},"to_channel":{"type":"string","description":"The channel ID of the channel where you sent the message.  \n You must provide either a `to_contact` or `to_channel` parameter in the API request.\n You can retrieve the Channel ID using the [**List user's channels**](/docs/api-reference/chat/methods#operation/getChannels) API.","example":"825c9e31f1064c73b394c5e4557d3447"},"to_contact":{"description":"The email address or user ID or member ID of the contact to whom the message was sent.  \n \nYou must provide either a `to_contact` or `to_channel` parameter in the API request.","oneOf":[{"type":"string","format":"email","example":"jchill@example.com"},{"type":"string","example":"zQmgS2TMSpGUOQcXyAHsyA"},{"type":"string","example":"za7AvP7o9AxypYwpaKYsOJ2K3VwXBZn4JtxgPGk8Lf7_1w"}]}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`  \n \nMessage marked successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Message does not exist: $messageId <br> Must provide either contact or channel parameter. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $to_contact.<br> <br>\n**Error Code:** `4130` <br>\n Channel does not exist: $to_channel. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_message:write","chat_message:write:admin"],"x-granular-scopes":["team_chat:update:message_status","team_chat:update:message_status:admin"]}}},"/chat/users/{userId}/messages/{messageId}/thread":{"get":{"tags":["Chat Messages"],"summary":"Retrieve a thread","description":"Retrieves all messages under a thread. For user-level apps, pass the `me` value instead of the `userId` parameter.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:read`,`chat_message:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:thread_message`,`team_chat:read:thread_message:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"retrieveThread","parameters":[{"name":"userId","in":"path","description":"The unique identifier of the user.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},{"name":"messageId","in":"path","description":"The unique identifier of the main message to retrieve.","required":true,"schema":{"type":"string","example":"8cfaf567-bf5a-4acc-b4f2-88b3d371aca5"}},{"name":"to_channel","in":"query","description":"The channel ID where you want to query thread messages. You must provide this parameter or the `to_contact` parameter.","required":false,"schema":{"type":"string","example":"0e3f7d76798f4991b11f8e1715887768"}},{"name":"to_contact","in":"query","description":"The user ID, member ID, or email address of a chat contact to whom the reminders you want to query. You must provide this parameter or the `to_channel` parameter.","required":false,"schema":{"type":"string","example":"example@example.com"}},{"name":"from","in":"query","description":"The start time of the reply. The format is `yyyy-MM-dd'T'HH:mm:ss'Z'`. ","required":true,"schema":{"type":"string","example":"2020-05-01T19:13:02Z"}},{"name":"to","in":"query","description":"The end time of the reply. The format is `yyyy-MM-dd'T'HH:mm:ss'Z'`. If this value is not passed, it is the current time by default.","required":false,"schema":{"type":"string","example":"2020-05-11T19:13:02Z"}},{"name":"limit","in":"query","description":"This field limits the number of replies returned. The maximum value is 100.","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer","example":30,"default":10}},{"name":"sort","in":"query","description":"This field can be designated as `desc` or `asc`, and is sorted by the reply time. If this parameter is `desc`, the latest reply message is at the top of the results.","required":false,"schema":{"type":"string","example":"desc","default":"desc","enum":["desc","asc"]}},{"name":"need_main_message","in":"query","description":"Whether the main message is needed. This parameter controls whether the content of the main message is included in the returned result. If false is passed, the messages array will only contain replies.","required":false,"schema":{"type":"boolean","example":true,"default":true}},{"name":"need_emoji","in":"query","description":"Whether the emoji is needed.","required":false,"schema":{"type":"boolean","example":false,"default":false}},{"name":"need_attachment","in":"query","description":"Whether the attachments are needed.","required":false,"schema":{"type":"boolean","example":true,"default":false}},{"name":"need_rich_text","in":"query","description":"Whether rich text is needed.","required":false,"schema":{"type":"boolean","example":false}},{"name":"need_at_items","in":"query","description":"Whether the @(at) items are needed.","required":false,"schema":{"type":"boolean","example":false}}],"responses":{"200":{"description":"The results of the retrieved information.","content":{"application/json":{"schema":{"required":["total"],"type":"object","properties":{"total":{"type":"integer","description":"The total number of replies.","example":5},"messages":{"type":"array","description":"The message's array.","items":{"required":["is_reply","message","msg_id","timestamp"],"type":"object","properties":{"msg_id":{"type":"string","description":"The unique ID of the message.","example":"{90111042-D5E4-7BB5-0F91-B0C9879A30B4}"},"message":{"type":"string","description":"The message content.","example":"Hello"},"is_reply":{"type":"boolean","description":"This message is a main message or a reply.","example":true},"timestamp":{"type":"integer","description":"The timestamp of this message.","format":"int64","example":1705051497817},"reactions":{"type":"array","description":"A list of emoji reactions.","items":{"type":"object","properties":{"emoji_id":{"type":"string","description":"The emoji's unicode value in UTF-32 format.","example":"U+1F600"},"count":{"type":"integer","description":"The number of this emoji.","example":2},"is_sender":{"type":"boolean","description":"Whether the user has sent this emoji.","example":true}},"description":"The emoji object."}},"last_reply_time":{"type":"integer","description":"The last reply's timestamp. This field only exists when the message is a main message.","format":"int64","example":1705051497817},"is_followed":{"type":"boolean","description":"Whether the user has followed this main message. This field only exists when the message is a main message","example":true},"files":{"type":"array","description":"The file's array. ","items":{"type":"object","properties":{"file_id":{"type":"string","description":" The file's unique ID.","example":"yXvggqyjCUal6TecwMlYwQ"},"file_name":{"type":"string","description":" The file's name and file extension.","example":"example.jpg"},"file_size":{"type":"integer","description":"The file's size in bytes.","example":3988},"download_url":{"type":"string","description":"The file's download URL.","example":"https://example.com/file/download/xBvggvyjQUal6TecwMlYwQ?filename=example.jpg&jwt=eyJhbGciOiJIUzI1NiJ9.eyJkaWciOiI3Yzg5YzBhYjIzYmZmMjdjNzE3NTQ4YzdjMTc0Njk3MWYzYjNmNjFjMzU5OTliNjE1ZjdjMWJmMzc5YTJiZThlIiwiYXVkIjoiZmlsZSIsImlzcyI6ImNyb3NzZmlsZSIsImV4cCI6MTY0ODI2NDY5N30.2fQxw3F1cEhvFJmnE2zPOdkHnbeZUktv_P0M--e-Tg8"}},"description":"The file's object."}},"sender_user_id":{"type":"string","description":"The message sender's user ID. This field is empty if the sender does not belong to the same account as the current user or is not the current user's contact.","example":"6dfgdfgdg444447b0egga"},"sender_email":{"type":"string","description":"The message sender's email address. This field is empty if the sender does not belong to the same account as the current user or is not the current user's contact.","example":"jchill@example.com"},"sender_member_id":{"type":"string","description":"The message sender's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"},"sender_display_name":{"type":"string","description":"The message sender's display name.","example":"Tom"},"rich_text":{"type":"array","description":"The [rich text formatting](https://support.zoom.us/hc/en-us/articles/115004789183-Replying-to-and-managing-chat-messages) information.","items":{"type":"object","properties":{"start_position":{"type":"integer","description":"The start position of the rich text in the message string.","example":0},"end_position":{"type":"integer","description":"The end position of the rich text.","example":5},"format_type":{"type":"string","description":"The type of rich text format.","example":"Paragraph","enum":["Bold","Italic","Strikethrough","BulletedList","NumberedList","Underline","FontSize","FontColor","BackgroundColor","LeftIndent","Paragraph","Quote","AddLink"]},"format_attr":{"type":"string","description":"The attribute values of a specific `format_type`:\n\n1.`FontSize`: `s` for small, `m` for medium, or `l` for large font sizes. \n\n2.`FontColor` and `BackgroundColor`: only supports RGB values. For example: `FFC0CB` \n\n3.`LeftIndent`: a positive pixel length.  \n\n4.`Paragraph`: `h1` for heading 1, `h2` for heading 2, or `h3` for heading 3. \n\n5.`AddLink`: must be a valid URL with an `http` or `https` prefix. For example: `https://example.com`","example":"h1"}}}},"at_items":{"type":"array","description":"The @ (at) items","items":{"type":"object","properties":{"at_contact":{"type":"string","description":"The contact's user ID. This field is empty if the contact does not belong to the same account as the current user.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"at_contact_member_id":{"type":"string","description":"The contact's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"},"at_type":{"type":"integer","description":"The type of mention. `1`: Contact. \n\n* `2`: Channel.","example":2,"enum":[1,2]},"end_position":{"type":"integer","description":"The end position of the mention.\n\nExample message: &quot;@Shrijana How are you?&quot;\nIn this case, the end position of the mention &quot;@Shrijana&quot; is 8. Hence, the value of this field is 8.","example":8},"start_position":{"type":"integer","description":"The start position of the mention(&quot;@&quot;) in the message string. \n\nFor example if you want to include the mention at the beginning of the message, the value for this field is 0. \n\nExample message: &quot;@Shrijana How are you?&quot;\n\n","example":0}}}},"bot_message":{"type":"object","description":"The chatbot's message in JSON format. For more information, see [Send, edit, and delete messages](https://developers.zoom.us/docs/team-chat-apps/send-edit-and-delete-messages/) in the *Team Chat apps* documentation."},"interactive_cards":{"maxItems":5,"type":"array","description":"The information about the chat interactive card.","items":{"type":"object","properties":{"card_id":{"type":"string","description":"The chat interactive card's unique ID.","example":"xBvggqyjQUal6TecwMlYwQ"},"card_json":{"type":"string","description":"The JSON string for the interactive card.","example":"{   \"content\": {     \"settings\": {       \"default_sidebar_color\": \"#0E72ED\",       \"is_split_sidebar\": false     }   } }"}}}},"message_type":{"type":"string","description":"The common type of messages that indicates which type of file to include. \n plain_text_message. \n jpg_image_file. \n audio_file. \n video_file. \n png_image_file. \n gif_file. \n giphy_file. \n code_snippet. \n file_and_text. \n others. ","example":"code_snippet","enum":["plain_text_message","jpg_image_file","audio_file","video_file","png_image_file","gif_file","giphy_file","code_snippet","file_and_text","others"]},"encryption_info":{"type":"object","properties":{"key_id":{"type":"string","description":"The key ID for retrieving the data key.","example":"ZXhhbXBsZS1rZXktaWQ="},"encrypt_context":{"type":"string","description":"The Base64-encoded encryption context for retrieving the data key.","example":"MTAwMSMjI0NTRTpUZWFtQ2hhdDpFeHRlcm5hbCMjIzcyYTdjOWI1YjFmNDQ1YjM4YWE5NWY0YzU2ODk3NTFjQGNvbmZlcmVuY2UueG1wcGRldi56b29tLnVz"},"encrypt_content":{"type":"string","description":"For encrypted messages, the encrypted payload corresponding to the message field. After decryption, it returns the plaintext message content.","example":"DPOGczEf1FKiIHmcuwAAAwAAABOU5fzpb5Hn8s6t9vzu3yC+dy4="},"encryption_algorithm":{"type":"string","description":"The encryption algorithm used for the message content.","example":"AES-GCM-256"}},"description":"Encryption metadata for a CMK Hybrid encrypted chat message."}},"description":"The message's object."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4231` <br>\n The 'limit' cannot exceed 100. <br>\n**Error Code:** `4232` <br>\n The `sort` can only be passed `asc` or `desc`. <br>\n**Error Code:** `4233` <br>\n The `from` cannot be blank. <br>\n**Error Code:** `4234` <br>\n The `to_channel` cannot be blank. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `403` <br>\n Authenticated user has not permitted access to the targeted resource. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4130` <br>\n Channel does not exist: $to_channel. <br>\n**Error Code:** `1001` <br>\n User does not exist: $userId. <br>\n**Error Code:** `4131` <br>\n Message does not exist: $messageId. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatMessage:Read"],"x-macro-scopes":["chat_message:read","chat_message:read:admin"],"x-granular-scopes":["team_chat:read:thread_message","team_chat:read:thread_message:admin"]}}},"/chat/migration/channels/{channelId}/members":{"post":{"tags":["Chat Migration"],"summary":"Migrate channel members","description":"Adds a maximum of 20 members to a migrated chat channel.\r\n\r\n**Note**: The use of this endpoint is **locked**.  We make it available upon request on a case by case basis. To unlock this endpoint, contact [Zoom Support](https://support.zoom.com/hc/en/contact?id=contact_us). \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_migration:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:migrate_channel_members:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"MigrateChannelMembers","parameters":[{"name":"channelId","in":"path","description":"The ID of the migrated channel.","required":true,"schema":{"type":"string","example":"649ad5f12f804cfea7dd7b1c1bb4c337"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["members"],"type":"object","properties":{"members":{"maxItems":20,"minItems":1,"uniqueItems":true,"type":"array","description":"The members to be added to the migrated channel.","items":{"required":["identifier"],"type":"object","properties":{"identifier":{"type":"string","description":"The user ID, member ID, or email of the member.","example":"qwwHGx5jSU2E1X46SLfGoA"},"role":{"type":"string","description":"The role of the channel member or admin","example":"admin","default":"member","enum":["member","admin"]}}}}}}}}},"responses":{"204":{"description":"**HTTP Status Code**: `204` **No Content**  \n Members are added to the migrated channel."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to add members to the migrated channel failed. <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"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `403` <br>\n No permission to access this channel. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4130` <br>\n Channel does not exist: $channelId. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_migration:write:admin"],"x-granular-scopes":["team_chat:write:migrate_channel_members:admin"]}}},"/chat/migration/channels/{channelId}/tabs":{"post":{"tags":["Chat Migration"],"summary":"Migrate a channel tab","description":"Migrate a web link tab to a Zoom Team Chat channel.\n\nAdds a web link as a tab to a migrated Zoom Team Chat channel, for example, an existing document from a productivity suite.\n\n**Requirements**\n\n* The target channel must already exist in the same account as a migrated channel.\n* The caller must be an owner or administrator of the target channel.\n\n**Usage**\n\nProvide the target channel ID and a display name for the tab. Zoom automatically generates the channel tab ID and handles all required migration fields.\n\n**Limitations**\n\n* Supports web link tabs only.\n* Does not create or configure permissions for productivity suite documents or Zoom Canvas.\n\n**Access**\n\nThis endpoint is locked by default and available upon request. To enable it for your account, contact [Zoom Support](https://support.zoom.com/hc/en/contact?id=contact_us).\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:migrate_channel_tab:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"MigrateAChannelTab","parameters":[{"name":"channelId","in":"path","description":"The unique identifier of the migrated Zoom Team Chat channel.","required":true,"schema":{"type":"string","example":"082cb34ad580452ca0bb65a8cb6554e3"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["name","web_link"],"type":"object","properties":{"name":{"maxLength":128,"minLength":1,"type":"string","description":"The display name of the migrated channel tab.","example":"Project OneNote"},"web_link":{"maxLength":2048,"pattern":"^https://.+","type":"string","description":"The HTTPS URL opened by the migrated channel tab.","format":"uri","example":"https://contoso.sharepoint.com/sites/project/Shared%20Documents/Forms/AllItems.aspx"}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201` <br>\n Created. The channel tab has been successfully migrated.\n\n","content":{"application/json":{"schema":{"required":["channel_id","tab_id"],"type":"object","properties":{"tab_id":{"type":"string","description":"The generated channel tab ID.","example":"FB6ECAF2-686C-4440-B9AE-B5E9392309EC"},"channel_id":{"type":"string","description":"The unique identifier of the migrated Zoom Team Chat channel.","example":"082cb34ad580452ca0bb65a8cb6554e3"},"name":{"type":"string","description":"The display name of the migrated channel tab.","example":"Project OneNote"},"web_link":{"type":"string","description":"The URL opened by the migrated channel tab.","example":"https://contoso.sharepoint.com/sites/project/Shared%20Documents/Forms/AllItems.aspx"}}}}}},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-granular-scopes":["team_chat:write:migrate_channel_tab:admin"]}},"delete":{"tags":["Chat Migration"],"summary":"Delete a channel tab","description":"Remove a web link tab from a Zoom Team Chat channel.\n\n  Removes a web link tab from a migrated Zoom Team Chat channel — for example, a\n  previously added document from a productivity suite.\n\n  Requirements\n  - The target channel must already exist in the same account as a migrated\n  channel.\n  - The caller must be an owner or administrator of the target channel.\n\n  Usage\n  Provide the target channel ID and the tab_id of the tab to remove. The tab_id is\n  the identifier Zoom returned when the tab was added. On success, the endpoint\n  returns 204 No Content with an empty response body.\n\n  Limitations\n  - Supports web link tabs only.\n  - Does not remove or modify the underlying productivity suite document or Zoom\n  Canvas — only the channel tab reference is removed.\n\n  Access\n  This endpoint is locked by default and available upon request. To enable it for\n  your account, contact [Zoom Support](https://support.zoom.com/hc/en/contact?id=contact_us).\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:channel_tab:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Deleteachanneltab","parameters":[{"name":"channelId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["tab_id"],"type":"object","properties":{"tab_id":{"type":"string","description":"The generated channel tab ID.","example":"FB6ECAF2-686C-4440-B9AE-B5E9392309EC"}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`  \n \nChannel tab deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to delete a channel tab failed. <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/rate-limits/). \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-granular-scopes":["team_chat:delete:channel_tab:admin"]}}},"/chat/migration/emoji_reactions":{"post":{"tags":["Chat Migration"],"summary":"Migrate chat message reactions","description":"Adds emoji reactions to a migrated chat message.\r\n\r\n**Note**: The use of this endpoint is **locked**.  We make it available upon request on a case by case basis. To unlock this endpoint, contact [Zoom Support](https://support.zoom.com/hc/en/contact?id=contact_us). \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_migration:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:migrate_chat_message_reactions:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"MigrateChatMessageReactions","requestBody":{"content":{"application/json":{"schema":{"required":["reactions"],"type":"object","properties":{"reactions":{"maxItems":5,"minItems":1,"type":"array","description":"You can migrate up to five different user's emojis at a time.","items":{"required":["emojis","message_id","message_timestamp"],"type":"object","properties":{"message_id":{"type":"string","description":"The message ID to which the reaction is being added.","format":"int64","example":"1679113305154"},"message_timestamp":{"type":"integer","description":"The timestamp of migrated messages on which emoji reactions are added.","format":"int64","example":1679113305154},"to_channel":{"type":"string","description":"The channel's ID where you sent the message. You must provide either the `to_contact` or the `to_channel` parameter in the API request. To get a channel's ID, use the [**List user's channels**](/docs/api-reference/chat/methods#operation/getChannels) API.","example":"825c9e31f1064c73b394c5e4557d3447"},"to_contact":{"description":"The email address, user ID, or member ID of the contact to whom the message was sent. You must provide either the `to_contact` or the `to_channel` parameter in the API request. To get a channel's ID, use the [**List user's channels**](/docs/api-reference/chat/methods#operation/getChannels) API.","oneOf":[{"type":"string","format":"email","example":"jchill@example.com"},{"type":"string","example":"zQmgS2TMSpGUOQcXyAHsyA"},{"type":"string","example":"za7AvP7o9AxypYwpaKYsOJ2K3VwXBZn4JtxgPGk8Lf7_1w"}]},"emojis":{"maxItems":10,"minItems":1,"type":"array","description":"The property list of emojis. A list of users' emoji reactions to the message.","items":{"required":["emoji","user_identifier"],"type":"object","properties":{"emoji":{"type":"string","description":"The UTF-32 format emoji reaction value.","example":"+U1F400"},"user_identifier":{"maxItems":10,"type":"array","description":"The users who set emoji reactions.","items":{"type":"string","description":"The user ID, member ID, or email of the user who sets the emoji reactions.","example":"649ad5f12f804cfea7dd7b1c1bb4c337"}}}}}}}}},"description":"The person who calls the API must have the `chat_message:edit` role."}}}},"responses":{"204":{"description":"**HTTP Status Code**: `204` **No Content**  \n Emoji reactions have been successfully added."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to add emoji reactions failed. <br>\n**Error Code:** `5401` <br>\n Message does not exist: $message_timestamp. <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"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `403` <br>\n No permission to access this channel or contact. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $userId. <br>\n**Error Code:** `4130` <br>\n Channel does not exist: $channelId. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_migration:write:admin"],"x-granular-scopes":["team_chat:write:migrate_chat_message_reactions:admin"]}}},"/chat/migration/mappings/channels":{"get":{"tags":["Chat Migration"],"summary":"Get migrated Zoom channel IDs","description":"Returns Zoom channel IDs by their corresponding migrated channel IDs. Currently, the API only returns mappings for conversations migrated with the Team Chat Migration app.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_migration:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:migrated_channels:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`\n\n**Not supported in Gov cluster** ","operationId":"getMigrationChannelsMapping","parameters":[{"name":"origin_platform","in":"query","description":"The chat platform that was migrated to Zoom. Right now, this API only accepts \"slack\".","required":true,"schema":{"type":"string","example":"slack","default":"slack","enum":["slack"]}},{"name":"origin_team_id","in":"query","description":"The migrated team ID. If the origin platform is Slack, this is the unique ID of the Slack workspace.","required":true,"schema":{"type":"string","example":"T04J811HXNH"}},{"name":"origin_channel_ids","in":"query","description":"The list of channel IDs migrated from the original platform. This cannot contain more than 20 IDs.","required":true,"schema":{"type":"string","example":"C04JDD2C6TE,C04JDD2C6TF,C04JDD2C6TG"}}],"responses":{"200":{"description":"**Status Code**: `200`   \n \nZoom Channel mappings returned","content":{"application/json":{"schema":{"type":"object","properties":{"mappings_found":{"type":"integer","description":"The amount of channel mappings found.","example":15},"mappings_not_found":{"type":"integer","description":"The amount of channel mappings not found.","example":5},"mappings":{"type":"array","description":"The array of mapping objects.","items":{"type":"object","properties":{"origin_channel_id":{"type":"string","description":"The provided origin channel ID.","example":"C04JDD2C6TE"},"zm_channel_id":{"type":"string","description":"The corresponding Zoom channel ID.","example":"8fec3fee90c3454ea5ad6be26f9b88f8"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  No permission to access Team Chat Channels. \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5801` <br>\n Migrated team ID does not exist. <br>\n**Error Code:** `1001` <br>\n User does not exist: $identifier. <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/rate-limits/). \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat_migration:read:admin"],"x-granular-scopes":["team_chat:read:migrated_channels:admin"]}}},"/chat/migration/mappings/users":{"get":{"tags":["Chat Migration"],"summary":"Get migrated Zoom user IDs","description":"Returns Zoom user IDs by their corresponding migrated user IDs. Currently, the API only returns mappings for users migrated with the Team Chat Migration app.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_migration:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:migrated_users:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"getMigrationUsersMapping","parameters":[{"name":"origin_platform","in":"query","description":"The chat platform that was migrated to Zoom. Right now, this API only accepts \"slack\".","required":true,"schema":{"type":"string","example":"slack","enum":["slack"]}},{"name":"origin_team_id","in":"query","description":"The migrated team ID. If the origin platform is Slack, this is the unique ID of the Slack workspace.","required":false,"schema":{"type":"string","example":"T04J811HXNH"}},{"name":"origin_user_ids","in":"query","description":"The list of user IDs migrated from the original platform. This cannot contain more than 20 IDs.","required":true,"schema":{"type":"string","example":"U04JDD2C6TE,U04JDD2C6TF,U04JDD2C6TG"}}],"responses":{"200":{"description":"**Status Code**: `200`   \n \nZoom user mappings returned","content":{"application/json":{"schema":{"type":"object","properties":{"mappings_found":{"type":"integer","description":"The amount of user mappings found.","example":15},"mappings_not_found":{"type":"integer","description":"The amount of user mappings not found.","example":5},"mappings":{"type":"array","description":"The array of mapping objects.","items":{"type":"object","properties":{"origin_user_id":{"type":"string","description":"The provided origin user ID.","example":"U04JDD2C6TE"},"zm_user_id":{"type":"string","description":"The corresponding Zoom user ID.","example":"mXzBVHPhSlKFoIk5NJOamA"}}}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  No permission to access Team Chat users. \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $identifier. <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/rate-limits/). \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_migration:read:admin"],"x-granular-scopes":["team_chat:read:migrated_users:admin"]}}},"/chat/migration/messages":{"post":{"tags":["Chat Migration"],"summary":"Migrate chat messages","description":"Adds a maximum of 20 messages to migrated 1:1 conversations or channels.\r\n\r\n**Note**: The use of this endpoint is **locked**.  We make it available upon request on a case by case basis. To unlock this endpoint, contact [Zoom Support](https://support.zoom.com/hc/en/contact?id=contact_us). \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_migration:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:migrate_chat_messages:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"MigrateChatMessages","requestBody":{"content":{"application/json":{"schema":{"required":["messages"],"type":"object","properties":{"messages":{"maxItems":20,"minItems":1,"uniqueItems":true,"type":"array","description":"The messages to be migrated. You can migrate up to 20 messages at a time.","items":{"required":["message","message_timestamp","sender"],"type":"object","properties":{"message_timestamp":{"type":"integer","description":"The message timestamp is the number of milliseconds that have elapsed since January 1, 1970 (midnight UTC), not counting leap seconds.  \n **Warning**: It must be unique per chat session.","format":"int64","example":1709830520000},"sender":{"type":"string","description":"The user ID, member ID, or email address of the message sender.","example":"649ad5f12f804cfea7dd7b1c1bb4c337"},"to_channel":{"type":"string","description":"The channel ID of the channel where you would like to send a message.","example":"825c9e31f1064c73b394c5e4557d3447"},"to_contact":{"description":"The email address, user ID, or member ID of the person you wish to send a message.","oneOf":[{"type":"string","format":"email","example":"jchill@example.com"},{"type":"string","example":"za7AvP7o9AxypYwpaKYsOJ2K3VwXBZn4JtxgPGk8Lf7_1w"},{"type":"string","example":"MbLtBAYYQUSqP64XySjfnQ"}]},"message":{"maxLength":4096,"type":"string","description":"The message content.","example":"Hello"},"file_ids":{"maxItems":6,"type":"array","description":"A list of the file IDs to send. This field only accepts a maximum of six file IDs. (`fileId` must be the sender who upload the file.)","items":{"type":"string","example":"M87v-bbmRGKCtl8nGNggvA"}},"reply_main_message_id":{"type":"string","description":"The unique ID of the main message in the thread. This field is required if the message is a reply message without the parent message in the same API call.","example":"27ED2949-6457-417C-83EA-72515DAF00BD"},"reply_main_message_timestamp":{"type":"integer","description":"The time (epoch time in milliseconds) at which the first or main message in the thread was originally sent. This field will be used to map when sending a parent message and thread message at the same API call.","format":"int64","example":1709312120000}}}}}}}}},"responses":{"201":{"description":"**Status Code:** `201`  \n \nMessage sent.","content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","description":"A list of unique identifiers of the `message_id`.","items":{"type":"string","description":"The unique identifier of the message.","example":"8cfaf567-bf5a-4acc-b4f2-88b3d371aca5"}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to add messages failed. <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"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `403` <br>\n No permission to access this channel or contact. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist. <br>\n**Error Code:** `4130` <br>\n Channel does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_migration:write:admin"],"x-granular-scopes":["team_chat:write:migrate_chat_messages:admin"]}}},"/chat/migration/spaces":{"post":{"tags":["Chat Migration"],"summary":"Migrate a shared space","description":"Migrates a shared space.\n\nThis endpoint creates the shared space's General channel internally and returns the General channel's ID in the `general_channel_id` response field. Use this ID when migrating messages that belong to the source platform's general channel.\n\n**Note:** The use of this endpoint is **locked**. We make it available upon request on a case-by-case basis. To unlock this endpoint, contact [Zoom Support](https://support.zoom.com/hc/en/contact?id=contact_us).\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_migration:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:migrate_shared_spaces:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"MigrateASharedSpace","requestBody":{"content":{"application/json":{"schema":{"required":["created_time","owner","space_name"],"type":"object","properties":{"owner":{"type":"string","description":"The user ID or member ID of the shared space owner being migrated.","example":"649ad5f12f804cfea7dd7b1c1bb4c337"},"space_name":{"maxLength":128,"minLength":1,"type":"string","description":"The name of the shared space being migrated.","example":"Slack Workspace"},"description":{"maxLength":500,"type":"string","description":"The description of the shared space being migrated.","example":"Migrated from Slack"},"created_time":{"type":"string","description":"The creation date and time of the migrated shared space.","format":"date-time","example":"2023-02-13T15:23:14.541Z"},"members":{"maxItems":20,"uniqueItems":true,"type":"array","description":"The list of members of the shared space being migrated. The maximum number of members is 20. The shared space owner should not be included.","items":{"required":["identifier"],"type":"object","properties":{"identifier":{"type":"string","description":"The user ID, member ID, or email of the shared space member.","example":"xyzHGx5jSU2E1X46SLfBbq"},"role":{"type":"string","description":"The role of the shared space member: `admin` or `member`.","example":"admin","default":"member","enum":["admin","member"]}}}},"space_options":{"type":"object","properties":{"is_public":{"type":"boolean","description":"Whether the migrated shared space is public.","example":false,"default":false},"allow_ext_users":{"type":"boolean","description":"Whether external users can be added to the migrated shared space.","example":true,"default":false},"ext_user_adder_role":{"type":"integer","description":"The role that can add external users to the migrated shared space. \n`0` - Owner or admin only. \n`1` - Any member. \n`2` - Same organization member.","example":1,"default":0,"enum":[0,1,2]},"can_member_add_members":{"type":"boolean","description":"Whether shared space members can add members.","example":true,"default":false},"can_member_add_items":{"type":"boolean","description":"Whether shared space members can add channels to the shared space.","example":true,"default":false}},"description":"The settings of the shared space being migrated."},"metadata":{"type":"object","additionalProperties":true,"description":"Additional metadata for the migrated shared space.","example":{"isSlackMigration":true,"extraInfo":{"initiator":"examplePayload","migrationDate":1604149200000}}}}}}}},"responses":{"201":{"description":"**Status Code**: `201` **Created**  \n The shared space has been successfully migrated.","content":{"application/json":{"schema":{"required":["general_channel_id","space_id"],"type":"object","properties":{"space_id":{"type":"string","description":"The shared space's unique identifier.","example":"df19b65f4f5a4f65a2e22b6f165c1b28"},"general_channel_id":{"type":"string","description":"The unique identifier of the shared space's General channel. Use this channel ID when migrating messages that belong to the source platform's general channel.","example":"5e0ba0274bc9457497ead53fc48cf38a"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to migrate a shared space failed. <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"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `403` <br>\n No permission to access this shared space. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $owner. <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/rate-limits/). \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_migration:write:admin"],"x-granular-scopes":["team_chat:write:migrate_shared_spaces:admin"]}}},"/chat/migration/users/{identifier}/channels":{"post":{"tags":["Chat Migration"],"summary":"Migrate a chat channel","description":"Migrates a chat channel.\r\n\r\n**Note**: The use of this endpoint is **locked**.  We make it available upon request on a case by case basis. To unlock this endpoint, contact [Zoom Support](https://support.zoom.com/hc/en/contact?id=contact_us). \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_migration:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:migrate_a_chat_channel:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"MigrateAChatChannel","parameters":[{"name":"identifier","in":"path","description":"The user ID or member ID of the owner of the chat channel being migrated.","required":true,"schema":{"type":"string","example":"649ad5f12f804cfea7dd7b1c1bb4c337"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["created_time","members","name","type"],"type":"object","properties":{"members":{"maxItems":20,"uniqueItems":true,"type":"array","description":"The list of members of the channel being migrated. \nThe maximum number of members is 20. \nThe channel owner should not be included.","items":{"required":["identifier"],"type":"object","properties":{"identifier":{"type":"string","description":"The user ID, member ID, or email of the channel member.","example":"xyzHGx5jSU2E1X46SLfBbq"},"role":{"type":"string","description":"The role of the channel member: `admin` or `member`.","example":"admin","default":"member","enum":["admin","member"]}}}},"type":{"type":"integer","description":"The type of the channel being migrated. \n\n`2` - Private channel. Members belong to a Zoom account. Members in this channel must be invited and must be from the same organization. \n`3` - Public channel. Anyone can search for this channel and join it. \n`4` - Group chat. An instant channel that can be created by adding members to a new chat.\n\nWhen `shared_space` is provided, only channel types `2` and `3` are supported.","example":2,"enum":[2,3,4]},"name":{"maxLength":128,"minLength":1,"type":"string","description":"The name of the channel being migrated.","example":"Developers"},"created_time":{"type":"string","description":"The creation date and time of the migrated channel.","format":"date-time","example":"2023-02-13T15:23:14.541Z"},"shared_space":{"required":["space_id"],"type":"object","properties":{"space_id":{"type":"string","description":"The shared space's unique identifier.","example":"df19b65f4f5a4f65a2e22b6f165c1b28"},"space_channel_type":{"type":"string","description":"The channel type inside the shared space. Use `private` for a private channel in the shared space, or `public_for_members` for a channel that is visible to shared space members.","example":"public_for_members","default":"private","enum":["private","public_for_members"]}},"description":"The migrated shared space to add this migrated channel to. The shared space must already exist in the same account before making this request. This field is only supported for migrated private and public channels."}}}}}},"responses":{"201":{"description":"**Status Code**: `201` **Created**  \n The chat channel has been successfully migrated.","content":{"application/json":{"schema":{"required":["id"],"type":"object","properties":{"id":{"type":"string","description":"The channel's unique identifier.","example":"649ad5f12f804cfea7dd7b1c1bb4c337"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to migrate a channel failed. <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"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `403` <br>\n No permission to access this channel. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $identifier. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat_migration:write:admin"],"x-granular-scopes":["team_chat:write:migrate_a_chat_channel:admin"]}}},"/chat/migration/users/{identifier}/events":{"post":{"tags":["Chat Migration"],"summary":"Migrate 1:1 conversation or channel operations","description":"Performs operations on migrated 1:1 conversations or channels. For now, the only supported operation is to star 1:1 conversations or channels.\r\n\r\n**Note**: By default, the use of this endpoint is **locked**. We make it available upon request on a case by case basis. To unlock this endpoint, contact [Zoom Support](https://support.zoom.com/hc/en/contact?id=contact_us). \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_migration:write:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"Migrate1:1ConversationOrChannelOperations","parameters":[{"name":"identifier","in":"path","description":"The user ID or member ID of the user who is a member of migrated 1:1 conversations or channels.","required":true,"schema":{"type":"string","example":"649ad5f12f804cfea7dd7b1c1bb4c337"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["method","params"],"type":"object","properties":{"method":{"type":"string","description":"The operation method to perform. Currently the only supported operation method is `star`.  \n * `star` &mdash; Star the chat sessions.","example":"star","enum":["star"]},"params":{"maxItems":10,"minItems":1,"type":"array","description":"The list of chat sessions on which operations to be performed. Currently you can only list one session.","items":{"required":["target_id","target_type"],"type":"object","properties":{"target_id":{"type":"string","description":"The chat channel's ID, the contact user's ID, the contact user's member ID, or the contact user's email.","example":"825c9e31f1064c73b394c5e4557d3447"},"target_type":{"type":"string","description":"The type of operation. \n* `channel` &mdash; Perform operations on a channel. When using `channel`, the `target_id` refers to chat channel's ID. \n* `contact` &mdash; Perform operations on a contact. When using `contact`, the `target_id` refers to the contact user's ID, member ID or email.","example":"channel","enum":["channel","contact"]}}}}}}}}},"responses":{"204":{"description":"**HTTP Status Code**: `204` **No Content**  \n Sessions have been successfully starred."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to star sessions failed. <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"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `403` <br>\n No permission to access this channel. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $identifier. <br>\n**Error Code:** `4130` <br>\n Channel does not exist: $channelId. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_migration:write:admin"]}}},"/chat/messages/{messageId}/reminder":{"post":{"tags":["Chat Reminder"],"summary":"Create a reminder message","description":"Creates a reminder for a person or a chat channel. \n\nYou must provide one of the following query parameters:\n`to_contact` — The email address of the Zoom contact to whom you want to set the reminder.\n`to_channel` — The ID of the Zoom channel where you set the reminder.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:write`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:reminder`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"createReminderForMessage","parameters":[{"name":"messageId","in":"path","description":"The unique identifier of the message.","required":true,"schema":{"type":"string","example":"8cfaf567-bf5a-4acc-b4f2-88b3d371aca5"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"to_contact":{"type":"string","description":"The email address of the Zoom contact to whom you set the reminder.","example":"test@example.com"},"to_channel":{"type":"string","description":"The ID of the Zoom channel where you set the reminder.","example":"cd102f7602c6428db0a273e632eb020B"},"remind_time":{"type":"string","description":"The message reminder time in yyyy-MM-dd'T'HH:mm:ss'Z' format to remind the user. It should be greater than the current time, and no later than 90 days later.\n\nOnly one parameter needs to be passed in `remind_time` and `delay_seconds`.\n","format":"date-time","example":"2024-02-10T21:39:50Z"},"delay_seconds":{"maximum":7776000,"minimum":300,"type":"integer","description":" This field enables you to delay a notification reminder by seconds. \n \n For example, if the user calls this API to add a reminder at 2024-01-15T09:28:30Z , and the `delay_seconds` is set as 300 seconds, then the user will receive the notification at 2024-01-15T09:33:30Z.\n\nOnly one parameter needs to be passed in `remind_time` and `delay_seconds`.","example":1800},"reminder_note":{"type":"string","description":"The note of the reminder.","example":"Reminder Note"}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204` <br> Created successfully.  "},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4100` <br>\n The provided `to_contact` or `to_channel` parameter is invalid. <br>\n**Error Code:** `4101` <br>\n `delay_seconds` can only be between 300 and 7776000. <br>\n**Error Code:** `4102` <br>\n One parameter from `to_contact` and `to_channel` must be passed. <br>\n**Error Code:** `4103` <br>\n One parameter from `remind_time` and `delay_seconds` must be passed. <br>\n**Error Code:** `4104` <br>\n `messageId` cannot be blank. <br>\n**Error Code:** `4105` <br>\n `remind_time` should be greater than the current time, and the latest is 90 days later. <br>\n**Error Code:** `4106` <br>\n The `remind_time` must follow the format: yyyy-MM-dd'T'HH:mm:ss'Z'. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4200` <br>\n Message does not exist: $messageId. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_message:write"],"x-granular-scopes":["team_chat:write:reminder"]}},"delete":{"tags":["Chat Reminder"],"summary":"Delete a reminder for a message","description":"Deletes a reminder. \nYou must provide one of the following query parameters:\n- `to_contact` — The email address of the Zoom contact that you want to delete the reminder.\n- `to_channel` — The ID of the Zoom channel where you want to delete the reminder.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:write`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:reminder`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteReminderForMessage","parameters":[{"name":"messageId","in":"path","description":"The unique identifier of the message.","required":true,"schema":{"type":"string","example":"8cfaf567-bf5a-4acc-b4f2-88b3d371aca5"}},{"name":"to_contact","in":"query","description":"The email address of the Zoom contact to whom you want to delete reminder.","required":false,"schema":{"type":"string","example":"test@example.com"}},{"name":"to_channel","in":"query","description":"The ID of the Zoom channel where you want to delete the reminder.","required":false,"schema":{"type":"string","example":"cd102f7602c6428db0a273e632eb020B"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204` <br> Request successful.  "},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4100` <br>\n The provided \"to_contact\" or \"to_channel\" parameter is invalid. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4200` <br>\n Message does not exist: $messageId. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_message:write"],"x-granular-scopes":["team_chat:delete:reminder"]}}},"/chat/reminder":{"get":{"tags":["Chat Reminder"],"summary":"List reminders","description":"Returns a list reminders for a person or a chat channel.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:read`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_reminders`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listReminders","parameters":[{"name":"to_contact","in":"query","description":"The email address of the Zoom contact to whom you want to query reminders. \n If neither `to_channel` nor `to_contact` is passed, all reminders in channels and 1:1 chat will be queried.","required":false,"schema":{"type":"string","example":"test@example.com"}},{"name":"to_channel","in":"query","description":"The ID of the Zoom channel where you want to query reminders. \n If neither `to_channel` nor `to_contact` is passed, all reminders in channels and 1:1 chat will be queried.","required":false,"schema":{"type":"string","example":"cd102f7602c6428db0a273e632eb020B"}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned per page in a single API call.","required":false,"schema":{"maximum":20,"minimum":1,"type":"integer","example":10,"default":10}}],"responses":{"200":{"description":"**HTTP Status Code:**`200`   The list of reminders returned.","content":{"application/json":{"schema":{"required":["next_page_token","reminders"],"type":"object","properties":{"next_page_token":{"type":"string","description":" The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.\n When querying to the last page, next_page_token will be \"\".","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"reminders":{"type":"array","description":"The reminder list.","items":{"required":["content","create_time","message_id","message_timestamp","remind_time","reminder_note"],"type":"object","properties":{"reminder_note":{"type":"string","description":"The note of the reminder.","example":"Hello"},"content":{"type":"string","description":"The content of the message to be reminded.","example":"Good"},"message_timestamp":{"type":"integer","description":"The timestamp of the message. ","format":"int64","example":1707182642932},"create_time":{"type":"string","description":"The time when the reminder was created.","format":"date-time","example":"2024-02-10T21:39:50Z"},"remind_time":{"type":"string","description":"The reminder's notification time.","format":"date-time","example":"2024-02-10T21:39:50Z"},"message_id":{"type":"string","description":"The unique ID of the message.","example":"8cfaf567-bf5a-4acc-b4f2-88b3d371aca5"},"main_message_id":{"type":"string","description":"The unique ID of the main message. This field will only be returned if the message is not the main message.","example":"8cfaf567-bf5a-4acc-b4f2-88b3d371aca5"},"main_message_timestamp":{"type":"integer","description":"The timestamp of the main message. This field will only be returned if the message is not the main message.","format":"int64","example":1707182642932}}}}},"description":"The result of the array."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4100` <br>\n The provided \"to_contact\" or \"to_channel\" parameter is invalid. <br>\n**Error Code:** `4101` <br>\n The `page_size` parameter is illegal. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_message:read"],"x-granular-scopes":["team_chat:read:list_reminders"]}}},"/chat/users/{userId}/events":{"patch":{"tags":["Chat Sessions"],"summary":"Star or unstar a channel or contact user","description":"Stars or unstars a contact or channel user. For user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter.\n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_event:write:admin`,`chat_event:write`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:chat_control`,`team_chat:update:chat_control:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"starUnstarChannelContact","parameters":[{"name":"userId","in":"path","description":"The user's ID.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["method","params"],"type":"object","properties":{"method":{"type":"string","description":"The method to perform: \n* `star` &mdash; Star the contact or channel. \n* `unstar` &mdash; Unstar the contact or channel.","example":"star","enum":["star","unstar"]},"params":{"required":["target_id","target_type"],"type":"object","properties":{"target_id":{"type":"string","description":"The chat channel's ID, the contact user's ID, or the channel member's member ID. ","example":"825c9e31f1064c73b394c5e4557d3447"},"target_type":{"type":"string","description":"The type of operation. \n* `channel` &mdash; Perform operations on a channel. When using `channel`, the `target_id` refers to chat channel's ID. \n* `contact` &mdash; Perform operations on a contact. When using `contact`, the `target_id` refers to the contact user's ID or the contact user's member ID.","example":"channel","enum":["channel","contact"]}}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`\nStar/Unstar executed successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to access this user's channel information. <br> <br>\n**Error Code:** `5301` <br>\n Star/Unstar execution failed. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4130` <br>\n Channel does not exist: $target_id. <br> <br>\n**Error Code:** `1001` <br>\n User does not exist: $target_id or $userId. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_event:write:admin","chat_event:write"],"x-granular-scopes":["team_chat:update:chat_control","team_chat:update:chat_control:admin"]}}},"/chat/users/{userId}/sessions":{"get":{"tags":["Chat Sessions"],"summary":"List a user's chat sessions","description":"Retrieves a user's chat sessions. For user-level apps, pass [the `me` value](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#mekeyword) instead of the `userId` parameter. \n\n**Note:** For an **account-level** [OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app), you can only use this API on behalf of a user who is assigned a [role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management#:~:text=Each%20user%20in%20a%20Zoom,owner%2C%20administrator%2C%20or%20member.&amp;text=Role%2Dbased%20access%20control%20enables,needs%20to%20view%20or%20edit.) that has the **View** or **Edit** permission for **Chat Messages**.\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_message:read`,`chat_message:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_user_sessions`,`team_chat:read:list_user_sessions:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getChatSessions","parameters":[{"name":"userId","in":"path","description":"The user ID of the sessions being queried.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},{"name":"type","in":"query","description":"The session queried by the chat type. The API only returns sessions of which the user is a member and of the specified chat `type`. \n\n**Note:** \n* If no `type` is provided, the response contains both group and 1:1 chats.","required":false,"schema":{"type":"string","example":"1:1","enum":["1:1","groupchat"]}},{"name":"search_star","in":"query","description":"This field searches for starred groupchat and 1:1 chats.\n\n**Note:** \n* If `search_star` is provided, `type` parameter is allowed.\n* Support only user-level apps, you can pass the me value or your own userId parameter.","required":false,"schema":{"type":"boolean","example":true}},{"name":"page_size","in":"query","description":"The number of records returned with a single API call. ","required":false,"schema":{"maximum":50,"type":"integer","example":10,"default":10}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"from","in":"query","description":"The query start date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format. This value defaults to the start time of today.\n\n**Note:** \n* If `search_star` is provided, `from` parameter is not allowed.","required":false,"schema":{"type":"string","format":"date-time","example":"2020-02-10T21:39:50Z"}},{"name":"to","in":"query","description":"The query end date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format. This value defaults to the end time of today.\n\n**Note:** \n* If `search_star` is provided, `to` parameter is not allowed.","required":false,"schema":{"type":"string","format":"date-time","example":"2020-02-15T12:00:00Z"}}],"responses":{"200":{"description":"**HTTP Status Code:**`200`  \n \nThe list of chat sessions returned.","content":{"application/json":{"schema":{"description":"The chat session information.","oneOf":[{"title":"search_by_type_timeframe","required":["from","next_page_token","page_size","sessions","to"],"type":"object","properties":{"from":{"type":"string","description":"The queried start date.","format":"date-time","example":"2020-02-10T21:39:50Z"},"to":{"type":"string","description":"The queried end date.","format":"date-time","example":"2020-02-11T21:39:50Z"},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.\n","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"type":"integer","description":"The number of records returned within a single API call.","example":10},"sessions":{"type":"array","description":"The information about the user's chat sessions.","items":{"required":["last_message_sent_time","name","type"],"type":"object","properties":{"channel_id":{"type":"string","description":"The channel ID of the chat session if the chat session type is `groupchat`.","example":"ayxzxi9ttyau5lskqorl1w3rtl1y5ssri"},"last_message_sent_time":{"type":"string","description":"The date and time when the last message was sent in the session.","format":"date-time","example":"2022-09-10T21:39:50Z"},"name":{"type":"string","description":"The name of the session if the chat session type is `groupchat`. It can also be the peer contact email address if the chat session type is `1:1`.","example":"xBvggqyjQUal6TecwMlYwQ"},"type":{"type":"string","description":"The chat session type: `groupchat` or `1:1`.","example":"1:1"},"peer_contact_email":{"type":"string","description":"The email address of the peer contact of the conversation if the chat session type is `1:1`.","format":"email","example":"chat-friend1@example.com"},"peer_contact_user_id":{"type":"string","description":"The user ID of the peer contact of the conversation if the chat session type is `1:1`.<br> If the user ID does not belong to the same account as the current user, this field is empty.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"peer_contact_member_id":{"type":"string","description":"The member ID of the peer contact of the conversation if the chat session type is `1:1`.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"}}}}},"description":"The chat session information filter by type or timeframe."},{"title":"search_by_type_star","required":["next_page_token","page_size","sessions"],"type":"object","properties":{"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.\n","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"type":"integer","description":"The number of records returned within a single API call.","example":10},"sessions":{"type":"array","description":"The information about the user's starred chat sessions.","items":{"required":["name","type"],"type":"object","properties":{"channel_id":{"type":"string","description":"The channel ID of the chat session if the chat session type is `groupchat`.","example":"ayxzxi9ttyau5lskqorl1w3rtl1y5ssri"},"name":{"type":"string","description":"The name of the session if the chat session type is `groupchat`. It's also the peer contact email address if the chat session type is `1:1`.","example":"xBvggqyjQUal6TecwMlYwQ"},"type":{"type":"string","description":"The chat session type: `groupchat` or `1:1`.","example":"1:1"},"peer_contact_email":{"type":"string","description":"The email address of the peer contact of the conversation if the chat session type is `1:1`.","format":"email","example":"chat-friend1@example.com"},"peer_contact_user_id":{"type":"string","description":"The user ID of the peer contact of the conversation if the chat session type is `1:1`.<br> If the user ID does not belong to the same account as the current user, this field is empty.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"peer_contact_member_id":{"type":"string","description":"The member ID of the peer contact of the conversation if the chat session type is `1:1`.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"}}}}},"description":"The starred chat session information."}]}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The next page token is invalid or expired.<br> <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to access this user's chat sessions.<br> <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $userId.<br>\nUnknown session type. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatMessage:Read"],"x-macro-scopes":["chat_message:read","chat_message:read:admin"],"x-granular-scopes":["team_chat:read:list_user_sessions","team_chat:read:list_user_sessions:admin"]}}},"/chat/users/me/contacts":{"get":{"tags":["Contacts"],"summary":"List user's contacts","description":"Lists all the contacts of a Zoom user. Zoom categorizes contacts into **company contacts** and **external contacts**. You must specify the contact type in the `type` query parameter. If you do not specify, by default, the type is set as company contact. A user under an organization's Zoom account has internal users listed under **company contacts** in the Zoom Client. A Zoom user can also add another Zoom user as a [contact](https://support.zoom.us/hc/en-us/articles/115004055706-Managing-Contacts).\n\n**Note:** This API only supports **user-managed** [OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app).\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_contact:read`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_contacts`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getUserContacts","parameters":[{"name":"type","in":"query","description":"The type of contact. The value can be one of the following:\n`company`: Contacts from the user's organization.\n`external`: External contacts. ","required":false,"schema":{"type":"string","example":"company","default":"company"}},{"name":"page_size","in":"query","description":"The number of records returned with a single API call.","required":false,"schema":{"maximum":50,"type":"integer","example":10,"default":10}},{"name":"next_page_token","in":"query","description":"The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  \n List of user's contacts returned.","content":{"application/json":{"schema":{"type":"object","properties":{"contacts":{"type":"array","description":"The contacts object.","items":{"type":"object","properties":{"email":{"type":"string","description":"Contact's email address.","format":"email","example":"jchill@example.com"},"first_name":{"type":"string","description":"Contact's first name.","example":"Jill"},"id":{"type":"string","description":"The contact's user ID. If the user ID does not belong to the same account as the current user, this field will be empty.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"member_id":{"type":"string","description":"The contact's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"},"last_name":{"type":"string","description":"Contact's last name.","example":"Chill"}}}},"next_page_token":{"type":"string","description":"The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":1000,"type":"integer","description":"The number of records returned with a single API call.","example":10,"default":10}}}}}},"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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_contact:read"],"x-granular-scopes":["team_chat:read:list_contacts"]}}},"/chat/users/me/contacts/{identifier}":{"get":{"tags":["Contacts"],"summary":"Get user's contact details","description":"Returns information on a specific contact of the Zoom user. \n\nA user under an organization's Zoom account has internal users listed under Company Contacts in the Zoom Client. \n\nA Zoom user can also add another Zoom user as a [contact](https://support.zoom.us/hc/en-us/articles/115004055706-Managing-Contacts). \n\n**Note:** This API only supports **user-managed** [OAuth app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app).\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_contact:read`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:contact`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getUserContact","parameters":[{"name":"identifier","in":"path","description":"The contact's user ID, email address, or member ID. The contact can be either a company contact or an external contact.","required":true,"schema":{"type":"string","example":"jchill@example.com"}},{"name":"query_presence_status","in":"query","description":"The presence status of the contact. \nInclude this query parameter with a value of `true` to get the status of the contact in the response.","required":false,"schema":{"type":"boolean","example":true}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  \n \nContact information returned.\n\n\n","content":{"application/json":{"schema":{"type":"object","properties":{"direct_numbers":{"type":"array","description":"A list of direct numbers assigned to the contact.","items":{"type":"string","example":"111111"}},"email":{"type":"string","description":"The contact's email address.","format":"email","example":"jchill@example.com"},"extension_number":{"type":"string","description":"The extension number of the contact.","example":"31"},"first_name":{"type":"string","description":"The contact's first name","example":"Jill"},"id":{"type":"string","description":"The contact's user ID. If the user ID does not belong to the same account as the current user, this field will be empty.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"member_id":{"type":"string","description":"The contact's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"},"last_name":{"type":"string","description":"The contact's last name.","example":"Chill"},"phone_number":{"type":"string","description":"The phone number of the contact.","example":"5550100"},"phone_numbers":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"The phone number's country code. For example, the country code for phone numbers in the United States is `+1`.","example":"+1"},"country":{"type":"string","description":"The phone number's [country ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries). For example, if the phone number provided in the `number` field is a Brazil-based number, the value is `BR`.","example":"US"},"label":{"type":"string","description":"The phone number's label:\n* `Mobile`\n* `Office`\n* `Home`\n * `Fax`","example":"Mobile","enum":["Mobile","Office","Home","Fax"]},"number":{"type":"string","description":"The user's phone number.","example":"5550100"},"verified":{"type":"boolean","description":"Whether Zoom has verified the phone number.","example":true}}}},"presence_status":{"type":"string","description":"The contact's presence status in the Zoom Chat client. The status can be one of the following:   \n  `Do_Not_Disturb`  \n  `Away`  \n  `Available`  \n  `Offline`  \n  `In_A_Meeting`  \n  `In_A_Call`  \n  `In_A_Calendar_Event`  \n  `Presenting`  \n  `Out_of_Office`  \n  `Busy`","example":"Available","enum":["Do_Not_Disturb","Away","Available","Offline","In_A_Meeting","In_A_Call","In_A_Calendar_Event","Presenting","Out_of_Office","Busy"]}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to get the presence status of the chat contact failed. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $contactId <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat_contact:read"],"x-granular-scopes":["team_chat:read:contact"]}}},"/contacts":{"get":{"tags":["Contacts"],"summary":"Search company contacts","description":"Searches for users that are in the company contacts of a Zoom account. \n\nA user under an organization's Zoom account has internal users listed under Company Contacts in the Zoom Client. \n\nWhen using the `search_key` query parameter, provide either the first name, last name, or the email address of the user that you would like to search. \n\nOptionally, set `query_presence_status` to `true` to include the presence status of a contact.   \n   \n \n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact:read:admin`,`contact:read`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact:read:list_contacts`,`contact:read:list_contacts:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"searchCompanyContacts","parameters":[{"name":"search_key","in":"query","description":"This field enables you to provide the keyword - first name, last name or email address - of the contact you're searching.","required":false,"schema":{"type":"string","example":"jchill@example.com"}},{"name":"query_presence_status","in":"query","description":"This field sets `query_presence_status` to `true` to include the presence status of a contact in the response.","required":false,"schema":{"type":"boolean","example":true}},{"name":"page_size","in":"query","description":"The number of records to be returned with a single API call.","required":false,"schema":{"maximum":300,"type":"integer","example":20,"default":10}},{"name":"contact_types","in":"query","description":"A comma-separated list of the type of user contact to query: \n* `1` &mdash; A Zoom user. \n* `2` &mdash; An auto receptionist. \n* `3` &mdash; A common area phone. \n* `4` &mdash; A call queue. \n* `5` &mdash; A shared line group. \n* `6` &mdash; A shared global directory. \n* `7` &mdash; A shared office contact. \n* `8` &mdash; A Zoom Room.\n\n**Note:** \n* You must have a [phone management role with the &quot;**View**&quot; permission](https://support.zoom.us/hc/en-us/articles/360042099012-Using-Zoom-Phone-role-management) to query the `2`, `3`, `4`, `5`, and `7` values. ","required":false,"schema":{"type":"integer","example":1,"default":1}},{"name":"user_status","in":"query","description":"The Zoom user's status: \n* `active` &mdash; The user exists on the account. \n* `inactive` &mdash; The user has been deactivated. \n\nThis value only works if the `contact_types` field is `1`. ","required":false,"schema":{"type":"string","example":"active","enum":["active","inactive"]}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  \n \nContact returned successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"contacts":{"type":"array","description":"The array of contacts that match the search criteria. Each item contains the full profile information for a single contact (user, auto-receptionist, phone, queue, etc.).","items":{"type":"object","properties":{"contact_type":{"type":"integer","description":"The user's contact type: \n* `1` &mdash; A Zoom user. \n* `2` &mdash; An auto receptionist. \n* `3` &mdash; A common area phone. \n* `4` &mdash; A call queue. \n * `5` &mdash; A shared line group. \n* `6` &mdash; A shared global directory. \n* `7` &mdash; A shared office contact. \n* `8` &mdash; A ZOOM Room.","example":1,"enum":[1,2,3,4,5,6,7,8]},"dept":{"type":"string","description":"The department of the contact as provided in the user's Zoom profile.","example":"Developer"},"direct_numbers":{"type":"array","description":"The direct number(s) of a user who has Zoom Phone license assigned.","items":{"type":"string","example":"+1111111"}},"email":{"type":"string","description":"The email address of the contact.","example":"jchill@example.com"},"extension_number":{"type":"string","description":"The extension number of a user who has Zoom Phone license assigned.","example":"31"},"display_name":{"type":"string","description":"The contact's display name.","example":"Jill Chill"},"first_name":{"type":"string","description":"The first name of the contact.","example":"Jill"},"id":{"type":"string","description":"The contact's user ID. If the user ID does not belong to the same account as the current user, this field will be empty.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"member_id":{"type":"string","description":"The member ID of the contact.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"},"im_group_id":{"type":"string","description":"The unique identifier of the [IM directory group](https://support.zoom.us/hc/en-us/articles/203749815-IM-Management) where the user has been added. The IM Directory group is not the same as a channel. The IM Directory allows administrators to assign users in their account to groups that display in the Contacts list on Zoom clients. ","example":"8jUIm-825c9e31f1064c73b394c5e4557d3447"},"im_group_name":{"type":"string","description":"The name of the [IM directory group](https://support.zoom.us/hc/en-us/articles/203749815-IM-Management) where the user has been added. The IM Directory group is not the same as a channel. The IM Directory allows administrators to assign users in their account to groups that display in the Contacts list on Zoom clients. ","example":"Developers"},"job_title":{"type":"string","description":"The department of the user as provided in the user's Zoom profile.","example":"Developer"},"last_name":{"type":"string","description":"The last name of the contact.","example":"Chill"},"location":{"type":"string","description":"The location of the user from the user's Zoom profile.","example":"San Jose"},"phone_number":{"type":"string","description":"The phone number of the user.","example":"5550100"},"phone_numbers":{"type":"array","description":"The phone number(s) for the contact.","items":{"type":"object","properties":{"code":{"type":"string","description":"The phone number's country code. For example, the country code for phone numbers in the  United States is `+1`.","example":"+1"},"country":{"type":"string","description":"The phone number's [country ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries). For example, if the phone number provided in the `number` field is a Brazil-based number, the value is `BR`.","example":"US"},"label":{"type":"string","description":"The phone number's label:\n* `Mobile`\n* `Office`\n* `Home`\n * `Fax`","example":"Mobile","enum":["Mobile","Office","Home","Fax"]},"number":{"type":"string","description":"The user's phone number.","example":"5550100"},"verified":{"type":"boolean","description":"Whether Zoom has verified the phone number.","example":true}}}},"presence_status":{"type":"string","description":"The contact's presence status in the Zoom Chat Client. The status can be one of the following:   \n  `Do_Not_Disturb`  \n  `Away`  \n  `Available`  \n  `Offline`  \n  `In_A_Meeting`  \n  `In_A_Call`  \n  `In_A_Calendar_Event`  \n  `Presenting`  \n  `Out_of_Office`  \n  `Busy`","example":"Available","enum":["Do_Not_Disturb","Away","Available","Offline","In_A_Meeting","In_A_Call","In_A_Calendar_Event","Presenting","Out_of_Office","Busy"]},"user_status":{"type":"string","description":"The user's status: \n* `active` &mdash; An active user. \n* `inactive` &mdash; A deactivated user. \n\nThis field only returns if the `contact_types` field is `1` (Zoom user)","example":"active","enum":["active","inactive"]},"activity":{"type":"string","description":"The contact's activity status in the Zoom client. This field only returns if the `contact_types` field is `4` (call queue): \n* `Active` \n* `Inactive` \n* `Unknown`","example":"Active","enum":["Active","Inactive","Unknown"]},"sip_phone_number":{"type":"string","description":"The Session Initiation Protocol (SIP) phone number of the user. It returns only if the user has SIP phone enabled.","example":"11111111"},"sip_uri":{"type":"string","description":"The contact's Session Initiation Protocol (SIP) URI.","example":"example.com"},"pronoun":{"type":"string","description":"The preferred pronouns to display on your Zoom profile, visible to contacts and optionally in meetings. **[Learn more](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0066454)**","example":"She"}}}},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"maximum":25,"type":"integer","description":"The number of records returned with a single API call. Default value is `1`.","example":10}}}}}},"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_authorization":[]}],"x-extensions":{"x-permissions":["User:Read"],"x-macro-scopes":["contact:read:admin","contact:read"],"x-granular-scopes":["contact:read:list_contacts","contact:read:list_contacts:admin"]}}},"/im/users/me/chat/messages":{"post":{"tags":["IM Chat"],"summary":"Send IM messages","description":"Sends the chat message to a user.\n\n**Note:** This API only supports OAuth 2.0.\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `imchat:write`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"sendimmessages","parameters":[{"name":"chat_user","in":"query","description":"The email address (registered with Zoom) or the userId of the chat user.","required":false,"schema":{"type":"string","example":"jchill@example.com"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"The IM message content.","example":"hello, world!"}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`  \n \nMessage Sent.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The IM message UUID.","format":"uuid","example":"7caca3b3-5156-4496-9ec4-7f92e3ca83f2"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid parameter: channel/chat_user. <br>\n**Error Code:** `5301` <br>\n Message sending failed. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["imchat:write"]}}},"/im/groups":{"get":{"tags":["IM Groups"],"summary":"List IM directory groups","description":"Lists [IM directory groups](https://support.zoom.us/hc/en-us/articles/203749815-IM-Management).  \n   \n \n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `imgroup:read:admin`,`imgroup:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_group:read:list_groups:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"imGroups","responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nList of groups returned.","content":{"application/json":{"schema":{"title":"IM Group List","description":"THe list of IM groups.","allOf":[{"type":"object","properties":{"total_records":{"type":"integer","description":"The total number of records returned.","example":200}}},{"type":"object","properties":{"groups":{"type":"array","description":"The list of group objects.","items":{"allOf":[{"type":"object","properties":{"id":{"type":"string","description":"The IM group ID.","example":"MIuNMURBTkuwfZ20jteRJg"}}},{"type":"object","description":"The IM group object.","allOf":[{"type":"object","properties":{"name":{"type":"string","description":"The group name.","example":"Developers"},"total_members":{"type":"integer","description":"The total number of members in this group.","example":200}},"description":"The group object."},{"type":"object","properties":{"search_by_account":{"type":"boolean","description":"The members can search for others under same account.","example":true},"search_by_domain":{"type":"boolean","description":"The members can search for others in the same email domain.","example":true},"search_by_ma_account":{"type":"boolean","description":"The members can search for others under same master account - including all sub accounts.","example":true},"type":{"type":"string","description":"The IM group types:  \n `normal` - Only members can see the other members in the group. Other people can search for members in the group.  \n `shared` - Everyone in the account can see the group and members.   \n `restricted` - No one except group members can see the group or search for other group members. ","example":"normal","default":"normal","enum":["normal","shared","restricted"],"x-enum-descriptions":["Only members can see the group automatically. Other people can search members in the group.","All people in the account can see the group and members automatically.","Nobody can see the group or search members except the members in the group."]}}}]}]}}}}]}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Only available for Paid account. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4130` <br>\n IM group does not exist: {groupId}. <br>\n"},"410":{"description":"**HTTP Status Code:** `410` <br>\n Gone  \n\n **Error Code:** `4137` <br>\n The IM Group APIs are no longer available. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["imgroup:read:admin","imgroup:write:admin"],"x-granular-scopes":["contact_group:read:list_groups:admin"]}},"post":{"tags":["IM Groups"],"summary":"Create an IM directory group","description":"Create an IM directory group under your account.  \n   \n \n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `imgroup:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_group:write:group:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `Light`","operationId":"imGroupCreate","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"maxLength":128,"type":"string","description":"Group name: must be unique to one account.","example":"Developers"},"search_by_account":{"type":"boolean","description":"Members can search for others under same account.","example":true},"search_by_domain":{"type":"boolean","description":"Members can search for others in the same email domain.","example":true},"search_by_ma_account":{"type":"boolean","description":"Members can search for others under same master account, including all sub accounts.","example":true},"type":{"type":"string","description":"IM Group types:  \n `normal` - Only members can see automatically see the other members of this group. Other people can search for members within this group.   \n `shared` - Everyone under an account can see the group members automatically.  \n `restricted` - Nobody can see the group or search for members except the members in the group.","example":"normal","default":"normal","enum":["normal","shared","restricted"],"x-enum-descriptions":["Only members can see the group automatically. Other people can search members in the group.","All people in the account can see the group and members automatically","Nobody can see the group or search members except the members in the group"]}}}}}},"responses":{"200":{"description":"**Error Code:** `200`   \n \nOnly available for paid account:{accountId}."},"201":{"description":"**HTTP Status Code:** `201`  \n \nIM Group created.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Group ID.","example":"MIuNMURBTkuwfZ20jteRJg"},"name":{"type":"string","description":"Group name.","example":"Developers"},"search_by_account":{"type":"boolean","description":"Members can search for others under same account.","example":true},"search_by_domain":{"type":"boolean","description":"Members can search for others in the same email domain.","example":true},"search_by_ma_account":{"type":"boolean","description":"Members can search for others under same master account, including all sub accounts.","example":true},"total_members":{"type":"integer","description":"Group member count.","example":200}}}}}},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found\n\n**Error Code:** `4130` <br>\nGroup does not exist:{groupId}.\n\n"},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict\n\n**Error Code:** `4132` <br>\nGroup name {groupName} is already in use.\n\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_authorization":[]}],"x-extensions":{"x-macro-scopes":["imgroup:write:admin"],"x-granular-scopes":["contact_group:write:group:admin"]}}},"/im/groups/{groupId}":{"get":{"tags":["IM Groups"],"summary":"Retrieve an IM directory group","description":"Retrieves an [IM directory group](https://support.zoom.us/hc/en-us/articles/203749815-IM-Management) under your account.  \n   \n \nScopes: `imgroup:read:admin`  \n \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `imgroup:read:admin`,`imgroup:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_group:read:group:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"imGroup","parameters":[{"name":"groupId","in":"path","description":"The group ID.  \n \nRetrieve by calling the [**List groups**](/docs/api-reference/zoom-api/methods#operation/groups) API.","required":true,"schema":{"type":"string","example":"SobVexyrQjqCkcxjpBWi6w"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nIM group object returned.  ","content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"id":{"type":"string","description":"The group ID.","example":"MIuNMURBTkuwfZ20jteRJg"}}},{"type":"object","description":"The IM group object.","allOf":[{"type":"object","properties":{"name":{"type":"string","description":"The group name.","example":"Developers"},"total_members":{"type":"integer","description":"The total number of members in this group.","example":200}},"description":"The group object."},{"type":"object","properties":{"search_by_account":{"type":"boolean","description":"Members can search for others under same account.","example":true},"search_by_domain":{"type":"boolean","description":"Members can search for others in the same email domain.","example":true},"search_by_ma_account":{"type":"boolean","description":"Members can search for others under same master account - including all sub accounts.","example":true},"type":{"type":"string","description":"IM Group types:  \n `normal` - Only members can see the other members in the group. Other people can search for members in the group.  \n `shared` - Everyone in the account can see the group and members.   \n `restricted` - No one except group members can see the group or search for other group members. ","example":"normal","default":"normal","enum":["normal","shared","restricted"],"x-enum-descriptions":["Only members can see the group automatically. Other people can search members in the group.","All people in the account can see the group and members automatically","Nobody can see the group or search members except the members in the group"]}}}]}]}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Only available for Paid account. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4130` <br>\n IM group does not exist: :{groupId}. <br>\n"},"410":{"description":"**HTTP Status Code:** `410` <br>\n Gone  \n\n **Error Code:** `4137` <br>\n The IM Group APIs are no longer available. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["imgroup:read:admin","imgroup:write:admin"],"x-granular-scopes":["contact_group:read:group:admin"]}},"delete":{"tags":["IM Groups"],"summary":"Delete an IM directory group","description":"Deletes an [IM directory group](https://support.zoom.us/hc/en-us/articles/203749815-IM-Management) under your account.  \n   \n \nScopes: `imgroup:write:admin`  \n \n \n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `imgroup:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_group:delete:group:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"imGroupDelete","parameters":[{"name":"groupId","in":"path","description":"The group ID.  \n \nRetrieve by calling the [**List groups**](/docs/api-reference/zoom-api/methods#operation/groups) API.","required":true,"schema":{"type":"string","example":"SobVexyrQjqCkcxjpBWi6w"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nIM group deleted.\n\n"},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Only available for Paid account. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4130` <br>\n IM group does not exist: {groupId}. <br>\n"},"410":{"description":"**HTTP Status Code:** `410` <br>\n Gone  \n\n **Error Code:** `4137` <br>\n The IM Group APIs are no longer available. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["imgroup:write:admin"],"x-granular-scopes":["contact_group:delete:group:admin"]}},"patch":{"tags":["IM Groups"],"summary":"Update an IM directory group","description":"Updates an [IM directory group](https://support.zoom.us/hc/en-us/articles/203749815-IM-Management) under your account.  \n   \n \n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `imgroup:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_group:update:group:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"imGroupUpdate","parameters":[{"name":"groupId","in":"path","description":"The group ID.  \n \nRetrieve by calling the [**List groups**](/docs/api-reference/zoom-api/methods#operation/groups) API.","required":true,"schema":{"type":"string","example":"SobVexyrQjqCkcxjpBWi6w"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"maxLength":128,"type":"string","description":"The group name. It must be unique to one account.","example":"Developers"},"search_by_account":{"type":"boolean","description":"Members can search for others under same account.","example":true},"search_by_domain":{"type":"boolean","description":"Members can search for others in the same email domain.","example":true},"search_by_ma_account":{"type":"boolean","description":"Members can search for others under same master account, including all sub accounts.","example":true},"type":{"type":"string","description":"IM Group types:  \n `normal` - Only group members can automatically see others in their group. Other people can search for members in the group.  \n `shared` - Everyone under the account can see the group and members automatically.  \n `restricted` - Nobody can see the group or search for members except for the members in the group.","example":"normal","enum":["normal","shared","restricted"],"x-enum-descriptions":["Only members can see the group automatically. Other people can search members in the group.","All people in the account can see the group and members automatically","Nobody can see the group or search members except the members in the group"]}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nIM group updated."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Only available for Paid account. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4130` <br>\n IM group does not exist: {groupId}. <br>\n"},"410":{"description":"**HTTP Status Code:** `410` <br>\n Gone  \n\n **Error Code:** `4137` <br>\n The IM Group APIs are no longer available. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["imgroup:write:admin"],"x-granular-scopes":["contact_group:update:group:admin"]}}},"/im/groups/{groupId}/members":{"get":{"tags":["IM Groups"],"summary":"List IM directory group members","description":"Lists the members of an [IM directory group](https://support.zoom.us/hc/en-us/articles/203749815-IM-Management).  \n   \n \n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `imgroup:read:admin`,`imgroup:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_group:read:list_members:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"imGroupMembers","parameters":[{"name":"groupId","in":"path","description":"The group ID.  \n \nRetrieve by calling the [**List groups**](/docs/api-reference/zoom-api/methods#operation/groups) API.","required":true,"schema":{"type":"string","example":"SobVexyrQjqCkcxjpBWi6w"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":300,"type":"integer","example":30,"default":30}},{"name":"page_number","in":"query","description":"**Deprecated.** We will no longer support this field in a future release. Instead, use the `next_page_token` for pagination.","required":false,"schema":{"type":"integer","example":1,"default":1}},{"name":"next_page_token","in":"query","description":"The next page token paginates through large result sets. It whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"IAfJX3jsOLW7w3dokmFl84zOa0MAVGyMEB2"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nIM group member list returned.  \n \n**Error Code:** `200`   \n  \nOnly available for paid account:{accountId}.","content":{"application/json":{"schema":{"title":"Group Member List","description":"The list of group members.","allOf":[{"type":"object","properties":{"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","example":"w7587w4eiyfsudgf"},"page_count":{"type":"integer","description":"The number of pages returned for the request made.","example":1},"page_number":{"type":"integer","description":"**Deprecated.** We will no longer support this field in a future release. Instead, use the `next_page_token` for pagination.","example":1,"deprecated":true,"default":1},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned with a single API call.","example":30,"default":30},"total_records":{"type":"integer","description":"The total number of all the records available across pages.","example":20}},"description":"The pagination object."},{"type":"object","properties":{"members":{"type":"array","description":"The list of group member objects.","items":{"type":"object","properties":{"email":{"type":"string","description":"The user email.","example":"jchill@example.com"},"first_name":{"type":"string","description":"The user first name.","example":"Jill"},"id":{"type":"string","description":"The user ID.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"last_name":{"type":"string","description":"The last name of the user.","example":"Chill"},"type":{"type":"integer","description":"The ujser type.  \n \n`1` - Basic  \n  `2` - Licensed  \n ","example":1}},"description":"The group member object."}}}}]}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The next page token is either invalid or has expired. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["imgroup:read:admin","imgroup:write:admin"],"x-granular-scopes":["contact_group:read:list_members:admin"]}},"post":{"tags":["IM Groups"],"summary":"Add IM directory group members","description":"Add members to an [IM directory group](https://support.zoom.us/hc/en-us/articles/203749815-IM-Management) under an account.  \n   \n \n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `imgroup:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_group:write:member:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"imGroupMembersCreate","parameters":[{"name":"groupId","in":"path","description":"The group ID.  \n \nRetrieve by calling the [**List groups**](/docs/api/rest/reference/user/methods/#operation/groups) API.","required":true,"schema":{"type":"string","example":"A4ql1FjgL913r"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"members":{"maximum":10,"type":"array","description":"List of IM group members.","items":{"type":"object","properties":{"email":{"type":"string","description":"User email. If the user ID is given then ignore the user email. ","example":"jchill@example.com"},"id":{"type":"string","description":"User ID.","example":"v4iyWT1LTfy8QvPG4GTvdg"}}}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nThe member that has been added.","content":{"application/json":{"schema":{"type":"object","properties":{"added_at":{"type":"string","format":"date-time","example":"2022-03-25T03:08:12Z"},"ids":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Only available for Paid account. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\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_authorization":[]}],"x-extensions":{"x-macro-scopes":["imgroup:write:admin"],"x-granular-scopes":["contact_group:write:member:admin"]}}},"/im/groups/{groupId}/members/{memberId}":{"delete":{"tags":["IM Groups"],"summary":"Delete IM directory group member","description":"Delete a member from an [IM directory group](https://support.zoom.us/hc/en-us/articles/203749815-IM-Management) under an account.  \n   \n \nScopes: `imgroup:write:admin`  \n \n \n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `imgroup:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `contact_group:delete:member:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"imGroupMembersDelete","parameters":[{"name":"groupId","in":"path","description":"The group ID.  \n \nRetrieve by calling the [**List groups**](/docs/api/rest/reference/user/methods/#operation/groups) API.","required":true,"schema":{"type":"string","example":"A4ql1FjgL913r"}},{"name":"memberId","in":"path","description":"The member ID.","required":true,"schema":{"type":"string","example":"-cn1DHGRRTSOlnVwyZNhKw"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`  \n \nIM directory group member deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `200` <br>\n Only available for Paid account. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `4130` <br>\n Group does not exist:{groupId}. <br>\n"},"410":{"description":"**HTTP Status Code:** `410` <br>\n Gone  \n\n **Error Code:** `4137` <br>\n The IM Group APIs are no longer available. <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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["imgroup:write:admin"],"x-granular-scopes":["contact_group:delete:member:admin"]}}},"/chat/users/{userId}/invitations":{"post":{"tags":["Invitations"],"summary":"Send new contact invitation","description":"Sends a new contact invitation. For user-level apps, pass the `me` value instead of the `userId` parameter.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_contact:write`,`chat_contact:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:contact_information:admin`,`team_chat:write:contact_information`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"sendNewContactInvitation","parameters":[{"name":"userId","in":"path","description":"The unique identifier of the user who is the inviter.","required":true,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["email"],"type":"object","properties":{"email":{"type":"string","description":"The invitee's email.","format":"email","example":"jsmith@zoom.us"},"message":{"type":"string","description":"The message body. (Optional)","example":"Hello, how are you!"}}}}}},"responses":{"204":{"description":"Successfully send new contact invitation."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  Invalid email format \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  No permission to add new contact \n\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_authorization":[]}],"x-extensions":{"x-permissions":["IMExternalConnection:Edit"],"x-macro-scopes":["chat_contact:write","chat_contact:write:admin"],"x-granular-scopes":["team_chat:write:contact_information:admin","team_chat:write:contact_information"]}}},"/chat/legalhold/matters":{"get":{"tags":["Legal Hold"],"summary":"List legal hold matters","description":"Returns a list of legal hold matters.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_history_legal_hold:read:admin`,`chat_history_legal_hold:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_legal_hold_matters:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `RESOURCE-INTENSIVE`","operationId":"listLegalHoldMatters","parameters":[{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   Legal hold list returned.","content":{"application/json":{"schema":{"required":["legal_hold_matters"],"type":"object","properties":{"legal_hold_matters":{"type":"array","description":"The legal hold matters.","items":{"required":["matter_creation_date","matter_id","matter_name","matter_users"],"type":"object","properties":{"matter_id":{"type":"string","description":"The legal hold matter's unique identifier.","example":"28c92682-f4fc-47b0-bceb-14cb839e0279"},"matter_name":{"type":"string","description":"The legal hold matter name.","example":"Test17888"},"matter_start_date":{"type":"string","description":"The legal hold matter start date.","format":"date","example":"2024-04-01"},"matter_end_date":{"type":"string","description":"The legal hold matter end date.","format":"date","example":"2024-04-30"},"matter_creation_date":{"type":"string","description":"The legal hold matter creation date.","format":"date","example":"2024-05-01"},"matter_users":{"maxItems":20,"type":"array","description":"A list of user in legal hold matter.","items":{"required":["email","user_id"],"type":"object","properties":{"user_id":{"type":"string","description":"The user's ID.","example":"649ad5f12f804cfea7dd7b1c1bb4c337"},"email":{"type":"string","description":"The user's email.","format":"email","example":"first.last@test.com"}}}}}}},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"type":"integer","description":"The number of records returned within a single API call.","example":30}}}}}},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `403` <br>\n No permission to access legal hold <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["NewIMChatHistory:Read"],"x-macro-scopes":["chat_history_legal_hold:read:admin","chat_history_legal_hold:write:admin"],"x-granular-scopes":["team_chat:read:list_legal_hold_matters:admin"]}},"post":{"tags":["Legal Hold"],"summary":"Add a legal hold matter","description":"Adds a new legal hold matter.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_history_legal_hold:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:legal_hold_matter:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `RESOURCE-INTENSIVE`","operationId":"addLegalHoldMatter","requestBody":{"content":{"application/json":{"schema":{"required":["identifiers","matter_name"],"type":"object","properties":{"start_date":{"type":"string","description":"The legal hold matter's start date. If not defined, it considers the start from today.","format":"date","example":"2024-04-01"},"end_date":{"type":"string","description":"The legal hold matter's end date. If not defined, the legal hold matter continues.","format":"date","example":"2024-04-30"},"matter_name":{"maxLength":128,"minLength":1,"type":"string","description":"The legal hold matter's name.","example":"Test17888"},"identifiers":{"maxItems":20,"minItems":1,"uniqueItems":true,"type":"array","description":"A list of user's id or user's email for legal hold.","items":{"type":"string","description":"The user's id or user's email to be legal check.","example":"first.last@test.com"}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201` Legal hold matter created.","content":{"application/json":{"schema":{"required":["matter_id"],"type":"object","properties":{"matter_id":{"type":"string","description":"The legal hold matter's unique identifier.","example":"28c92682-f4fc-47b0-bceb-14cb839e0279"}}}}}},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `403` <br>\n No permission to access legal hold <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["NewIMChatHistory:Read"],"x-macro-scopes":["chat_history_legal_hold:write:admin"],"x-granular-scopes":["team_chat:write:legal_hold_matter:admin"]}}},"/chat/legalhold/matters/{matterId}":{"delete":{"tags":["Legal Hold"],"summary":"Delete legal hold matters","description":"Deletes a legal hold matter.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_history_legal_hold:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:legal_hold_matter:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"deleteLegalHoldMatters","parameters":[{"name":"matterId","in":"path","description":"The legal hold matter's unique identifier.","required":true,"schema":{"type":"string","example":"28c92682-f4fc-47b0-bceb-14cb839e0279"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`   Successfully delete the legal hold matters."},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `403` <br>\n No permission to access legal hold <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n Legal hold matter does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["NewIMChatHistory:Edit"],"x-macro-scopes":["chat_history_legal_hold:write:admin"],"x-granular-scopes":["team_chat:delete:legal_hold_matter:admin"]}},"patch":{"tags":["Legal Hold"],"summary":"Update legal hold matter","description":"Updates the name for a given legal hold matter.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_history_legal_hold:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:legal_hold_matter:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateLegalHoldMatter","parameters":[{"name":"matterId","in":"path","description":"The legal hold matter's unique identifier.","required":true,"schema":{"type":"string","example":"28c92682-f4fc-47b0-bceb-14cb839e0279"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["matter_name"],"type":"object","properties":{"matter_name":{"maxLength":128,"minLength":1,"type":"string","description":"The new matter name for legal hold.","example":"NewTest17888"}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   Successfully updated the legal hold matter."},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `403` <br>\n No permission to access legal hold <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n Legal hold matter does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["NewIMChatHistory:Read"],"x-macro-scopes":["chat_history_legal_hold:write:admin"],"x-granular-scopes":["team_chat:update:legal_hold_matter:admin"]}}},"/chat/legalhold/matters/{matterId}/files":{"get":{"tags":["Legal Hold"],"summary":"List legal hold files by given matter","description":"Returns a list files for given legal hold matter.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_history_legal_hold:read:admin`,`chat_history_legal_hold:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_legal_hold_matter_files:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"listLegalHoldFiles","parameters":[{"name":"matterId","in":"path","description":"The legal hold matter's unique identifier.","required":true,"schema":{"type":"string","example":"28c92682-f4fc-47b0-bceb-14cb839e0279"}},{"name":"identifier","in":"query","description":"The user's id or user's email to be legal check.","required":true,"schema":{"type":"string","example":"first.last@test.com"}},{"name":"page_size","in":"query","description":"The number of records to be returned with a single API call. ","required":false,"schema":{"maximum":20,"minimum":1,"type":"integer","example":5,"default":5}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   Legal hold files returned.","content":{"application/json":{"schema":{"required":["data"],"type":"object","properties":{"data":{"type":"array","description":"A list of zipped legal hold files.","items":{"required":["file_count","file_end_date","file_key","file_start_date","ready_for_download","total_file_size"],"type":"object","properties":{"file_key":{"type":"string","description":"The file key to download the zip file.","example":"Zmlyc3QubGFzdEBleGFtcGxlLmNvbS0xNjc5NTg5MjMwNzY4"},"file_count":{"type":"integer","description":"The number of files in the current zip file.","example":1},"file_start_date":{"type":"string","description":"The legal hold file's start date.","format":"date","example":"2024-04-01"},"file_end_date":{"type":"string","description":"The legal hold file's end date.","format":"date","example":"2024-04-30"},"ready_for_download":{"type":"boolean","description":"Whether the legal hold file is ready to download.","example":true},"total_file_size":{"type":"integer","description":"The total file size, based on byte.","format":"int64","example":540123}},"description":"Each item represents one zip file."}},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token is returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"},"page_size":{"type":"integer","description":"The number of records returned within a single API call.","example":30}}}}}},"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_authorization":[]}],"x-extensions":{"x-permissions":["NewIMChatHistory:Read"],"x-macro-scopes":["chat_history_legal_hold:read:admin","chat_history_legal_hold:write:admin"],"x-granular-scopes":["team_chat:read:list_legal_hold_matter_files:admin"]}}},"/chat/legalhold/matters/{matterId}/files/download":{"get":{"tags":["Legal Hold"],"summary":"Download legal hold files for given matter","description":"Downloads a zip file.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat_history_legal_hold:read:admin`,`chat_history_legal_hold:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:legal_hold_matter_file:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"downloadLegalHoldFiles","parameters":[{"name":"matterId","in":"path","description":"The legal hold matter's unique identifier.","required":true,"schema":{"type":"string","example":"28c92682-f4fc-47b0-bceb-14cb839e0279"}},{"name":"file_key","in":"query","description":"This field download a zip file using the file key.","required":true,"schema":{"type":"string","example":"Zmlyc3QubGFzdEBleGFtcGxlLmNvbS0xNjc5NTg5MjMwNzY4"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   Legal hold files download as a binary stream.","headers":{"Content-Disposition":{"required":true,"schema":{"type":"string","example":"attachment; filename=LEGAL_HOLD_files_messages_19700101_20240313.zip"}},"Content-Length":{"required":true,"schema":{"type":"integer","format":"int64","example":14475445}},"Content-Type":{"required":true,"schema":{"type":"string","example":"application/zip"}}}},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `403` <br>\n No permission to download legal hold files <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["NewIMChatHistory:Read"],"x-macro-scopes":["chat_history_legal_hold:read:admin","chat_history_legal_hold:write:admin"],"x-granular-scopes":["team_chat:read:legal_hold_matter_file:admin"]}}},"/report/chat/sessions":{"get":{"tags":["Reports"],"summary":"Get chat sessions reports","description":"Returns Zoom Chat session reports for a specified period of time. The monthly date range **must** be within the last six months.\n\n**Prerequisites** \n* A Pro or higher plan \n* Report chat permissions.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `report_chat:read:admin`,`imchat:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `report:read:list_chat_sessions:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"reportChatSessions","parameters":[{"name":"from","in":"query","description":"The start date in 'yyyy-mm-dd' format. The date range defined by the &quot;from&quot; and &quot;to&quot; parameters should only be one month as the report includes only one month worth of data at once. Also support ISO format Combined with UTC designator: `2026-03-16T14:30:00Z`","required":true,"schema":{"type":"string","format":"date","example":"2020-03-01"}},{"name":"to","in":"query","description":"The end date. Also support ISO format Combined with UTC designator: `2026-03-16T14:30:00Z`","required":true,"schema":{"type":"string","format":"date","example":"2020-04-01"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":300,"type":"integer","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"Use the next page token to paginate through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"include_reacted_sessions","in":"query","description":"If true, include sessions that contain messages with recent emoji reactions such as 👍 or ❤️, even if they aren't otherwise active.","required":false,"schema":{"type":"boolean","example":true}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nArchived chat sessions returned.","content":{"application/json":{"schema":{"type":"object","properties":{"from":{"type":"string","description":"The query's start date.","format":"date","example":"2022-03-01"},"next_page_token":{"type":"string","description":"Use the next page token to paginate through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"peU2gkVkRebcqMTzOPnidf0OxlA3WD9Cunrp"},"page_size":{"maximum":300,"type":"integer","description":"The amount of records returned within a single API call. ","example":30,"default":30},"sessions":{"maxItems":300,"type":"array","description":"Information about the chat session.","items":{"type":"object","properties":{"id":{"type":"string","description":"The chat session's ID.","example":"c38230acb7f009282c1b0d367a08102d65d12629bbcca58dfe2168bd335f5849"},"last_message_sent_time":{"type":"string","description":"The timestamp of the last message sent.","format":"date-time","example":"2022-03-18T10:16:13Z"},"name":{"type":"string","description":"The chat session's name. For a 1:1 session, this field will be empty. Participants will show in `member_emails` field.","example":"Channel One"},"type":{"type":"string","description":"The chat session's type.\n* `Group` - A group chat.\n* `1:1` - A one-on-one chat.","example":"1:1","enum":["Group","1:1"]},"channel_id":{"type":"string","description":"If the chat session's type is 'Group', this field represents the channel's ID.","example":"7a08102d65d12629bbcca5"},"member_emails":{"type":"array","description":"Only shows 1:1 type participants emails. If the session is channel or groupchat, this field won't return as a response.","example":["john.doe+123@example.com","john.doe+321@example.com"],"items":{"type":"string","format":"email"}},"status":{"type":"string","description":"The chat session's status. Not appliable for `1:1`.","example":"active","default":"active","enum":["active","deleted"]},"has_external_member":{"type":"boolean","description":"When chat session is `1:1`, this field determines whether the sender and receiver are external user to each other at the time of the report requested. \n When the chat session is `Group`, this field determines whether the channel or group chat has external member.","example":true}}}},"to":{"type":"string","description":"The query's end date.","format":"date","example":"2022-03-25"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n The next page token is either invalid or has expired. <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/rate-limits/). \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["report_chat:read:admin","imchat:read:admin"],"x-granular-scopes":["report:read:list_chat_sessions:admin"]}}},"/report/chat/sessions/{sessionId}":{"get":{"tags":["Reports"],"summary":"Get chat message reports","description":"Returns Zoom Chat message reports for a specified period of time. The monthly date range must be within the last six months.\n\n**Prerequisites** \n* A Pro or higher plan \n* Report chat permissions\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `report_chat:read:admin`,`imchat:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `report:read:chat_session:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"reportChatMessages","parameters":[{"name":"sessionId","in":"path","description":"The chat session's ID.","required":true,"schema":{"type":"string","example":"5fdca6877b790503c027339a091e794498c146b849a1443d0c38d9ecd93b254d"}},{"name":"from","in":"query","description":"The start date in 'yyyy-mm-dd' format. The date range defined by the &quot;from&quot; and &quot;to&quot; parameters should only be one month as the report includes only one month worth of data at once.","required":true,"schema":{"type":"string","format":"date","example":"2020-03-01"}},{"name":"to","in":"query","description":"The end date.","required":true,"schema":{"type":"string","format":"date","example":"2020-04-01"}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"type":"integer","example":30,"default":30}},{"name":"include_fields","in":"query","description":"This field returns all edited and deleted messages. The API only returns this value if the `include_fields` query parameter contains the `edited_messages` and/or the `deleted_messages` values.\n\nTo include both edited and deleted messages, comma-separate both values.","required":false,"schema":{"type":"string","example":"edited_messages","enum":["edited_messages","deleted_messages","edited_messages,deleted_messages"]}},{"name":"include_bot_message","in":"query","description":"Whether to return the bot message. If false, the `bot_message` will not be returned in the response body.","required":false,"schema":{"type":"boolean","example":true,"default":false}},{"name":"include_reactions","in":"query","description":"Whether to return the message reactions. If false, the `reactions` will not be returned in the response body.","required":false,"schema":{"type":"boolean","example":true,"default":false}},{"name":"query_all_modifications","in":"query","description":"When set to true, this field allows users to query the time range in which edited or deleted messages were modified. Otherwise, the time range must be based on the parent message's sending time.","required":false,"schema":{"type":"boolean","example":true,"default":false}},{"name":"include_custom_emoji_reactions","in":"query","description":"Whether to return the message custom emoji reactions. If false, the `custom_emoji_reactions` will not be returned in the response body.","required":false,"schema":{"type":"boolean","example":true}},{"name":"include_reaction_recent_changed","in":"query","description":"This field specifies whether to include messages with updated (custom) emoji reactions. Requires `query_all_modifications=true`. When enabled, the response includes messages outside the time range if their reactions changed during that period, and returns `emoji_actions`; otherwise, `emoji_actions` are omitted.","required":false,"schema":{"type":"boolean","example":true}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nArchived chat messages returned.","content":{"application/json":{"schema":{"type":"object","properties":{"deleted_messages":{"type":"array","description":"An array containing deleted chat messages information.","items":{"type":"object","properties":{"date_time":{"type":"string","description":"The timestamp when the chat message was sent.","format":"date-time","example":"2022-03-18T10:16:13Z"},"files":{"type":"array","description":"The information about the chat files.","items":{"type":"object","properties":{"download_url":{"type":"string","description":"The URL when to download the chat file.","example":"https://zoom.us/file/download/qreigNgqTk24RNnGJDxpDg?filename=48k.png&jwt=downloadjwt"},"file_id":{"type":"string","description":"The chat file's unique ID.","example":"qreigNgqTk24RNnGJDxpDg"},"file_name":{"type":"string","description":"The chat file's name and its file extension.","example":"48k.png"},"file_size":{"type":"integer","description":"The chat file's size, in bytes.","example":224251}}}},"giphy_information":{"type":"array","description":"The giphy information in the chat message.","items":{"type":"object","properties":{"giphy_view_url":{"type":"string","description":"The view URL of the giphy.","example":"https://giphy.com/gifs/union-soton-congrats-susu-soton-StRUIQttj1ewZVYZH2"}}}},"id":{"type":"string","description":"The chat message's ID.","example":"7ba4d98b-0a6a-4fb4-a71b-dd13fd689dc8"},"message":{"type":"string","description":"The contents of the chat message. For encrypted messages, this field contains a placeholder, and the actual plaintext content is obtained by decrypting `encryption_info.encrypt_content`.","example":"How are you"},"receiver":{"type":"string","description":"The chat message's recipient. This field only returns if the chat session is `1:1`.","example":"jchill@example.com"},"is_sender_external":{"type":"boolean","description":"This field determines whether the sender is external to the API caller's account. This field only returns if the chat session is `1:1`.","example":true},"reply_main_message_id":{"type":"string","description":"The reply message's unique ID. The API only returns this value if the message is a reply message.","example":"{27ED2949-6457-417C-83EA-72515DAF00BD}"},"reply_main_message_timestamp":{"type":"integer","description":"A timestamp of when the reply message was sent. The API only returns this value if the message is a reply message.","format":"int64","example":1647494500135},"sender":{"type":"string","description":"The message sender's email address. If the sender does not belong to the same account as the current user or is not the current user's contact, this field will be empty.","example":"jchill@example.com"},"sender_member_id":{"type":"string","description":"The message sender's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"},"sender_display_name":{"type":"string","description":"The message sender's display name.","example":"Tom"},"timestamp":{"type":"integer","description":"The message's timestamp, in milliseconds.","format":"int64","example":1647494500135},"action_timestamp":{"type":"integer","description":"The current message's action time, in milliseconds.","format":"int64","example":1747494500135},"forward_id":{"type":"string","description":"The forwarded message ID, use to get forwarded message detail info.","example":"6dfgdfgdg444447b0egga"},"rich_text":{"type":"array","description":"The [rich text formatting](https://support.zoom.us/hc/en-us/articles/115004789183-Replying-to-and-managing-chat-messages) information.","items":{"type":"object","properties":{"start_position":{"type":"integer","description":"The start position of the rich text in the message string.","example":0},"end_position":{"type":"integer","description":"The end position of the rich text.","example":5},"format_type":{"type":"string","description":"The type of rich text format.","example":"Paragraph","enum":["Bold","Italic","Strikethrough","BulletedList","NumberedList","Underline","FontSize","FontColor","BackgroundColor","LeftIndent","Paragraph","Quote","AddLink"]},"format_attr":{"type":"string","description":"The attribute values of a specific `format_type`:\n\n1.`FontSize`: `s` for small, `m` for medium, or `l` for large font sizes. \n\n2.`FontColor` and `BackgroundColor`: only supports RGB values. For example: `FFC0CB` \n\n3.`LeftIndent`: a positive pixel length.  \n\n4.`Paragraph`: `h1` for heading 1, `h2` for heading 2, or `h3` for heading 3. \n\n5.`AddLink`: must be a valid URL with an `http` or `https` prefix. For example: `https://example.com`","example":"h1"}}}},"reactions":{"type":"array","description":"A list of emoji reactions.","items":{"type":"object","properties":{"emoji":{"type":"string","description":"The emoji's unicode value in `UTF-32` format.","example":"U+1F600"},"total_count":{"type":"integer","description":"The emoji's total usage count.","example":1},"user_ids":{"type":"array","description":"A list of user IDs from the same account, that replied to this message with this emoji. user IDs of those who are not from the same account will be omitted from the list.","items":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},"member_ids":{"type":"array","description":"A list of user member IDs that replied to this message with this emoji.","items":{"type":"string","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}}}},"custom_emoji_reactions":{"type":"array","description":"A list of custom emoji reactions.","items":{"type":"object","properties":{"custom_emoji_name":{"type":"string","description":"The custom emoji's name.","example":"test_custom_emoji_name"},"custom_emoji_file_id":{"type":"string","description":"The custom emoji's file id.","example":"bliAGZfKSqOWev3rCwC99Q"},"total_count":{"type":"integer","description":"The emoji's total usage count.","example":1},"user_ids":{"type":"array","description":"A list of user IDs from the same account, that replied to this message with this emoji. user IDs of those who are not from the same account will be omitted from the list.","items":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},"member_ids":{"type":"array","description":"A list of user member IDs that replied to this message with this emoji.","items":{"type":"string","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}}}},"encryption_info":{"type":"object","properties":{"key_id":{"type":"string","description":"The key ID for retrieving the data key.","example":"ZXhhbXBsZS1rZXktaWQ="},"encrypt_context":{"type":"string","description":"Base64-encoded encryption context for retrieving the data key.","example":"MTAwMSMjI0NTRTpUZWFtQ2hhdDpFeHRlcm5hbCMjIzcyYTdjOWI1YjFmNDQ1YjM4YWE5NWY0YzU2ODk3NTFjQGNvbmZlcmVuY2UueG1wcGRldi56b29tLnVz"},"encrypt_content":{"type":"string","description":"For encrypted messages, the encrypted payload corresponding to the `message` field. After decryption, it returns the plaintext message content.","example":"DPOGczEf1FKiIHmcuwAAAwAAABOU5fzpb5Hn8s6t9vzu3yC+dy4="},"encryption_algorithm":{"type":"string","description":"The encryption algorithm used for the message content.","example":"AES-GCM-256"}},"description":"Encryption metadata for an encrypted chat message."}}}},"edited_messages":{"type":"array","description":"An array containing edited chat message information.","items":{"type":"object","properties":{"date_time":{"type":"string","description":"The timestamp when the chat message was sent.","format":"date-time","example":"2022-03-17T08:27:57Z"},"files":{"type":"array","description":"The information about the chat files.","items":{"type":"object","properties":{"download_url":{"type":"string","description":"The URL when to download the chat file.","example":"https://zoom.us/file/download/qreigNgqTk24RNnGJDxpDg?filename=48k.png&jwt=downloadjwt"},"file_id":{"type":"string","description":"The chat file's unique ID.","example":"qreigNgqTk24RNnGJDxpDg"},"file_name":{"type":"string","description":"The chat file's name and its file extension.","example":"48k.png"},"file_size":{"type":"integer","description":"The chat file's size, in bytes.","example":224251}}}},"giphy_information":{"type":"array","description":"The giphy information in the chat message","items":{"type":"object","properties":{"giphy_view_url":{"type":"string","description":"The view URL of the giphy","example":"https://giphy.com/gifs/union-soton-congrats-susu-soton-StRUIQttj1ewZVYZH2"}}}},"id":{"type":"string","description":"The chat message's ID.","example":"7ba4d98b-0a6a-4fb4-a71b-dd13fd689dc8"},"message":{"type":"string","description":"The contents of the chat message. For encrypted messages, this field contains a placeholder, and the actual plaintext content is obtained by decrypting `encryption_info.encrypt_content`.","example":"How are you"},"receiver":{"type":"string","description":"The chat message's recipient. This field only returns if the chat session is `1:1`.","example":"jchill@example.com"},"is_sender_external":{"type":"boolean","description":"Determine whether the sender is external to the api caller's account. This field only returns if the chat session is `1:1`.","example":true},"reply_main_message_id":{"type":"string","description":"The reply message's unique ID. The API only returns this value if the message is a reply message.","example":"{27ED2949-6457-417C-83EA-72515DAF00BD}"},"reply_main_message_timestamp":{"type":"integer","description":"A timestamp of when the reply message was sent. The API only returns this value if the message is a reply message.","format":"int64","example":1647494500135},"sender_member_id":{"type":"string","description":"The message sender's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"},"sender":{"type":"string","description":"The message sender's email address. If the sender does not belong to the same account as the current user or is not the current user's contact, this field will be empty.","example":"jchill@example.com"},"sender_display_name":{"type":"string","description":"The message sender's display name.","example":"Tom"},"timestamp":{"type":"integer","description":"The message's timestamp, in milliseconds.","format":"int64","example":1647494500135},"action_timestamp":{"type":"integer","description":"The current message's action time, in milliseconds.","format":"int64","example":1747494500135},"forward_id":{"type":"string","description":"The forwarded message ID, use to get forwarded message detail info.","example":"6dfgdfgdg444447b0egga"},"rich_text":{"type":"array","description":"The [rich text formatting](https://support.zoom.us/hc/en-us/articles/115004789183-Replying-to-and-managing-chat-messages) information.","items":{"type":"object","properties":{"start_position":{"type":"integer","description":"The start position of the rich text in the message string.","example":0},"end_position":{"type":"integer","description":"The end position of the rich text.","example":5},"format_type":{"type":"string","description":"The type of rich text format.","example":"Paragraph","enum":["Bold","Italic","Strikethrough","BulletedList","NumberedList","Underline","FontSize","FontColor","BackgroundColor","LeftIndent","Paragraph","Quote","AddLink"]},"format_attr":{"type":"string","description":"The attribute values of a specific `format_type`:\n\n1.`FontSize`: `s` for small, `m` for medium, or `l` for large font sizes. \n\n2.`FontColor` and `BackgroundColor`: only supports RGB values. For example: `FFC0CB` \n\n3.`LeftIndent`: a positive pixel length.  \n\n4.`Paragraph`: `h1` for heading 1, `h2` for heading 2, or `h3` for heading 3. \n\n5.`AddLink`: must be a valid URL with an `http` or `https` prefix. For example: `https://example.com`","example":"h1"}}}},"encryption_info":{"type":"object","properties":{"key_id":{"type":"string","description":"The key ID for retrieving the data key.","example":"ZXhhbXBsZS1rZXktaWQ="},"encrypt_context":{"type":"string","description":"Base64-encoded encryption context for retrieving the data key.","example":"MTAwMSMjI0NTRTpUZWFtQ2hhdDpFeHRlcm5hbCMjIzcyYTdjOWI1YjFmNDQ1YjM4YWE5NWY0YzU2ODk3NTFjQGNvbmZlcmVuY2UueG1wcGRldi56b29tLnVz"},"encrypt_content":{"type":"string","description":"For encrypted messages, the encrypted payload corresponding to the `message` field. After decryption, it returns the plaintext message content.","example":"DPOGczEf1FKiIHmcuwAAAwAAABOU5fzpb5Hn8s6t9vzu3yC+dy4="},"encryption_algorithm":{"type":"string","description":"The encryption algorithm used for the message content.","example":"AES-GCM-256"}},"description":"Encryption metadata for an encrypted chat message."}}}},"from":{"type":"string","description":"The query's start date.","format":"date","example":"2022-03-17"},"messages":{"type":"array","description":"An array containing chat message information.\n\n**Note:** The `page_size` parameter only works for messages.","items":{"type":"object","properties":{"date_time":{"type":"string","description":"The timestamp when the chat message was sent.","format":"date-time","example":"2022-03-17T08:27:57Z"},"files":{"type":"array","description":"The information about the chat files.","items":{"type":"object","properties":{"download_url":{"type":"string","description":"The URL to download the chat file.","example":"https://zoom.us/file/download/qreigNgqTk24RNnGJDxpDg?filename=48k.png&jwt=downloadjwt"},"file_id":{"type":"string","description":"The chat file's unique ID.","example":"qreigNgqTk24RNnGJDxpDg"},"file_name":{"type":"string","description":"The chat file's name and its file extension.","example":"48k.png"},"file_size":{"type":"integer","description":"The chat file's size in bytes.","example":224251}}}},"giphy_information":{"type":"array","description":"The giphy information in the chat message","items":{"type":"object","properties":{"giphy_view_url":{"type":"string","description":"The view URL of the giphy","example":"https://giphy.com/gifs/union-soton-congrats-susu-soton-StRUIQttj1ewZVYZH2"},"giphy_download_url":{"type":"string","description":"The download URL of the giphy.","example":"https://media.giphy.com/media/TBzxTzdzRKZitQnhfx/giphy.gif"}}}},"id":{"type":"string","description":"The chat message's ID.","example":"7ba4d98b-0a6a-4fb4-a71b-dd13fd689dc8"},"message":{"type":"string","description":"The contents of the chat message. For encrypted messages, this field contains a placeholder, and the actual plaintext content is obtained by decrypting `encryption_info.encrypt_content`.","example":"How are you"},"reactions":{"type":"array","description":"A list of emoji reactions.","items":{"type":"object","properties":{"emoji":{"type":"string","description":"The emoji's unicode value in `UTF-32` format.","example":"U+1F600"},"total_count":{"type":"integer","description":"The emoji's total usage count.","example":1},"user_ids":{"type":"array","description":"A list of user IDs from the same account, that replied to this message with this emoji. user IDs of those who are not from the same account will be omitted from the list.","items":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},"member_ids":{"type":"array","description":"A list of user member IDs that replied to this message with this emoji.","items":{"type":"string","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}}}},"custom_emoji_reactions":{"type":"array","description":"A list of custom emoji reactions.","items":{"type":"object","properties":{"custom_emoji_name":{"type":"string","description":"The custom emoji's name.","example":"test_custom_emoji_name"},"custom_emoji_file_id":{"type":"string","description":"The custom emoji's file id.","example":"bliAGZfKSqOWev3rCwC99Q"},"total_count":{"type":"integer","description":"The emoji's total usage count.","example":1},"user_ids":{"type":"array","description":"A list of user IDs from the same account, that replied to this message with this emoji. user IDs of those who are not from the same account will be omitted from the list.","items":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}},"member_ids":{"type":"array","description":"A list of user member IDs that replied to this message with this emoji.","items":{"type":"string","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}}}},"emoji_actions":{"type":"array","description":"A list of custom emoji reaction actions within a given time range.","items":{"type":"object","properties":{"emoji":{"type":"string","description":"The custom emoji's name.","example":"U+1F600"},"emoji_action":{"type":"string","description":"The emoji's action.","example":"remove","enum":["remove","add"]},"user_id":{"type":"string","description":"The user ID who performed emoji `add` or `remove` actions.","example":"v4iyWT1LTfy8QvPG4GTvdg"},"member_id":{"type":"string","description":"The user's member ID who performed emoji `add` or `remove` actions.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"},"emoji_action_timestamp":{"type":"integer","description":"A timestamp of when the emoji action (add or remove) occurred. ","format":"int64","example":1775106992998}}}},"receiver":{"type":"string","description":"The chat message's recipient. This field only returns if the chat session is `1:1`.","example":"jchill@example.com"},"is_sender_external":{"type":"boolean","description":"This field determines whether the sender is external to the API caller's account. This field only returns if the chat session is `1:1`.","example":true},"reply_main_message_id":{"type":"string","description":"The reply message's unique ID. The API only returns this value if the message is a reply message.","example":"{27ED2949-6457-417C-83EA-72515DAF00BD}"},"reply_main_message_timestamp":{"type":"integer","description":"A timestamp of when the reply message was sent. The API only returns this value if the message is a reply message.","format":"int64","example":1647494500135},"sender":{"type":"string","description":"The message sender's email address. If the sender does not belong to the same account as the current user or is not the current user's contact, this field will be empty.","example":"jchill@example.com"},"sender_member_id":{"type":"string","description":"The message sender's member ID.","example":"R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJTSK"},"sender_display_name":{"type":"string","description":"The message sender's display name.","example":"Tom"},"timestamp":{"type":"integer","description":"The message's timestamp, in milliseconds.","format":"int64","example":1647494500135},"action_timestamp":{"type":"integer","description":"The current message's action time, in milliseconds.","format":"int64","example":1747494500135},"forward_id":{"type":"string","description":"The forwarded message ID, use to get forwarded message detail info.","example":"6dfgdfgdg444447b0egga"},"bot_message":{"type":"object","properties":{"is_markdown_support":{"type":"boolean","description":"Whether markdown is enabled.","example":false},"source":{"type":"string","description":"If the message is sent via Mio, this field represents the platform from which the message was sent. For more information about Mio, see [Integrating with Mio Chat Interoperability](https://support.zoom.us/hc/en-us/articles/6584541876621-Integrating-with-Mio-Chat-Interoperability).","example":"CCCC"},"external_sender_email":{"type":"string","description":"If the message is sent via Mio, this field represents the email address from which the message was sent. For more information about Mio, see [Integrating with Mio Chat Interoperability](https://support.zoom.us/hc/en-us/articles/6584541876621-Integrating-with-Mio-Chat-Interoperability).","example":"user@example.com"},"content":{"type":"object","description":"The Chatbot's message content, in JSON format. For more information, see [Chatbots: Send, Edit, and Delete Messages](https://marketplace.zoom.us/docs/guides/chatbots/send-edit-and-delete-messages).","example":"{\"head\":{\"text\":\"This is the head\",\"version\":1},\"body\":[{\"type\":\"message\",\"version\":1,\"text\":\"This is the body\",\"editable\":false,\"event_id\":\"message_0000\"}],\"settings\":{\"is_split_sidebar\":true,\"default_sidebar_color\":\"#0E71EB\"}}"}},"description":"Details of bot message."},"rich_text":{"type":"array","description":"The [rich text formatting](https://support.zoom.us/hc/en-us/articles/115004789183-Replying-to-and-managing-chat-messages) information.","items":{"type":"object","properties":{"start_position":{"type":"integer","description":"The start position of the rich text in the message string.","example":0},"end_position":{"type":"integer","description":"The end position of the rich text.","example":5},"format_type":{"type":"string","description":"The type of rich text format.","example":"Paragraph","enum":["Bold","Italic","Strikethrough","BulletedList","NumberedList","Underline","FontSize","FontColor","BackgroundColor","LeftIndent","Paragraph","Quote","AddLink"]},"format_attr":{"type":"string","description":"The attribute values of a specific `format_type`:\n\n1.`FontSize`: `s` for small, `m` for medium, or `l` for large font sizes. \n\n2.`FontColor` and `BackgroundColor`: only supports RGB values. For example: `FFC0CB` \n\n3.`LeftIndent`: a positive pixel length.  \n\n4.`Paragraph`: `h1` for heading 1, `h2` for heading 2, or `h3` for heading 3. \n\n5.`AddLink`: must be a valid URL with an `http` or `https` prefix. For example: `https://example.com`","example":"h1"}}}},"encryption_info":{"type":"object","properties":{"key_id":{"type":"string","description":"The key ID for retrieving the data key.","example":"ZXhhbXBsZS1rZXktaWQ="},"encrypt_context":{"type":"string","description":"Base64-encoded encryption context for retrieving the data key.","example":"MTAwMSMjI0NTRTpUZWFtQ2hhdDpFeHRlcm5hbCMjIzcyYTdjOWI1YjFmNDQ1YjM4YWE5NWY0YzU2ODk3NTFjQGNvbmZlcmVuY2UueG1wcGRldi56b29tLnVz"},"encrypt_content":{"type":"string","description":"For encrypted messages, the encrypted payload corresponding to the `message` field. After decryption, it returns the plaintext message content.","example":"DPOGczEf1FKiIHmcuwAAAwAAABOU5fzpb5Hn8s6t9vzu3yC+dy4="},"encryption_algorithm":{"type":"string","description":"The encryption algorithm used for the message content.","example":"AES-GCM-256"}},"description":"Encryption metadata for an encrypted chat message."}}}},"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","example":"b43YBRLJFg3V4vsSpxvGdKIGtNbxn9h9If2"},"page_size":{"maximum":100,"type":"integer","description":"The amount of records returned within a single API call. ","example":30,"default":30},"to":{"type":"string","description":"The query's end date.","format":"date","example":"2022-03-25"}}}}}},"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_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["report_chat:read:admin","imchat:read:admin"],"x-granular-scopes":["report:read:chat_session:admin"]}}},"/chat/spaces":{"get":{"tags":["Shared Spaces"],"summary":"List shared spaces","description":"Returns a list shared spaces.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:write:admin`,`chat:read:admin`,`chat:write`,`chat:read`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_shared_spaces`,`team_chat:read:list_shared_spaces:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listSharedSpaces","parameters":[{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned with a single API call.","required":false,"schema":{"type":"string","example":"30","default":"30"}},{"name":"user_id","in":"query","description":"The user ID or email address of the user. \r\n\r\nFor an `user-level app`, this API only returns shared spaces the caller is in.\r\nFor an `account-level app`, this API only returns shared spaces the `user` is in, and all shared spaces in the account will be returned if the `user_id` is empty.","required":false,"schema":{"type":"string","example":"v4iyWT1LTfy8QvPG4GTvdg"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   Shared space list returned.","content":{"application/json":{"schema":{"required":["shared_spaces"],"type":"object","properties":{"next_page_token":{"type":"string","description":"The next page token paginates through large result sets. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","example":"8V8HigQkzm2O5r9RUn31D9ZyJHgrmFfbLa2"},"page_size":{"type":"integer","description":"The number of records returned with a single API call.","example":30},"shared_spaces":{"type":"array","description":"The shared spaces.","items":{"required":["space_id","space_name","space_owner"],"type":"object","properties":{"space_id":{"type":"string","description":"The space's ID.","example":"bb31fa470fdc410cb76527282aa380d4"},"space_name":{"type":"string","description":"The space's name.","example":"space name"},"space_desc":{"type":"string","description":"The space's description.","example":"learning space"},"space_owner":{"required":["display_name","is_external_user","member_id"],"type":"object","properties":{"user_id":{"type":"string","description":"The owner's user ID. This value returns an empty string for external users.","example":"KDcuGIm1QgePTO8WbOqwIQ"},"member_id":{"type":"string","description":"The owner's member ID.","example":"1vuNwCvcgr1mI8WliW1gUKxoA8lozI4LHqDVoRIjMGaQHINfZWxqVHMilvXM8HGA"},"email":{"type":"string","description":"The owner's email address. This value returns an empty string for external users.","example":"jchill@example.com"},"display_name":{"type":"string","description":"The owner's display name","example":"jchill"},"is_external_user":{"type":"boolean","description":"Whether the user is external to the organization.","example":true}},"description":"The space's owner"}}}}}}}}},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n No permission to access the shared spaces. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat:write:admin","chat:read:admin","chat:write","chat:read"],"x-granular-scopes":["team_chat:read:list_shared_spaces","team_chat:read:list_shared_spaces:admin"]}},"post":{"tags":["Shared Spaces"],"summary":"Create a shared space","description":"Creates a shared space.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:write`,`chat:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:shared_space`,`team_chat:write:shared_space:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `RESOURCE-INTENSIVE`","operationId":"createSpace","requestBody":{"content":{"application/json":{"schema":{"required":["space_name"],"type":"object","properties":{"space_name":{"type":"string","description":"The shared space's name.","example":"Developer Group"},"space_desc":{"type":"string","description":"The description of the shared space.","example":"Developer discussion group."},"space_members":{"maxItems":100,"minItems":1,"type":"array","description":"The members of the shared space.","items":{"required":["identifier"],"type":"object","properties":{"identifier":{"type":"string","description":"The space member's user ID or member ID.","example":"1vRFhZt_2gipkB-SFKkOpnkh"},"role":{"type":"string","description":"This field indicates the role of the member.\n* `member` - Normal users in the shared space.\n* `owner` - Owner in the shared space.\n* `admin` - Admin users in the shared space.\n\n**Note:** Only one owner is allowed. If `role` is set to `owner`, `identifiers` must contain one element.","example":"admin","default":"member","enum":["admin","member","owner"]}},"description":"The shared space member."}},"space_settings":{"type":"object","properties":{"allow_to_add_external_users":{"type":"integer","description":"This field indicates whether external users can be added to the shared space: \n* `0` - External user cannot be added to the shared space.\n* `1` - All shared space members can add external users to the shared space.\n* `2` - Only shared space members within your organization can add external users to the shared space. \n* `3` - Only shared space owners and administrators can add external users to the shared space.\n","example":0,"enum":[0,1,2,3]},"add_member_permissions":{"type":"integer","description":"This field indicates who can add new shared space members: \n* `1` - All shared space members can add new members to the shared space.\n* `2` - Only shared space owners and administrators can add new members to the shared space.\n","example":1,"enum":[1,2]},"create_channels_permission":{"type":"integer","description":"This field indicates who can create new channels or move existing channels to the shared space: \n* `1` - All shared space members can create new channels or move existing channels to the shared space.\n* `2` - Only shared space owners and administrators can create new channels or move existing channels to the shared space.\n","example":1,"enum":[1,2]}},"description":"The settings of the shared space."}}}}}},"responses":{"201":{"description":"**Status Code**: `201`  Shared space created.","content":{"application/json":{"schema":{"required":["channel_id","space_id","space_name"],"type":"object","properties":{"space_id":{"type":"string","description":"The shared space's unique identifier ID.","example":"8609fdea87b44e2f8e0f21ef3906046c"},"channel_id":{"type":"string","description":"The ID of the default channel in the shared space.","example":"8609fdea87b44e2f8e0f21ef3906046c"},"space_name":{"type":"string","description":"The shared space's name.","example":"Developer Group"},"space_desc":{"type":"string","description":"The description of the shared space.","example":"Developer discussion group."},"space_members":{"type":"array","description":"The shared space members.","items":{"type":"object","properties":{"identifier":{"type":"string","description":"The space member's user ID or member ID.\n","example":"1vRFhZt_2gipkB-SFKkOpnkh"},"role":{"type":"string","description":"This field indicates the role of the member.\n* `member` - Normal users in the shared space.\n* `owner` - Owner in the shared space.\n* `admin` - Admin users in the shared space.\n\n**Note:** Only one owner is allowed. If `role` is set to `owner`, `identifiers` must contain one element.","example":"admin","enum":["admin","member","owner"]}},"description":"The member of the shared space."}},"space_settings":{"type":"object","properties":{"allow_to_add_external_users":{"type":"integer","description":"This field indicates whether external users can be added to the shared space: \n* `0` - External user cannot be added to the shared space.\n* `1` - All shared space members can add external users to the shared space.\n* `2` - Only shared space members within your organization can add external users to the shared space. \n* `3` - Only shared space owners and administrators can add external users to the shared space.\n","example":0,"enum":[0,1,2,3]},"add_member_permissions":{"type":"integer","description":"This field indicates who can add new shared space members: \n* `1` - All shared space members can add new members to the shared space.\n* `2` - Only shared space owners and administrators can add new members to the shared space.\n","example":1,"enum":[1,2]},"create_channels_permission":{"type":"integer","description":"This field indicates who can create new channels or move existing channels to the shared space: \n* `1` - All shared space members can create new channels or move existing channels to the shared space.\n* `2` - Only shared space owners and administrators can create new channels or move existing channels to the shared space.\n","example":1,"enum":[1,2]}},"description":"The settings of the shared space."}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5601` <br>\n System error, please try again later. <br>\n**Error Code:** `5603` <br>\n This name is already in use. Please enter another name. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to create a shared space. <br>\n**Error Code:** `5602` <br>\n You do not have permission to create a shared space on behalf of another user. <br>\n**Error Code:** `5603 ` <br>\n Each shared space can only has one space owner. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $userId. <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 "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat:write","chat:write:admin"],"x-granular-scopes":["team_chat:write:shared_space","team_chat:write:shared_space:admin"]}}},"/chat/spaces/{spaceId}":{"get":{"tags":["Shared Spaces"],"summary":"Get a shared space","description":"Returns information about a shared space.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:read:admin`,`chat:read`,`chat:write`,`chat:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:shared_space`,`team_chat:read:shared_space:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getASharedSpace","parameters":[{"name":"spaceId","in":"path","description":"The space's ID.","required":true,"schema":{"type":"string","example":"bb31fa470fdc410cb76527282aa380d4"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200` **OK**   Shared space object returned.","content":{"application/json":{"schema":{"required":["owner","space_id","space_name","space_settings"],"type":"object","properties":{"space_id":{"type":"string","description":"The space's ID.","example":"bb31fa470fdc410cb76527282aa380d4"},"space_name":{"type":"string","description":"The space's name.","example":"space name"},"space_desc":{"type":"string","description":"The space's description.","example":"learning space"},"owner":{"required":["display_name ","is_external_user","member_id"],"type":"object","properties":{"user_id":{"type":"string","description":"The owner's user ID. This value returns an empty string for external users.","example":"KDcuGIm1QgePTO8WbOqwIQ"},"member_id":{"type":"string","description":"The owner's member ID.","example":"1vuNwCvcgr1mI8WliW1gUKxoA8lozI4LHqDVoRIjMGaQHINfZWxqVHMilvXM8HGA"},"email":{"type":"string","description":"The owner's email address. This value returns an empty string for external users.","example":"jchill@example.com"},"display_name ":{"type":"string","description":"The owner's display name","example":"jchill"},"is_external_user":{"type":"boolean","description":"Whether the user is external to the organization.","example":true}},"description":"The space's owner."},"space_settings":{"type":"object","properties":{"allow_to_add_external_users":{"type":"integer","description":"This field indicates whether external users can be added to the shared space: \n* `0` - External user cannot be added to the shared space.\n* `1` - All shared space members can add external users to the shared space.\n* `2` - Only shared space members within your organization can add external users to the shared space. \n* `3` - Only shared space owners and administrators can add external users to the shared space.\n","example":0,"enum":[0,1,2,3]},"add_member_permissions":{"type":"integer","description":"This field indicates who can add new shared space members: \n* `1` - All shared space members can add new members to the shared space.\n* `2` - Only shared space owners and administrators can add new members to the shared space.\n","example":1,"enum":[1,2]},"create_channels_permission":{"type":"integer","description":"This field indicates who can create new channels or move existing channels to the shared space: \n* `1` - All shared space members can create new channels or move existing channels to the shared space.\n* `2` - Only shared space owners and administrators can create new channels or move existing channels to the shared space.\n","example":1,"enum":[1,2]}},"description":"The settings of the shared space."}}}}}},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n No permission to access the shared spaces. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5407` <br>\n Space does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat:read:admin","chat:read","chat:write","chat:write:admin"],"x-granular-scopes":["team_chat:read:shared_space","team_chat:read:shared_space:admin"]}},"delete":{"tags":["Shared Spaces"],"summary":"Delete a shared space","description":"Deletes a shared space. This API endpoint works for user-level and account-level apps.\n\n**Note:** For user-level apps, the user calling this API must be the shared space owner. \n**Note:** For account-level apps, the user calling this API must have a [role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management) that has the **Edit** permission for the **Chat Channels** feature.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:write`,`chat:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:shared_space`,`team_chat:delete:shared_space:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `RESOURCE-INTENSIVE`","operationId":"deleteSpace","parameters":[{"name":"spaceId","in":"path","description":"The shared space ID.","required":true,"schema":{"type":"string","example":"8609fdea87b44e2f8e0"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204` **No Content**  \n\n Shared space deleted."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to delete the shared space failed. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to delete the shared space. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist. <br>\n**Error Code:** `5407` <br>\n Shared space does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat:write","chat:write:admin"],"x-granular-scopes":["team_chat:delete:shared_space","team_chat:delete:shared_space:admin"]}},"patch":{"tags":["Shared Spaces"],"summary":"Update shared space settings","description":"Updates a shared space's settings. Shared space owner can update `space_name`, `space_description`, and `space_settings`. Space admins can only update `space_name` and `space_description` unless the admin is also the space owner. \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:write`,`chat:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:shared_space`,`team_chat:update:shared_space:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"updateSharedSpaceSettings","parameters":[{"name":"spaceId","in":"path","description":"The shared space's unique identifier ID.","required":true,"schema":{"type":"string","example":"asdjfdwyntuuq3yqpmoixdq"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"space_name":{"type":"string","description":"The name of the shared space.","example":"Dev Space"},"space_desc":{"type":"string","description":"The description of the shared space.","example":"A dev's space."},"space_settings":{"type":"object","properties":{"allow_to_add_external_users":{"type":"integer","description":"This field indicates whether external users can be added to the shared space: \n* `0` - External user cannot be added to the shared space.\n* `1` - All shared space members can add external users to the shared space.\n* `2` - Only shared space members within your organization can add external users to the shared space. \n* `3` - Only shared space owners and administrators can add external users to the shared space.\n","example":0,"enum":[0,1,2,3]},"add_member_permissions":{"type":"integer","description":"This field indicates who can add new shared space members: \n* `1` - All shared space members can add new members to the shared space.\n* `2` - Only shared space owners and administrators can add new members to the shared space.\n","example":1,"enum":[1,2]},"create_channels_permission":{"type":"integer","description":"This field indicates who can create new channels or move existing channels to the shared space: \n* `1` - All shared space members can create new channels or move existing channels to the shared space.\n* `2` - Only shared space owners and administrators can create new channels or move existing channels to the shared space.\n","example":1,"enum":[1,2]}},"description":"The settings of the shared space."}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`Successfully updated the shared space's settings."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `4719` <br>\n Share space settings request body missing. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to access the shared space. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $userId. <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 "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat:write","chat:write:admin"],"x-granular-scopes":["team_chat:update:shared_space","team_chat:update:shared_space:admin"]}}},"/chat/spaces/{spaceId}/admins":{"post":{"tags":["Shared Spaces"],"summary":"Promote shared space members to administrators","description":"Promotes shared space members to administrators. \n\n**Note:** This API supports account-level apps. The user calling this API must have a [role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management) that has the **Edit** permission for the **Chat Channels** feature.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:write`,`chat:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:shared_space_administrators`,`team_chat:write:shared_space_administrators:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"promoteSpaceMembers","parameters":[{"name":"spaceId","in":"path","description":"The shared space ID.","required":true,"schema":{"type":"string","example":"8609fdea87b44e2f8e0"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["members"],"type":"object","properties":{"members":{"maxItems":20,"minItems":1,"uniqueItems":true,"type":"array","description":"The list of shared space members to be promoted to administrators.","items":{"required":["identifier"],"type":"object","properties":{"identifier":{"type":"string","description":"The user ID or member ID of the user.","example":"1vRFhZt_2gipkB-SFKkOpnkh"}},"description":"The information about the user."}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`  Shared space members successfully promoted to administrators.","content":{"application/json":{"schema":{"required":["successful_operations_count","unsuccessful_operations_count","users"],"type":"object","properties":{"successful_operations_count":{"type":"integer","description":"The number of shared space members successfully promoted to administrators.","example":5},"unsuccessful_operations_count":{"type":"integer","description":"The number of users failed to be promnoted to shared space administrators.","example":3},"users":{"type":"array","description":"A list of users.","items":{"required":["is_external_user","member_id","operation_status","user_id"],"type":"object","properties":{"user_id":{"type":"string","description":"The user ID of the user. It's set to an empty string for external users.","example":"1stlycl8qwcvfubn4dvdca"},"member_id":{"type":"string","description":"The user's member ID.","example":"1vRFhZt_2gipkB-SFKkOpnkh"},"is_external_user":{"type":"boolean","description":"Whether the user is external to the organization.","example":false},"operation_status":{"type":"string","description":"The status of the new shared space administrator:\n* `successful`: The shared space member is successfully promoted to an administrator.\n* `unsuccessful`: Failed to promote the user to a shared space administrator.","example":"successful","enum":["successful","unsuccessful"]}},"description":"The user's information."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to promote shared space members to administrators failed. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to promote shared space members to administrators. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5407` <br>\n Shared space does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat:write","chat:write:admin"],"x-granular-scopes":["team_chat:write:shared_space_administrators","team_chat:write:shared_space_administrators:admin"]}},"delete":{"tags":["Shared Spaces"],"summary":"Demote shared space administrators to members","description":"Demotes shared space administrators to members. \n\n**Note:** This API supports account-level apps. The user calling this API must have a [role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management) that has the **Edit** permission for the **Chat Channels** feature.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:write`,`chat:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:shared_space_administrators`,`team_chat:delete:shared_space_administrators:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"demoteSpaceAdmins","parameters":[{"name":"spaceId","in":"path","description":"The shared space ID.","required":true,"schema":{"type":"string","example":"8609fdea87b44e2f8e0"}},{"name":"identifiers","in":"query","description":"The user IDs or member IDs of the shared space administrators you want to demote to members, separated by comma (,). \nYou can demote a maximum of 20 shared space administrators.","required":true,"schema":{"type":"string","example":"zqmgs2tmspguoqcxyahsya,R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  Shared space administrators successfully demoted to members.","content":{"application/json":{"schema":{"required":["successful_operations_count","unsuccessful_operations_count","users"],"type":"object","properties":{"successful_operations_count":{"type":"integer","description":"The number of shared space administrators successfully demoted to memnbers.","example":5},"unsuccessful_operations_count":{"type":"integer","description":"The number of users failed to be demoted to shared space members.","example":3},"users":{"type":"array","description":"A list of users.","items":{"required":["is_external_user","member_id","operation_status","user_id"],"type":"object","properties":{"user_id":{"type":"string","description":"The user ID of the user. It's set to an empty string for external users.","example":"1stlycl8qwcvfubn4dvdca"},"member_id":{"type":"string","description":"The user's member ID.","example":"1vRFhZt_2gipkB-SFKkOpnkh"},"is_external_user":{"type":"boolean","description":"Whether the user is external to the organization.","example":false},"operation_status":{"type":"string","description":"Whether the user is demoted to shared space member.\n* `successful`: The shared space administrator is successfully demoted to member.\n* `unsuccessful`: Failed to demote the user to shared space member.","example":"successful","enum":["successful","unsuccessful"]}},"description":"The user's information."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to demote shared space administrators failed. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Unauthorized request. You don't have permission to demote shared space administrators. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5407` <br>\n Shared space does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat:write","chat:write:admin"],"x-granular-scopes":["team_chat:delete:shared_space_administrators","team_chat:delete:shared_space_administrators:admin"]}}},"/chat/spaces/{spaceId}/channels":{"get":{"tags":["Shared Spaces"],"summary":"List shared space channels","description":"Returns a list of channels for a shared space.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:write:admin`,`chat:read:admin`,`chat:write`,`chat:read`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_shared_space_channels`,`team_chat:read:list_shared_space_channels:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listSharedSpaceChannels","parameters":[{"name":"spaceId","in":"path","description":"The space's ID","required":true,"schema":{"type":"string","example":"bb31fa470fdc410cb76527282aa380d4"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"type":"integer","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"The next page token to paginates through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"IAfJX3jsOLW7w3dokmFl84zOa0MAVGyMEB2"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   Channel list returned.","content":{"application/json":{"schema":{"required":["channels"],"type":"object","properties":{"next_page_token":{"type":"string","description":"The next page token paginates through large result sets. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","example":"8V8HigQkzm2O5r9RUn31D9ZyJHgrmFfbLa2"},"page_size":{"type":"integer","description":"The number of records returned with a single API call.","example":30},"channels":{"type":"array","description":"The channels in the shared space.","items":{"required":["channel_id","channel_name","member_count","space_channel_type"],"type":"object","properties":{"channel_id":{"type":"string","description":"The channel's ID.","example":"cabc1234567defghijkl01234"},"channel_name":{"type":"string","description":"The channel's name.","example":"Developers"},"description":{"type":"string","description":"The channel's description.","example":"Learning channel"},"space_channel_type":{"type":"string","description":"The shared space channel type.\r\n* `general` - The channel is general.\r\n* `private` - Only invited members can be added. Members do not have to join the shared space.\r\n* `public_for_members` - Everyone in the Shared Space can join.","example":"private","enum":["private","public_for_members","general"]},"member_count":{"type":"integer","description":"The channel's member count.","example":30}}}}}}}}},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n No permission to access the shared spaces. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5407` <br>\n Space does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat:write:admin","chat:read:admin","chat:write","chat:read"],"x-granular-scopes":["team_chat:read:list_shared_space_channels","team_chat:read:list_shared_space_channels:admin"]}},"patch":{"tags":["Shared Spaces"],"summary":"Move shared space channels","description":"Moves one or more channels in or out of a shared space. \n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:write`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:shared_space_channels`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"updateSharedSpaceChannels","parameters":[{"name":"spaceId","in":"path","description":"The shared space's unique identifier ID.","required":true,"schema":{"type":"string","example":"8609fdea87b44e2f8e0f21ef3906046c"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["channel_ids","move_direction"],"type":"object","properties":{"channel_ids":{"maxItems":50,"minItems":1,"type":"array","description":"The IDs of channels requested to be moved in or out of the shared space.","items":{"type":"string","description":"The channel's unique identifier ID.","example":"8609fdea87b44e2f8e08609fdea87b44e2f8e0"}},"move_direction":{"type":"string","description":"This field indicates whether to move in or out of the shared space.","example":"move_into","enum":["move_into","move_out"]}}}}}},"responses":{"200":{"description":"**HTTP Status Code:** `204`Successfully moved the shared space channels.","content":{"application/json":{"schema":{"required":["channel_details","channels","move_direction","moved_channel_count","space_id"],"type":"object","properties":{"space_id":{"type":"string","description":"The shared space's unique identifier ID.","example":"9f1b93284a69472387db562d7ba81733"},"move_direction":{"type":"string","description":"This field indicates whether to move in or out of the shared space.","example":"move_into"},"channels":{"type":"array","description":"The details of moved channels.","items":{"required":["channel_id","is_moved"],"type":"object","properties":{"channel_id":{"type":"string","description":"The channel ID.","example":"d896a8fdf1424df0ae8f13218d2a6f78"},"is_moved":{"type":"boolean","description":"The status of the channel's moving action.\n* false: failed to move the channel into or out of a shared space.\n* true: the channel has been successfully moved into or out of a shared space.","example":true}}}}}}}}},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to access this shared space. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist: $userId. <br>\n**Error Code:** `300` <br>\n Shared pace does not exist: $spaceId. <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 "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n "}},"security":[{"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["chat:write"],"x-granular-scopes":["team_chat:update:shared_space_channels"]}}},"/chat/spaces/{spaceId}/members":{"get":{"tags":["Shared Spaces"],"summary":"List shared space members","description":"Returns a list of members in a shared space.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:write:admin`,`chat:read:admin`,`chat:write`,`chat:read`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:read:list_shared_space_members`,`team_chat:read:list_shared_space_members:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"listSharedSpaceMembers","parameters":[{"name":"spaceId","in":"path","description":"The space's ID.","required":true,"schema":{"type":"string","example":"bb31fa470fdc410cb76527282aa380d4"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"type":"integer","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results.  A next page token returns whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.","required":false,"schema":{"type":"string","example":"IAfJX3jsOLW7w3dokmFl84zOa0MAVGyMEB2"}},{"name":"role","in":"query","description":"The user's role. \r\n* `all` - All users in the shared space. \r\n* `member` - Normal users in the shared space. \r\n* `owner` - Owner in the shared space. \r\n* `admin` - Admin users in the shared space. \r\n\r\nThis value defaults to `all`.","required":false,"schema":{"type":"string","example":"all","default":"all","enum":["all","member","owner","admin"]}},{"name":"status","in":"query","description":"Whether to query active users or not.\r\n* `all` - All users in the shared space. \r\n* `active` - Active users in the shared space. \r\n* `inactive` - Inactive users in the shared space. \r\n\r\nThis value defaults to `all`.","required":false,"schema":{"type":"string","example":"all","default":"all","enum":["all","active","inactive"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   Member list returned.","content":{"application/json":{"schema":{"required":["members"],"type":"object","properties":{"next_page_token":{"type":"string","description":"The next page token paginates through large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","example":"8V8HigQkzm2O5r9RUn31D9ZyJHgrmFfbLa2"},"page_size":{"type":"integer","description":"The number of records returned with a single API call.","example":30},"members":{"type":"array","description":"The members in the shared space.\r\n","items":{"required":["display_name","first_name","is_external_user","last_name","member_id","role","status"],"type":"object","properties":{"user_id":{"type":"string","description":"The user's ID. This value returns an empty string for external users.","example":"KDcuGIm1QgePTO8WbOqwIQ"},"member_id":{"type":"string","description":"The user's member ID.","example":"1vuNwCvcgr1mI8WliW1gUKxoA8lozI4LHqDVoRIjMGaQHINfZWxqVHMilvXM8HGA"},"email":{"type":"string","description":"The user's email address. This value returns an empty string for external users.","example":"jchill@example.com"},"role":{"type":"string","description":"The user's role. \r\n* `member` - Normal users in the shared space. \r\n* `owner` - Owner in the shared space. \r\n* `admin` - Admin users in the shared space. \r\n","example":"member","enum":["member","owner","admin"]},"status":{"type":"string","description":"The user's status. \r\n* `active` - An active user. \r\n* `inactive` - A deactivated user. ","example":"active","enum":["active","inactive"]},"first_name":{"type":"string","description":"The user's first name.","example":"Jill"},"last_name":{"type":"string","description":"The user's last name.","example":"Chill"},"display_name":{"type":"string","description":"The user's display name.","example":"Jill Chill"},"is_external_user":{"type":"boolean","description":"Whether the user is external to the organization.","example":true}}}}}}}}},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n No permission to access the shared spaces. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5407` <br>\n Space does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Read"],"x-macro-scopes":["chat:write:admin","chat:read:admin","chat:write","chat:read"],"x-granular-scopes":["team_chat:read:list_shared_space_members","team_chat:read:list_shared_space_members:admin"]}},"post":{"tags":["Shared Spaces"],"summary":"Add members to a shared space","description":"Adds members to a shared space. \n\n**Note:** This API supports account-level apps. The user calling this API must have a [role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management) that has the **Edit** permission for the **Chat Channels** feature.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:write`,`chat:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:write:shared_space_members`,`team_chat:write:shared_space_members:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"addSpaceMembers","parameters":[{"name":"spaceId","in":"path","description":"The shared space ID.","required":true,"schema":{"type":"string","example":"8609fdea87b44e2f8e0"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["members"],"type":"object","properties":{"members":{"maxItems":20,"minItems":1,"uniqueItems":true,"type":"array","description":"The list of users to be added to the shared space.","items":{"required":["identifier"],"type":"object","properties":{"identifier":{"type":"string","description":"The user ID or member ID of the user.","example":"1vRFhZt_2gipkB-SFKkOpnkh"}},"description":"The information about the user."}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`  Members successfully added to the shared space.","content":{"application/json":{"schema":{"required":["successful_operations_count","unsuccessful_operations_count","users"],"type":"object","properties":{"successful_operations_count":{"type":"integer","description":"The number of users successfully added to the shared space.","example":5},"unsuccessful_operations_count":{"type":"integer","description":"The number of users failed to be added to the shared space.","example":3},"users":{"type":"array","description":"A list of users.","items":{"required":["is_external_user","member_id","operation_status","user_id"],"type":"object","properties":{"user_id":{"type":"string","description":"The user ID of the user. It's set to an empty string for external users.","example":"1stlycl8qwcvfubn4dvdca"},"member_id":{"type":"string","description":"The user's member ID.","example":"1vRFhZt_2gipkB-SFKkOpnkh"},"is_external_user":{"type":"boolean","description":"Whether the user is external to the organization.","example":false},"operation_status":{"type":"string","description":"The status of the new shared space member:\n* `successful`: The user is successfully added as a shared space member.\n* `unsuccessful`: Failed to add the user as a shared space member.","example":"successful","enum":["successful","unsuccessful"]}},"description":"The user's information."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to add members to the shared space failed. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Unauthorized request. You do not have permission to add members to the shared space. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5407` <br>\n Shared space does not exist. <br>\n**Error Code:** `1001` <br>\n User does not exist: $identifier. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat:write","chat:write:admin"],"x-granular-scopes":["team_chat:write:shared_space_members","team_chat:write:shared_space_members:admin"]}},"delete":{"tags":["Shared Spaces"],"summary":"Remove members from a shared space","description":"Removes members from a shared space. \n\n**Note:** This API supports account-level apps. The user calling this API must have a [role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management) that has the **Edit** permission for the **Chat Channels** feature.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:write`,`chat:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:delete:shared_space_members`,`team_chat:delete:shared_space_members:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"deleteSpaceMembers","parameters":[{"name":"spaceId","in":"path","description":"The shared space ID.","required":true,"schema":{"type":"string","example":"8609fdea87b44e2f8e0"}},{"name":"identifiers","in":"query","description":"The user ID or member ID of the shared space members or administrators you want to remove from the shared space. \n\nYou can remove a maximum of 20 IDs, separated by commas. The owner of the shared space cannot be removed.","required":true,"schema":{"type":"string","example":"zqmgs2tmspguoqcxyahsya,R4VM29Oj0fVM2hhEmSKVM2hhezJTezJTKVM2hezJT2hezJ"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`  Members successfully removed from the shared space.","content":{"application/json":{"schema":{"required":["successful_operations_count","unsuccessful_operations_count","users"],"type":"object","properties":{"successful_operations_count":{"type":"integer","description":"The number of users successfully removed from the shared space.","example":5},"unsuccessful_operations_count":{"type":"integer","description":"The number of users failed to be removed from the shared space.","example":3},"users":{"type":"array","description":"A list of users.","items":{"required":["is_external_user","member_id","operation_status","user_id"],"type":"object","properties":{"user_id":{"type":"string","description":"The user ID of the user. It's set to an empty string for external users.","example":"1stlycl8qwcvfubn4dvdca"},"member_id":{"type":"string","description":"The user's member ID.","example":"1vRFhZt_2gipkB-SFKkOpnkh"},"is_external_user":{"type":"boolean","description":"Whether the user is external to the organization.","example":false},"operation_status":{"type":"string","description":"Whether the user is successfully removed from the shared space.\n* `successful`: The user is successfully removed from the shared space.\n* `unsuccessful`: Failed to remove the user from the shared space.","example":"successful","enum":["successful","unsuccessful"]}},"description":"The user's information."}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to remove shared space members failed. <br>\n**Error Code:** `1001` <br>\n User does not exist: {member_id}. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Unauthorized request. You don't have permission to remove members from the shared space. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5407` <br>\n Shared space does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat:write","chat:write:admin"],"x-granular-scopes":["team_chat:delete:shared_space_members","team_chat:delete:shared_space_members:admin"]}}},"/chat/spaces/{spaceId}/owner":{"patch":{"tags":["Shared Spaces"],"summary":"Transfer shared space ownership","description":"Transfers shared space ownership to a member or administrator.\n\n **Note:** This API supports account-level apps. The user calling this API must have a [role](https://support.zoom.us/hc/en-us/articles/115001078646-Using-role-management) that has the **Edit** permission for the **Chat Channels** feature.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `chat:write`,`chat:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `team_chat:update:shared_space_owner`,`team_chat:update:shared_space_owner:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"transferSpaceOwner","parameters":[{"name":"spaceId","in":"path","description":"The shared space ID.","required":true,"schema":{"type":"string","example":"8609fdea87b44e2f8e0"}},{"name":"identifier","in":"query","description":"The user ID or member ID of the new shared space owner.","required":true,"schema":{"type":"string","example":"zqmgs2tmspguoqcxyahsya"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204` **No Content**   Shared space ownership transfered. The old owner is now a shared space member."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `5301` <br>\n Request to transfer shared space ownership failed. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `200` <br>\n Unauthorized request. You don't have permission to transfer shared space ownership. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `5407` <br>\n Shared space does not exist. <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_authorization":[]}],"x-extensions":{"x-permissions":["ChatChannel:Edit"],"x-macro-scopes":["chat:write","chat:write:admin"],"x-granular-scopes":["team_chat:update:shared_space_owner","team_chat:update:shared_space_owner:admin"]}}}},"components":{"securitySchemes":{"openapi_authorization":{"scheme":"bearer","type":"http"}}},"tags":[{"name":"Chat Channel Mention Group"},{"name":"Chat Channels"},{"name":"Chat Channels (Account-level)"},{"name":"Chat Emoji"},{"name":"Chat External Connections"},{"name":"Chat Files"},{"name":"Chat Messages"},{"name":"Chat Migration"},{"name":"Chat Reminder"},{"name":"Chat Sessions"},{"name":"Contacts"},{"name":"IM Chat"},{"name":"IM Groups"},{"name":"Invitations"},{"name":"Legal Hold"},{"name":"Reports"},{"name":"Shared Spaces"}]}