# Revenue Accelerator - **OpenAPI Version:** `3.1.1` - **API Version:** `2` The ZRA APIs allow developers to interface with [Zoom Revenue Accelerator](https://developers.zoom.us/docs/zra/) features programmatically. You may see references to 'Zoom IQ', this is Zoom Revenue Accelerator's former name. ## Servers - **URL:** `https://api.zoom.us/v2` ## Operations ### Get indicators settings \[Deprecated] ⚠️ Deprecated - **Method:** `GET` - **Path:** `/iq/settings/indicators` - **Tags:** Accounts Get the account's indicators settings. **Prerequisites:** - The account must be a paid account. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `account:read:admin`,`account:write:admin`,`iq_account:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:indicator`,`zra:read:indicator:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` Account indicators settings returned. ###### Content-Type: application/json **All of:** - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. * **`indicators`** `array` — The indicator settings. **Items:** - **`category_id`** `string` — The indicator's category id. - **`category_name`** `string` — The indicator's category name. - **`created_time`** `string`, format: `date-time` — The time at which the indicator was added. - **`description`** `string` — The indicator's description. - **`enabled`** `boolean` — Whether the indicator is enabled. - **`id`** `string` — The indicator id. - **`last_modified_time`** `string`, format: `date-time` — The time at which the indicator was last updated. - **`last_modified_user_name`** `string` — User name of the user that configured the latest update. - **`mentioned_by`** `string`, possible values: `"anyone", "reps", "prospects"` — Identify when Mentioned by. - **`name`** `string` — The indicator's name. - **`type`** `string`, possible values: `"basic", "advanced", "guiding_sentences"` — The indicator's type. **Example:** ```json { "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30, "indicators": [ { "id": "9u9Sl3PBTGmAm38-7ke-Fg", "name": "indicator name", "description": "description", "category_id": "KYjRY564SzGoUsGFG7zTTw", "category_name": "Market-3", "type": "basic", "mentioned_by": "anyone", "enabled": true, "created_time": "2022-03-22T05:59:09Z", "last_modified_time": "2022-03-22T05:59:09Z", "last_modified_user_name": "user name" } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`1001\` \
indicator setting is disable. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Category does not exist: {$categoryId}. \
Type does not exist: {$typeId}. \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get indicators settings - **Method:** `GET` - **Path:** `/zra/settings/indicators` - **Tags:** Accounts Get the account's indicators settings. **Prerequisites:** - The account must be a paid account. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `account:read:admin`,`account:write:admin`,`iq_account:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:indicator`,`zra:read:indicator:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` Account indicators settings returned. ###### Content-Type: application/json **All of:** - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. * **`indicators`** `array` — The indicator settings. **Items:** - **`category_id`** `string` — The indicator's category id. - **`category_name`** `string` — The indicator's category name. - **`created_time`** `string`, format: `date-time` — The time at which the indicator was added. - **`description`** `string` — The indicator's description. - **`enabled`** `boolean` — Whether the indicator is enabled. - **`id`** `string` — The indicator id. - **`last_modified_time`** `string`, format: `date-time` — The time at which the indicator was last updated. - **`last_modified_user_name`** `string` — User name of the user that configured the latest update. - **`mentioned_by`** `string`, possible values: `"anyone", "reps", "prospects"` — Identify when Mentioned by. - **`name`** `string` — The indicator's name. - **`type`** `string`, possible values: `"basic", "advanced", "guiding_sentences"` — The indicator's type. **Example:** ```json { "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30, "indicators": [ { "id": "9u9Sl3PBTGmAm38-7ke-Fg", "name": "indicator name", "description": "description", "category_id": "KYjRY564SzGoUsGFG7zTTw", "category_name": "Market-3", "type": "basic", "mentioned_by": "anyone", "enabled": true, "created_time": "2022-03-22T05:59:09Z", "last_modified_time": "2022-03-22T05:59:09Z", "last_modified_user_name": "user name" } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`1001\` \
indicator setting is disable. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Category does not exist: {$categoryId}. \
Type does not exist: {$typeId}. \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### List conversations \[Deprecated] ⚠️ Deprecated - **Method:** `GET` - **Path:** `/iq/conversations` - **Tags:** Conversations List all conversations. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:read`,`iq_conversation:write`,`iq_conversation:read:admin`,`iq_conversation:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:list_conversations`,`zra:read:list_conversations:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` All authorized conversations returned. ###### Content-Type: application/json **All of:** - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. * **`conversations`** `array` **Items:** - **`conversation_id`** `string` — The conversation ID. - **`conversation_topic`** `string` — The conversation topic. - **`conversation_type`** `string` — The conversation type. - **`deal_id`** `string` — The Zoom specific deal ID. - **`duration`** `integer` — The recording duration in minutes. - **`engagement_score`** `integer` — The engagement score. - **`engaging_questions_count`** `integer` — The count of engaging questions. - **`filler_words_count`** `integer` — The count of filler words per minute. - **`host_id`** `string` — The meeting host's user ID. - **`iq_processed_time`** `string` — The time IQ was processed. - **`meeting_id`** `integer`, format: `int64` — The meeting ID also known as the meeting number in long (int64) format. - **`meeting_start_time`** `string` — The meeting start time. - **`meeting_uuid`** `string` — The Meeting ID. Each meeting instance generates its own meeting UUID. - **`next_steps_count`** `integer` — The count of next steps. - **`processing_analysis`** `boolean` — Whether the conversation is in processing analysis. - **`sentiment_score`** `integer` — The sentiment score. - **`topic`** `string` — The meeting topic. **Example:** ```json { "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30, "conversations": [ { "conversation_id": "egLSRuj2SlWet+wLi87LNA==,1667893163000", "host_id": "x1yCzABCDEfg23HiJKl4mN", "meeting_id": 896549134891, "meeting_uuid": "egLSRuj2SlWet+wLi87LNA==", "deal_id": "0065g00000DgD2QAAV", "conversation_topic": "Maximize profits", "duration": 60, "conversation_type": "meeting", "meeting_start_time": "2022-03-23T06:00:00Z", "iq_processed_time": "2022-03-23T06:00:00Z", "engagement_score": 20, "sentiment_score": 80, "engaging_questions_count": 5, "next_steps_count": 5, "filler_words_count": 5, "processing_analysis": false } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`1001\` \
The from or to time is invalid. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Team does not exist: {$teamId} \
Deal does not exist: {$dealId} \
Host or participant user does not exist: {$userId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Add conversation by file id or download url. \[Deprecated] ⚠️ Deprecated - **Method:** `POST` - **Path:** `/iq/conversations` - **Tags:** Conversations Add conversation by file ID or third party download URL. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:write:admin`,`iq_conversation:write` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:conversation`,`zra:write:conversation:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Request Body ##### Content-Type: application/json - **`conversation_type` (required)** `string`, possible values: `"meeting", "phone"` — The conversation type: \* \`meeting\` - Meeting conversations. \* \`phone\` - Phone conversations. - **`meeting_start_time` (required)** `string` — The meeting start time. - **`conversation_topic`** `string` — The meeting/phone topic. - **`deal_id`** `string` — The Zoom deal ID. - **`download_url`** `string` — The third party download URL. - **`file_id`** `string` — The IQ file's unique ID. - **`host_id`** `string` — The host user ID or email address. - **`meeting_end_time`** `string` — The meeting end time. - **`participants`** `array` — A list of the participants. up to a maximum of 200 participants. For external users, only need to pass display name. **Items:** - **`display_name` (required)** `string` — The name of the participant. - **`email`** `string` — The email of the participant, if available. - **`primary_language`** `string`, possible values: `"en", "es", "fr", "de", "it", "zh", "ru", "uk", "ja", "ko", "vi", "pt", "nl", "hi"` — The primary language. - **`timeline`** `array` — The speech timeline, who spoke when **Items:** - **`participants` (required)** `array` — A list of the users.For external users, only need to pass display name. **Items:** - **`display_name` (required)** `string` — The name of the participant. - **`email`** `string` — The email of the participant, if available. - **`start_time_in_recording` (required)** `string` — The start time in recording. - **`timezone`** `string` — Time zone to format time. For a list of supported timezones and their formats, see our \[timezone list]\(https\://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones). **Example:** ```json { "host_id": "IGTRVt3gQ2i-WjoUIjeZxw", "file_id": "xBvggqyjQUal6TecwMlYwQ", "download_url": "https://example.com/foo.mp4", "conversation_topic": "Maximize profits", "conversation_type": "meeting", "deal_id": "0065g00000DgD2QAAV", "primary_language": "en", "meeting_start_time": "2022-03-23T06:00:00Z", "meeting_end_time": "2022-03-23T06:00:00Z", "timezone": "America/Los_Angeles", "participants": [ { "display_name": "user name", "email": "user@example.com" } ], "timeline": [ { "start_time_in_recording": "00:00:01.910", "participants": [ { "display_name": "user name", "email": "user@example.com" } ] } ] } ``` #### Responses ##### Status: 201 \*\*HTTP Status Code:\*\* \`201\` Conversation added. ###### Content-Type: application/json - **`conversation_id`** `string` — The conversation ID. **Example:** ```json { "conversation_id": "egLSRuj2SlWet+wLi87LNA==,1667893163000" } ``` ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
File id does not exist: {$fileId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get conversation information \[Deprecated] ⚠️ Deprecated - **Method:** `GET` - **Path:** `/iq/conversations/{conversationId}` - **Tags:** Conversations Get information for a specific conversation. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:read`,`iq_conversation:write`,`iq_conversation:read:admin`,`iq_conversation:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:conversations:admin`,`zra:read:conversations` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` Conversation information returned. ###### Content-Type: application/json - **`conversation_id`** `string` — The conversation ID. - **`conversation_topic`** `string` — The conversation topic. - **`conversation_type`** `string` — The conversation type. - **`conversation_url`** `string` — The URL for easy access to conversation detail page. - **`deal`** `object` — The deal of the conversation. - **`close_date`** `string` — The close date of the deal. - **`customer_crm_account_name`** `string` — The customer CRM account name of the deal. - **`id`** `string` — The deal ID. - **`name`** `string` — The deal name. - **`stage`** `string` — The current stage of the deal. - **`duration`** `integer` — The recording duration in minutes. - **`engagement_score`** `integer` — The engagement score. - **`host_email`** `string`, format: `email` — The meeting host's email address. - **`host_id`** `string` — The meeting host's user ID. - **`iq_processed_time`** `string` — The time IQ processed. - **`meeting_id`** `integer`, format: `int64` — The meeting ID also known as the meeting number in long (int64) format. - **`meeting_start_time`** `string` — The meeting start time. - **`meeting_uuid`** `string` — The meeting ID. Each meeting instance generates its own meeting UUID. - **`sentiment_score`** `integer` — The sentiment score. - **`stage_during_conversation`** `string` — The stage of the deal when the conversation occurred - **`start_time`** `string` — The meeting start time. - **`summary`** `string` — The conversation summary. - **`topic`** `string` — The meeting topic. **Example:** ```json { "conversation_id": "egLSRuj2SlWet+wLi87LNA==,1667893163000", "meeting_id": 896549134891, "meeting_uuid": "egLSRuj2SlWet+wLi87LNA==", "host_id": "x1yCzABCDEfg23HiJKl4mN", "host_email": "jchill@example.com", "conversation_topic": "Maximize profits", "duration": 60, "summary": "summary", "conversation_type": "meeting", "stage_during_conversation": "Perception Analysis", "meeting_start_time": "2022-03-23T06:00:00Z", "iq_processed_time": "2022-03-23T06:00:00Z", "engagement_score": 20, "sentiment_score": 80, "conversation_url": "https://zoom.us/iq/conversation?meetingId...", "deal": { "id": "0065g00000DhY3eAAF", "name": "deal name", "stage": "Needs Analysis", "customer_crm_account_name": "customer", "close_date": "2023-04-19" } } ``` ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {$conversationId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Delete conversation by conversation ID \[Deprecated] ⚠️ Deprecated - **Method:** `DELETE` - **Path:** `/iq/conversations/{conversationId}` - **Tags:** Conversations Delete conversation by conversation ID. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:write:admin`,`iq_conversation:write` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:delete:conversations`,`zra:delete:conversations:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT` #### Responses ##### Status: 204 \*\*HTTP Status Code:\*\* \`204\` No Content. ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`300\` \
Invalid path parameter: {param} \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5004\` \
This conversation will be available after the processing analysis is completed \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {conversationId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get conversation comments \[Deprecated] ⚠️ Deprecated - **Method:** `GET` - **Path:** `/iq/conversations/{conversationId}/comments` - **Tags:** Conversations Get comments for a specific conversation. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_comment:read`,`iq_comment:write`,`iq_comment:read:admin`,`iq_comment:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:list_conversation_comments`,`zra:read:list_conversation_comments:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` Conversation comments returned. ###### Content-Type: application/json **All of:** - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. * **`comments`** `array` — The comments of the conversation. **Items:** - **`comment`** `string` — The actual comment. - **`created_time`** `string`, format: `date-time` — The time at which the comment was added. - **`id`** `string` — The comment's ID in this conversation. - **`is_private`** `boolean` — Determine whether comment is public or private. - **`last_modified_time`** `string`, format: `date-time` — The time at which the comment was last updated. - **`mention_teams`** `array` — The list of teams mentioned in the comment **Items:** - **`team_id`** `string` — The mentioned team's ID. - **`team_name`** `string` — The mentioned team's name. - **`mention_users`** `array` — The list of the users mentioned in the comment **Items:** - **`user_id`** `string` — The mentioned user's ID. - **`user_name`** `string` — The mentioned user's name. - **`parent_comment_id`** `string` — The parent comment's ID in this conversation. - **`time_in_recording`** `string` — The time in recording which the player should advance. - **`user_email`** `string` — The commenter's email address. - **`user_name`** `string` — The commenter's user name. **Example:** ```json { "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30, "comments": [ { "id": "7c8b7301-d32b-4850-92c7-ea9f5a40fd39", "parent_comment_id": "34dfg301-d32b-4850-92c7-ea9f5a40fd39", "user_name": "John Deve", "user_email": "user@example.com", "created_time": "2022-03-22T05:59:09Z", "last_modified_time": "2022-03-22T05:59:09Z", "comment": "Nicely done!", "mention_users": [ { "user_id": "hjficvXtR42vjSABCCS32Q", "user_name": "John Smith" } ], "mention_teams": [ { "team_id": "hjficvXtR42vjSABCCS32Q", "team_name": "John's team" } ], "is_private": false, "time_in_recording": "00:00:10" } ] } ``` ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {$conversationId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Add new comments to the conversation \[Deprecated] ⚠️ Deprecated - **Method:** `POST` - **Path:** `/iq/conversations/{conversationId}/comments` - **Tags:** Conversations Add new comments to a specific conversation. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_comment:write`,`iq_comment:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:conversation_comment`,`zra:write:conversation_comment:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Request Body ##### Content-Type: application/json - **`comment` (required)** `string` — The actual comment. - **`is_private`** `boolean` — Determine whether comment is public or private. - **`mention_team_ids`** `array` — The list of teams mentioned in the comment **Items:** `string` — The mentioned team's ID. - **`mention_user_ids`** `array` — The list of the users mentioned in the comment **Items:** `string` — The mentioned user's ID. - **`parent_comment_id`** `string` — The parent comment's ID in this conversation. - **`time_in_recording`** `string` — The time in recording which the player should advance. **Example:** ```json { "parent_comment_id": "34dfg301-d32b-4850-92c7-ea9f5a40fd39", "comment": "Nicely done!", "mention_user_ids": [ "hjficvXtR42vjSABCCS32Q" ], "mention_team_ids": [ "hjficvXtR42vjSABCCS32Q" ], "is_private": false, "time_in_recording": "00:00:10" } ``` #### Responses ##### Status: 201 \*\*HTTP Status Code:\*\* \`201\` Successfully added comment to conversation. ###### Content-Type: application/json - **`comment`** `string` — The actual comment. - **`created_time`** `string`, format: `date-time` — The time at which the comment was added. - **`id`** `string` — The comment's ID in this conversation. - **`is_private`** `boolean` — Determine whether comment is public or private. - **`last_modified_time`** `string`, format: `date-time` — The time at which the comment was last updated. - **`mention_teams`** `array` — The list of teams mentioned in the comment **Items:** - **`team_id`** `string` — The mentioned team's ID. - **`team_name`** `string` — The mentioned team's name. - **`mention_users`** `array` — The list of the users mentioned in the comment **Items:** - **`user_id`** `string` — The mentioned user's ID. - **`user_name`** `string` — The mentioned user's name. - **`parent_comment_id`** `string` — The parent comment's ID in this conversation. - **`time_in_recording`** `string` — The time in recording which the player should advance. - **`user_email`** `string` — The commenter's email address. - **`user_name`** `string` — The commenter's user name. **Example:** ```json { "id": "7c8b7301-d32b-4850-92c7-ea9f5a40fd39", "parent_comment_id": "34dfg301-d32b-4850-92c7-ea9f5a40fd39", "user_name": "John Deve", "user_email": "user@example.com", "created_time": "2022-03-22T05:59:09Z", "last_modified_time": "2022-03-22T05:59:09Z", "comment": "Nicely done!", "mention_users": [ { "user_id": "hjficvXtR42vjSABCCS32Q", "user_name": "John Smith" } ], "mention_teams": [ { "team_id": "hjficvXtR42vjSABCCS32Q", "team_name": "John's team" } ], "is_private": false, "time_in_recording": "00:00:10" } ``` ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {$conversationId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Delete conversation's comment \[Deprecated] ⚠️ Deprecated - **Method:** `DELETE` - **Path:** `/iq/conversations/{conversationId}/comments/{commentId}` - **Tags:** Conversations Delete comment from a specific conversation. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_comment:write`,`iq_comment:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:delete:conversation_comment`,`zra:delete:conversation_comment:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 204 \*\*HTTP Status Code:\*\* \`204\` No Content. ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {conversationId} \
Comment does not exist: {commentId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Edit conversation comment \[Deprecated] ⚠️ Deprecated - **Method:** `PATCH` - **Path:** `/iq/conversations/{conversationId}/comments/{commentId}` - **Tags:** Conversations Edit a comment for a specific conversation. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_comment:write`,`iq_comment:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:update:conversation_comment`,`zra:update:conversation_comment:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Request Body ##### Content-Type: application/json - **`comment`** `string` — The actual comment. - **`mention_team_ids`** `array` — The list of teams mentioned in the comment **Items:** `string` — The mentioned team's ID. - **`mention_user_ids`** `array` — The list of the users mentioned in the comment **Items:** `string` — The mentioned user's ID. - **`time_in_recording`** `string` — The time in recording which the player should advance. **Example:** ```json { "comment": "Nicely done!", "mention_user_ids": [ "hjficvXtR42vjSABCCS32Q" ], "mention_team_ids": [ "hjficvXtR42vjSABCCS32Q" ], "time_in_recording": "00:00:10" } ``` #### Responses ##### Status: 204 \*\*HTTP Status Code:\*\* \`204\` No Content. ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {conversationId} \
Comment does not exist: {commentId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get conversation content analysis \[Deprecated] ⚠️ Deprecated - **Method:** `GET` - **Path:** `/iq/conversations/{conversationId}/content_analysis` - **Tags:** Conversations Get the content analysis for a specific conversation. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:read`,`iq_conversation:write`,`iq_conversation:read:admin`,`iq_conversation:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:conversation_analysis`,`zra:read:conversation_analysis:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` Conversation information returned. ###### Content-Type: application/json **All of:** - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. * **`analysis`** `array` — The analysis results. **Items:** - **`section`** `array` **Items:** - **`display_name`** `string` — The name of the user. - **`end_time`** `string` — The indicator end time. - **`indicator_id`** `string` — The indicator ID. - **`indicator_name`** `string` — The indicator's name. - **`key_word`** `string` — The keyword define in indicator. - **`label`** `string` — The label of the topic. - **`marked_by`** `string`, possible values: `"nlp", "es", "the value of the user_id"` — The one who marked the content. \* \`nlp\` \— Marked by NLP. \* \`es\` \— Marked by ES. \* \`user\_id\` - Manually marked by the user with this user ID. - **`start_time`** `string` — The indicator start time. - **`text`** `string` — The text content. - **`user_id`** `string` — The ID of the user. If the participant joins the meeting without logging in or is external user, the value of this field will be blank. - **`utterance`** `string` — The text's complete utterance. * **`smart_chapters`** `array` — The smart chapters. Only returned when \`analysis\_type\` is \`smartChapters\`. **Items:** - **`category`** `string` — The chapter category. - **`end_time`** `string` — The chapter end time. - **`start_time`** `string` — The chapter start time. - **`summary`** `string` — The chapter summary. - **`title`** `string` — The chapter title. * **`summary`** `string` — The overall conversation summary. Only returned when the \`analysis\_type\` is \`smartChapters\` **Example:** ```json { "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30, "summary": "overall summary", "smart_chapters": [ { "title": "chapter title", "summary": "chapter summary.", "category": "chapter category", "start_time": "2022-03-23T06:00:00Z", "end_time": "2022-03-23T06:05:00Z" } ], "analysis": [ { "section": [ { "user_id": "hjficvXtR42vjSABCCS32Q", "display_name": "user name", "text": "text", "utterance": "next steps", "label": "pricing", "indicator_name": "Johnny Dev", "indicator_id": "INTrFEESRUqrdTXgKUIHnw", "key_word": "keyword", "marked_by": "nlp", "start_time": "2022-03-23T06:00:00Z", "end_time": "2022-03-23T06:00:00Z" } ] } ] } ``` ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {$conversationId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get conversation interactions \[Deprecated] ⚠️ Deprecated - **Method:** `GET` - **Path:** `/iq/conversations/{conversationId}/interactions` - **Tags:** Conversations Get interactions for a specific conversation. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:read`,`iq_conversation:write`,`iq_conversation:read:admin`,`iq_conversation:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:conversation_participants`,`zra:read:conversation_participants:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` Conversation information returned. ###### Content-Type: application/json **All of:** - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. * **`participants`** `array` — The speakers in the conversation. **Items:** - **`display_name`** `string` — The speaker's user name. - **`email`** `string` — The speaker's email address. If the participant joins the meeting without logging in or is external user, the value of this field will be blank. - **`metrics`** `object` — The metrics for the conversation. - **`filler_words`** `number` — The count of filler words. Unit: words/min. - **`longest_monolog`** `number` — The longest monologue in seconds. - **`patience`** `number` — The patience in seconds. - **`talk_speed`** `number` — The talk speed in words per minute. - **`talk_to_listen_ratio`** `number` — The talk-to-listen ratio. - **`speaker_type`** `string`, possible values: `"rep", "customer"` — The type of the speaker. - **`transcripts`** `array` **Items:** - **`end_time`** `string` — The speak item end time. - **`item_id`** `string` — The item ID. - **`start_time`** `string` — The speak item start time. - **`text`** `string` — The speech in text. - **`user_id`** `string` — The speaker's user ID. If the participant joins the meeting without logging in or is external user, the value of this field will be blank. **Example:** ```json { "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30, "participants": [ { "user_id": "hjficvXtR42vjSABCCS32Q", "display_name": "John Deve", "email": "user@example.com", "speaker_type": "rep", "transcripts": [ { "item_id": "0", "text": "speak text.", "start_time": "2022-03-23T06:00:00Z", "end_time": "2022-03-23T06:02:00Z" } ], "metrics": { "talk_to_listen_ratio": 1, "longest_monolog": 10, "talk_speed": 10, "filler_words": 10, "patience": 10 } } ] } ``` ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {$conversationId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get conversation scorecards \[Deprecated] ⚠️ Deprecated - **Method:** `GET` - **Path:** `/iq/conversations/{conversationId}/scorecards` - **Tags:** Conversations Get scorecards for a specific conversation. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_coaching:read:admin`,`iq_coaching:read` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:conversation_scorecards`,`zra:read:conversation_scorecards:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` Conversation scorecards returned. ###### Content-Type: application/json **All of:** - **`scorecards`** `array` — The scorecards of the conversation. **Items:** - **`average_score`** `number` — The average score for this scorecard. - **`rate_time`** `string`, format: `date-time` — The time at which the scorecard was rated. - **`rater`** `object` — User information of the person who rates this scorecard. - **`display_name`** `string` — Name of the person who rates the scorecard. - **`email`** `string` — Email address of person who rates the scorecard. - **`user_id`** `string` — The unique identifier for the user. - **`scorecard_description`** `string` — The scorecard's description. - **`scorecard_id`** `string` — The scorecard's ID. - **`scorecard_name`** `string` — The scorecard's name. - **`scorecard_questions`** `array` — Questions in the scorecard **Items:** - **`question_comment`** `string` — The question's comment. - **`question_description`** `string` — The question's description. - **`question_id`** `string` — The question's ID. - **`question_title`** `string` — The question title - **`scale`** `object` — The scale information for this question. - **`max_score_label`** `string` — The highest score. - **`min_score_label`** `string` — The lowest score. - **`score`** `number` — The user's score for the question. * **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. * **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. **Example:** ```json { "scorecards": [ { "scorecard_id": "xMCKjazFS9GtJRhGdcLhcQ", "scorecard_name": "Learning experience scoring", "scorecard_description": "Rate your learning experience for this conversation", "average_score": 10, "rate_time": "2022-03-22T05:59:09Z", "rater": { "email": "dummyname@gmail.com", "display_name": "dummy name", "user_id": "6dfgdfgdg444447b0egga" }, "scorecard_questions": [ { "question_id": "lasiSUvrSvG1rcqFCs4gtg", "question_title": "Question 1", "score": 8, "question_description": "How is this video quality for the conversation?", "question_comment": "This question is great.", "scale": { "min_score_label": "Very strongly disagree.", "max_score_label": "Very strongly agree." } } ] } ], "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30 } ``` ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {$conversationId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Update conversation host id to new host id by conversation id \[Deprecated] ⚠️ Deprecated - **Method:** `PATCH` - **Path:** `/iq/conversations/{conversationId}/update_host` - **Tags:** Conversations Update the conversation host id. **Prerequisite**: You must have either `iq_conversation:write:admin` or `iq_conversation:write` permissions. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:write:admin`,`iq_conversation:write` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:update:conversation_host`,`zra:update:conversation_host:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Request Body ##### Content-Type: application/json - **`new_host_id`** `string` — The user ID or email address of the host. **Example:** ```json { "new_host_id": "IGTRVt3gQ2i-WjoUIjeZxw" } ``` #### Responses ##### Status: 204 \*\*HTTP Status Code:\*\* \`204\` Conversation updated. ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`1006\` \
User has no IQ license. \
\*\*Error Code:\*\* \`300\` \
Missing field: {field} \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
User does not exist.\
\
\*\*Error Code:\*\* \`2001\` \
Conversation does not exist: {conversationId}.\
\
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Upload IQ file \[Deprecated] ⚠️ Deprecated - **Method:** `POST` - **Path:** `/iq/files` - **Tags:** Conversations Upload a file to Zoom Revenue Acclerator. **Prerequisite:**\ The caller must be a Zoom Revenue Acclerator-licensed user. **Note:** - Base URL: `https://fileapi.zoom.us/v2/`. - Rate limit: 20 requests per second per user or 2000 requests per second per IP address. - The caller must support HTTP 30x redirects. - The caller must retain the Authorization header when redirected to a different hostname. - Supported video formats: `.mov`, `.mp4`, `.avi`, `.wmv` or `H.264`. - Supported transcript and file attachment format: `.json` . The `fileName` must end with `transcript.json`. - Supported metadata and file attachment format: `.json`. The fileName must end with `metadata.json`. - Required file upload sequence: main file, transcript file (if necessary), metadata file (if necessary). - When your object size reaches 2 GB, you should use multipart uploads instead of uploading the object in a single operation. - For an **account-level** [OAuth app](https://developers.zoom.us/docs/integrations/create/), 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.\&text=Role%2Dbased%20access%20control%20enables,needs%20to%20view%20or%20edit.) with **Edit** permission for **All Conversations**. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:write:admin`,`iq_conversation:write` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:file`,`zra:write:file:admin` #### Request Body ##### Content-Type: multipart/form-data - **`file` (required)** `string` — The upload file, in binary format. You can only send a maximum of 2 gigabytes. - **`main_file_id`** `string` — The main file's unique ID. Use this field to upload a attachment file. - **`source`** `number` — The source of the transcript and metadata files, if this field is not provided, it defaults to a value of 1. There are two valid values for this field: \* 1: Represents files sourced from 'Gong.' \* 2: Represents files sourced from 'Chorus.' **Example:** ```json { "file": "", "main_file_id": "xBvggqyjQUal6TecwMlYwQ", "source": 1 } ``` #### Responses ##### Status: 201 \*\*HTTP Status Code:\*\* \`201\` File successfully uploaded. ###### Content-Type: application/json - **`file_id`** `string` — The IQ file's unique ID. **Example:** ```json { "file_id": "xBvggqyjQUal6TecwMlYwE" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`124\` \
Invalid access token. \
\*\*Error Code:\*\* \`200\` \
Zoom IQ plan is missing. You must subscribe to the zoom iq plan and enable zoom iq for this user in order to perform this action. \
\*\*Error Code:\*\* \`300\` \
Invalid File type. \
Maximum file size exceeded: ${maxSize}. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
File ID does not exist: {$fileId}.\
\
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Upload iq multipart file. \[Deprecated] ⚠️ Deprecated - **Method:** `POST` - **Path:** `/iq/files/multipart` - **Tags:** Conversations Use this API to upload a multipart file. **Note:** - The base URL for this API is `https://fileapi.zoom.us/v2/`. - The rate limit of this API is 20 requests per second or 2000 requests per day per IP address. - The caller must support HTTP 30x redirects. - The caller must retain the authorization header when redirected to a different hostname. - Video can be in `.mov`, `.mp4`, `.avi`, `.wmv` or `H.264` format. - Transcript can be in `.vtt`, `.json` format. - In general, when your object size reaches 2 GB, you should use multipart uploads instead of uploading the object in a single operation. - The caller must be a iq\_listened user. - 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.\&text=Role%2Dbased%20access%20control%20enables,needs%20to%20view%20or%20edit.) that has the **Edit** permission for **All Conversations**. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:write:admin`,`iq_conversation:write` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:file`,`zra:write:file:admin` #### Request Body ##### Content-Type: multipart/form-data - **`file` (required)** `string` — The upload file, in binary format. Each part must be at most 100 MB in size. Each part must be at least 5 MB in size, except the last part. - **`part_number` (required)** `integer` — When uploading multipart files, the part number of the part being uploaded. This is a positive integer between 1 and 100. - **`upload_context` (required)** `string` — When uploading multipart files, use Upload context to identify the multipart upload whose part is being uploaded. **Example:** ```json { "file": "", "upload_context": "noNpr2pkBEv4_fTxYWDEHBsSs3pl8keRx4fPZmnyNDe.SPdodJp.3UZDaCI2xRVzkRh0xeEV6RuOrXZpJQBPutWCS424c2YnHVxVh8b9.4DNwd4VErRuD98jeJBwRCgz6rC3I4NQg5zXAtCqPFoC0g--", "part_number": 10 } ``` #### Responses ##### Status: 201 \*\*HTTP Status Code:\*\* \`201\` File successfully uploaded. ###### Content-Type: application/json - **`part_number_etag`** `object` — The part number etag, Collect and bring it back in the final request to complete the multipart upload request. - **`etag`** `string` — The etag of the part being uploaded. - **`part_number`** `integer` — the part number of the part being uploaded. **Example:** ```json { "part_number_etag": { "part_number": 1, "etag": "etag1" } } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`124\` \
Invalid access token. \
\*\*Error Code:\*\* \`200\` \
Zoom IQ plan is missing. You must subscribe to the Zoom IQ plan and enable Zoom IQ for this user in order to perform this action. \
\*\*Error Code:\*\* \`300\` \
Invalid File type. \
Part number exceeded: ${maxSize}. \
Maximum file size exceeded: ${maxSize}.\
Each part must be at least 5 MB in size, except the last part. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Upload context {upload\_context} not exist.\
\
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Initiate and complete a multipart upload. \[Deprecated] ⚠️ Deprecated - **Method:** `POST` - **Path:** `/iq/files/multipart/upload_events` - **Tags:** Conversations Initiate or complete a multipart upload. **Note:** - The base URL for this API is `https://fileapi.zoom.us/v2/`. - The rate limit is 20 requests per second or 2000 requests per day per IP address. - The caller must support HTTP 30x redirects. - The caller must retain the authorization header when redirected to a different hostname. - Once initiated the multipart upload must complete within 7 days. - The caller must be an iq\_listened user. - For **account-level** [OAuth apps](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.\&text=Role%2Dbased%20access%20control%20enables,needs%20to%20view%20or%20edit.) with **Edit** permission for **All Conversations**. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:write:admin`,`iq_conversation:write` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:file`,`zra:write:file:admin` #### Request Body ##### Content-Type: application/json - **`method` (required)** `string`, possible values: `"CreateMultipartUpload", "CompleteMultipartUpload"` — The method to upload events: \* \`CreateMultipartUpload\` — Create a multipart upload. \* \`CompleteMultipartUpload\` — Complete a multipart upload. - **`params`** `object` — The CompleteMultipartUpload parameters. - **`file_name`** `string` — The iq file's name. If you pass the \`CreateMultipartUpload\` value for the \`method\` field. - **`main_file_id`** `string` — The main file's unique ID. If you pass the \`CreateMultipartUpload\` value for the \`method\` field, Use this field to upload a attachment file. - **`part_number_etags`** `array` — The part number etags being uploaded. Use this field if you pass the \`CompleteMultipartUpload\` value for the \`method\` field. **Items:** - **`etag`** `string` — The etag of the part being uploaded. - **`part_number`** `integer` — the part number of the part being uploaded. - **`upload_context`** `string` — Upload context identifying the multipart upload whose part is being uploaded. Use this field if you pass the \`CompleteMultipartUpload\` value for the \`method\` field. **Example:** ```json { "method": "CreateMultipartUpload", "params": { "file_name": "file name", "main_file_id": "xBvggqyjQUal6TecwMlYwQ", "upload_context": "noNpr2pkBEv4_fTxYWDEHBsSs3pl8keRx4fPZmnyNDe.SPdodJp.3UZDaCI2xRVzkRh0xeEV6RuOrXZpJQBPutWCS424c2YnHVxVh8b9.4DNwd4VErRuD98jeJBwRCgz6rC3I4NQg5zXAtCqPFoC0g--", "part_number_etags": [ { "part_number": 1, "etag": "etag1" } ] } } ``` #### Responses ##### Status: 201 \*\*Status Code:\*\* \`201\` Successfully initiate and complete a multipart upload. ###### Content-Type: application/json - **`file_id`** `string` — The iq file's unique ID. Return this field if you pass the \`CompleteMultipartUpload\` value for the \`method\` field. - **`upload_context`** `string` — The upload context. Return this field if you pass the \`CreateMultipartUpload\` value for the \`method\` field. \*\*Note:\*\* \* Use this upload context to associate all of the parts in the specific multipart upload. You specify this upload context in each of your subsequent upload part requests. You also include this upload context in the final request to complete the multipart upload request. **Example:** ```json { "upload_context": "noNpr2pkBEv4_fTxYWDEHBsSs3pl8keRx4fPZmnyNDe.SPdodJp.3UZDaCI2xRVzkRh0xeEV6RuOrXZpJQBPutWCS424c2YnHVxVh8b9.4DNwd4VErRuD98jeJBwRCgz6rC3I4NQg5zXAtCqPFoC0g--", "file_id": "xBvggqyjQUal6TecwMlYwQ" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`124\` \
Invalid access token. \
\*\*Error Code:\*\* \`200\` \
Zoom IQ plan is missing. You must subscribe to the Zoom IQ plan and enable Zoom IQ for this user in order to perform this action. \
\*\*Error Code:\*\* \`300\` \
Invalid part number etags. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Upload context {upload\_context} not exist.\
File ID does not exist: {$fileId}. \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Add conversation by meeting record url or meeting UUID. \[Deprecated] ⚠️ Deprecated - **Method:** `POST` - **Path:** `/iq/users/{userId}/conversations` - **Tags:** Conversations Add new conversation by meeting recording URL or meeting UUID. If both recording URL and meeting UUID are passed in the request but refer to different meetings, we use the recording URL and ignore the meeting UUID. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:write:admin`,`iq_conversation:write` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:conversation`,`zra:write:conversation:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Request Body ##### Content-Type: application/json - **`meeting_uuid`** `string` — The Meeting ID. Each meeting instance generates its own meeting UUID. - **`recording_link`** `string` — The meeting record url. It could be share\_url or play\_url. **Example:** ```json { "recording_link": "https://zoom.us/rec/share/....", "meeting_uuid": "egLSRuj2SlWet+wLi87LNA==" } ``` #### Responses ##### Status: 201 \*\*HTTP Status Code:\*\* \`201\` Conversation added. ###### Content-Type: application/json - **`meeting_uuid`** `string` — The Meeting ID. Each meeting instance generates its own meeting UUID. **Example:** ```json { "meeting_uuid": "egLSRuj2SlWet+wLi87LNA==" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`3300\` \
Failed to add the recording, please try again.\
\
\*\*Error Code:\*\* \`5333\` \
\`3318\`\
This is an invalid link. \
\
\*\*Error Code:\*\* \`3318\` \
This is an invalid link. \
\
\*\*Error Code:\*\* \`3320\` \
You cannot add recording with CMK encryption. \
\
\*\*Error Code:\*\* \`3319\` \
This recording is already added. \
\
\*\*Error Code:\*\* \`3315\` \
This recording is already under processing analysis.\
\
\*\*Error Code:\*\* \`3314\` \
The recording must have been made after {0}.\
\
\*\*Error Code:\*\* \`3317\` \
User has no IQ license. \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`3313\` \
User {$userId} is not the host of recording. \
\
\*\*Error Code:\*\* \`1004\` \
no permission to operate. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
User ID does not exist: {$userId}. \
\
\*\*Error Code:\*\* \`3316\` \
Meeting ID does not exist. \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get a user's playlist \[Deprecated] ⚠️ Deprecated - **Method:** `GET` - **Path:** `/iq/users/{userId}/conversations/playlists` - **Tags:** Conversations Get all playlists for a user. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_playlist:read`,`iq_playlist:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:list_conversation_playlists`,`zra:read:list_conversation_playlists` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` Successfully listed a user's playlist. ###### Content-Type: application/json **All of:** - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. * **`playlists`** `array` **Items:** - **`created_by`** `string` — The create user's name. - **`following`** `boolean` — Following plalist - **`modified_time`** `string`, format: `date-time` — The time the playlist was modified. - **`number_of_conversations`** `integer` — The number of conversations in a playlist. - **`playlist_id`** `string` — The Playlist ID. Each playlist will generate its own playlist UUID. - **`playlist_name`** `string` — The name of the playlist. - **`type`** `string` — The type of the playlist **Example:** ```json { "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30, "playlists": [ { "playlist_id": "7c8b7301-d32b-4850-92c7-ea9f5a40fd39", "type": "Normal", "modified_time": "2022-03-22T05:59:09Z", "playlist_name": "ZoomIQ Playlist", "number_of_conversations": 4, "following": true, "created_by": "John Smith" } ] } ``` ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1001\` \
User ID does not exist: {$userId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### List conversations - **Method:** `GET` - **Path:** `/zra/conversations` - **Tags:** Conversations List all conversations. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:read`,`iq_conversation:write`,`iq_conversation:read:admin`,`iq_conversation:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:list_conversations`,`zra:read:list_conversations:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` All authorized conversations returned. ###### Content-Type: application/json **All of:** - **`from`** `string` — The start date in \`yyyy-MM-dd'T'HH:mm:ss'Z'\` format. - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. - **`to`** `string` — The end date in \`yyyy-MM-dd'T'HH:mm:ss'Z'\` format. * **`conversations`** `array` **Items:** - **`conversation_id`** `string` — The conversation ID. - **`conversation_topic`** `string` — The conversation topic. - **`conversation_type`** `string` — The conversation type. - **`deal_id`** `string` — The Zoom specific deal ID. - **`duration`** `integer` — The recording duration in minutes. - **`duration_sec`** `integer` — The recording duration in seconds. - **`engagement_score`** `integer` — The engagement score. - **`engaging_questions_count`** `integer` — The count of engaging questions. - **`filler_words_count`** `integer` — The count of filler words per minute. - **`host_id`** `string` — The meeting host's user ID. - **`iq_processed_time`** `string` — The time IQ was processed. - **`meeting_id`** `integer`, format: `int64` — The meeting ID also known as the meeting number in long (int64) format. - **`meeting_start_time`** `string` — The meeting start time. - **`meeting_uuid`** `string` — The Meeting ID. Each meeting instance generates its own meeting UUID. - **`next_steps_count`** `integer` — The count of next steps. - **`processing_analysis`** `boolean` — Whether the conversation is in processing analysis. - **`sentiment_score`** `integer` — The sentiment score. - **`topic`** `string` — The meeting topic. **Example:** ```json { "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30, "from": "2024-04-16T21:39:50Z", "to": "2024-05-16T21:39:50Z", "conversations": [ { "conversation_id": "egLSRuj2SlWet+wLi87LNA==,1667893163000", "host_id": "x1yCzABCDEfg23HiJKl4mN", "meeting_id": 896549134891, "meeting_uuid": "egLSRuj2SlWet+wLi87LNA==", "deal_id": "0065g00000DgD2QAAV", "conversation_topic": "Maximize profits", "duration": 60, "duration_sec": 60, "conversation_type": "meeting", "meeting_start_time": "2022-03-23T06:00:00Z", "iq_processed_time": "2022-03-23T06:00:00Z", "engagement_score": 20, "sentiment_score": 80, "engaging_questions_count": 5, "next_steps_count": 5, "filler_words_count": 5, "processing_analysis": false } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`1001\` \
The from or to time is invalid. \
\
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Team does not exist: {$teamId} \
Deal does not exist: {$dealId} \
Host or participant user does not exist: {$userId} \
\
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Add conversation by file id or download url. - **Method:** `POST` - **Path:** `/zra/conversations` - **Tags:** Conversations Add conversation by file ID or third party download URL. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:write:admin`,`iq_conversation:write` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:conversation`,`zra:write:conversation:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Request Body ##### Content-Type: application/json - **`conversation_type` (required)** `string`, possible values: `"meeting", "phone"` — The conversation type: \* \`meeting\` - Meeting conversations. \* \`phone\` - Phone conversations. - **`meeting_start_time` (required)** `string` — The meeting start time. - **`conversation_topic`** `string` — The meeting/phone topic. - **`deal_id`** `string` — The Zoom deal ID. - **`download_url`** `string` — The third party download URL. - **`file_id`** `string` — The IQ file's unique ID. - **`host_id`** `string` — The host user ID or email address. - **`meeting_end_time`** `string` — The meeting end time. - **`participants`** `array` — A list of the participants. up to a maximum of 200 participants. For external users, only need to pass display name. **Items:** - **`display_name` (required)** `string` — The name of the participant. - **`email`** `string` — The email of the participant, if available. - **`primary_language`** `string`, possible values: `"en", "es", "fr", "de", "it", "zh", "ru", "uk", "ja", "ko", "vi", "pt", "nl", "hi"` — The primary language. - **`timeline`** `array` — The speech timeline, who spoke when **Items:** - **`participants` (required)** `array` — A list of the users.For external users, only need to pass display name. **Items:** - **`display_name` (required)** `string` — The name of the participant. - **`email`** `string` — The email of the participant, if available. - **`start_time_in_recording` (required)** `string` — The start time in recording. - **`timezone`** `string` — Time zone to format time. For a list of supported timezones and their formats, see our \[timezone list]\(https\://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones). **Example:** ```json { "host_id": "IGTRVt3gQ2i-WjoUIjeZxw", "file_id": "xBvggqyjQUal6TecwMlYwQ", "download_url": "https://example.com/foo.mp4", "conversation_topic": "Maximize profits", "conversation_type": "meeting", "deal_id": "0065g00000DgD2QAAV", "primary_language": "en", "meeting_start_time": "2022-03-23T06:00:00Z", "meeting_end_time": "2022-03-23T06:00:00Z", "timezone": "America/Los_Angeles", "participants": [ { "display_name": "user name", "email": "user@example.com" } ], "timeline": [ { "start_time_in_recording": "00:00:01.910", "participants": [ { "display_name": "user name", "email": "user@example.com" } ] } ] } ``` #### Responses ##### Status: 201 \*\*HTTP Status Code:\*\* \`201\` Conversation added. ###### Content-Type: application/json - **`conversation_id`** `string` — The conversation ID. **Example:** ```json { "conversation_id": "egLSRuj2SlWet+wLi87LNA==,1667893163000" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request bad request \*\*Error Code:\*\* \`1001\` \
request param is invalid \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
File id does not exist: {$fileId} \
\
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get conversation information - **Method:** `GET` - **Path:** `/zra/conversations/{conversationId}` - **Tags:** Conversations Get information for a specific conversation. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:read`,`iq_conversation:write`,`iq_conversation:read:admin`,`iq_conversation:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:conversations:admin`,`zra:read:conversations` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` Conversation information returned. ###### Content-Type: application/json - **`calendar_client`** `string` — The calendar provider associated with the calendar event linked to this conversation. - **`conversation_id`** `string` — The conversation ID. - **`conversation_topic`** `string` — The conversation topic. - **`conversation_type`** `string` — The conversation type. - **`conversation_url`** `string` — The URL for easy access to conversation detail page. - **`conversation_view`** `object` — The view information of this conversation. - **`total_view_counts`** `integer` — Total view times of this conversation. - **`view_user_infos`** `array` — View conversation user information. **Items:** - **`counts`** `integer` — The user view this conversation counts. - **`user_display_name`** `string` — The user name who viewed this conversation. - **`user_id`** `string` — The user ID who viewed this conversation. - **`deal`** `object` — The deal of the conversation. - **`close_date`** `string` — The close date of the deal. - **`customer_crm_account_name`** `string` — The customer CRM account name of the deal. - **`id`** `string` — The deal ID. - **`name`** `string` — The deal name. - **`stage`** `string` — The current stage of the deal. - **`downloadUrl`** `string` — Expires after one hour. - **`duration`** `integer` — The recording duration in minutes. - **`duration_sec`** `integer` — The recording duration, in seconds. - **`engagement_score`** `integer` — The engagement score. - **`event_id`** `string` — The unique ID of this calendar event in the calendar provider. - **`host_email`** `string`, format: `email` — The meeting host's email address. - **`host_id`** `string` — The meeting host's user ID. - **`iq_processed_time`** `string` — The time the IQ was processed. - **`meeting_id`** `integer`, format: `int64` — The meeting ID, also known as the meeting number, in long (int64) format. - **`meeting_start_time`** `string` — The meeting start time. - **`meeting_uuid`** `string` — The meeting ID. Each meeting instance generates its own meeting UUID. - **`moment_info`** `array` — The moment information of the conversation. **Items:** - **`create_user_display_name`** `string` — The user name who created this moment. - **`create_user_id`** `string` — The user ID who created this moment. - **`moment_id`** `string` — This moment's ID. - **`moment_name`** `string` — This moment's name. - **`share_counts`** `string` — Total shared counts of this moment. - **`share_user_infos`** `array` — Share this moment user information. **Items:** - **`counts`** `integer` — Unique user shared this moment counts. - **`user_display_name`** `string` — The user name who shared this moment. - **`user_id`** `string` — The user ID who shared this moment. - **`participants`** `array` — All of the users who belong in this meeting. **Items:** - **`display_name`** `string` — This participant's display name. - **`email`** `string` — This participant's email. - **`type`** `string`, possible values: `"rep", "customer"` — Rep or custome.r - **`recording_download_url`** `string` — Expires after one hour. - **`sentiment_score`** `integer` — The sentiment score. - **`stage_during_conversation`** `string` — The stage of the deal when the conversation occurred. - **`start_time`** `string` — The meeting start time. - **`summary`** `string` — The conversation summary. - **`topic`** `string` — The meeting topic. **Example:** ```json { "conversation_id": "egLSRuj2SlWet+wLi87LNA==,1667893163000", "meeting_id": 896549134891, "meeting_uuid": "egLSRuj2SlWet+wLi87LNA==", "host_id": "x1yCzABCDEfg23HiJKl4mN", "host_email": "jchill@example.com", "conversation_topic": "Maximize profits", "duration": 60, "summary": "summary", "conversation_type": "meeting", "stage_during_conversation": "Perception Analysis", "meeting_start_time": "2022-03-23T06:00:00Z", "iq_processed_time": "2022-03-23T06:00:00Z", "engagement_score": 20, "sentiment_score": 80, "conversation_url": "https://zoom.us/iq/conversation?meetingId...", "deal": { "id": "0065g00000DhY3eAAF", "name": "deal name", "stage": "Needs Analysis", "customer_crm_account_name": "customer", "close_date": "2023-04-19" }, "calendar_client": "Google/Outlook", "event_id": "6COPSIvrTv2LUS1pvtBokQ", "duration_sec": 20, "conversation_view": { "total_view_counts": 20, "view_user_infos": [ { "user_id": "6COPSIvrTv2LUS1pvtBokQ", "user_display_name": "tom", "counts": 10 } ] }, "participants": [ { "display_name": "tom", "email": "tom@example.com", "type": "rep/customer" } ], "moment_info": [ { "moment_id": "6COPSIvrTv2LUS1pvtBokQ", "moment_name": "Zoom meeting With someone", "create_user_id": "6COPSIvrTv2LUS1pvtBokQ", "create_user_display_name": "tom", "share_counts": "20", "share_user_infos": [ { "user_id": "6COPSIvrTv2LUS1pvtBokQ", "user_display_name": "tom", "counts": 10 } ] } ], "recording_download_url": "https://file.zoomdev.us/file/1W9SoktWRY2MX-Zq0Vwrmw?filename=Recording95493255.mp4&jwt=eyJrIjoiS0s0MWF6Ny8iLCJhbGciOiJFUzI1NiJ9.eyJpYXQiOjE3NTI0NjA2MjEsImRpZyI6IjAzMTIxYThlOTYwMjZmZDlmZTc0Zjc1ZjM3OWVjY2E3MzY0MzU1M2U1MTA3NDQwNDgyODM5YmMzNGVmYTA1ODkiLCJoZGlnIjpmYWxzZSwiZXhwIjoxNzUyNDYyNDIwLCJpaWMiOiJkZXYiLCJpc3MiOiJmaWxlIiwiYXVkIjoiemZzIiwib3JpIjoiem9vbV9pcSJ9.JomWh-yCJ_KW18hXeIdlI41bmv9nY8VUoSOiN61VeDMZZMg7PdsYMiMwKW7loiyU-QsUbpjNitZxVKawSmY5qQ" } ``` ##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`1004\` \
You don't have the permission. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {$conversationId}. \
\
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### Delete conversation by conversation ID - **Method:** `DELETE` - **Path:** `/zra/conversations/{conversationId}` - **Tags:** Conversations Delete conversation by conversation ID. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:write:admin`,`iq_conversation:write` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:delete:conversations`,`zra:delete:conversations:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT` #### Responses ##### Status: 204 \*\*HTTP Status Code:\*\* \`204\` No Content. ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`300\` \
Invalid path parameter: {param} \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5004\` \
This conversation will be available after the processing analysis is completed \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {conversationId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get conversation comments - **Method:** `GET` - **Path:** `/zra/conversations/{conversationId}/comments` - **Tags:** Conversations Get comments for a specific conversation. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_comment:read`,`iq_comment:write`,`iq_comment:read:admin`,`iq_comment:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:list_conversation_comments`,`zra:read:list_conversation_comments:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` Conversation comments returned. ###### Content-Type: application/json **All of:** - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. * **`comments`** `array` — The comments of the conversation. **Items:** - **`comment`** `string` — The actual comment. - **`created_time`** `string`, format: `date-time` — The time at which the comment was added. - **`id`** `string` — The comment's ID in this conversation. - **`is_private`** `boolean` — Determine whether comment is public or private. - **`last_modified_time`** `string`, format: `date-time` — The time at which the comment was last updated. - **`mention_teams`** `array` — The list of teams mentioned in the comment **Items:** - **`team_id`** `string` — The mentioned team's ID. - **`team_name`** `string` — The mentioned team's name. - **`mention_users`** `array` — The list of the users mentioned in the comment **Items:** - **`user_id`** `string` — The mentioned user's ID. - **`user_name`** `string` — The mentioned user's name. - **`parent_comment_id`** `string` — The parent comment's ID in this conversation. - **`time_in_recording`** `string` — The time in recording which the player should advance. - **`user_email`** `string` — The commenter's email address. - **`user_name`** `string` — The commenter's user name. **Example:** ```json { "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30, "comments": [ { "id": "7c8b7301-d32b-4850-92c7-ea9f5a40fd39", "parent_comment_id": "34dfg301-d32b-4850-92c7-ea9f5a40fd39", "user_name": "John Deve", "user_email": "user@example.com", "created_time": "2022-03-22T05:59:09Z", "last_modified_time": "2022-03-22T05:59:09Z", "comment": "Nicely done!", "mention_users": [ { "user_id": "hjficvXtR42vjSABCCS32Q", "user_name": "John Smith" } ], "mention_teams": [ { "team_id": "hjficvXtR42vjSABCCS32Q", "team_name": "John's team" } ], "is_private": false, "time_in_recording": "00:00:10" } ] } ``` ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {$conversationId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Add new comments to the conversation - **Method:** `POST` - **Path:** `/zra/conversations/{conversationId}/comments` - **Tags:** Conversations Add new comments to a specific conversation. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_comment:write`,`iq_comment:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:list_conversation_comments`,`zra:read:list_conversation_comments:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Request Body ##### Content-Type: application/json - **`comment` (required)** `string` — The actual comment. - **`is_private`** `boolean` — Determine whether comment is public or private. - **`mention_team_ids`** `array` — The list of teams mentioned in the comment **Items:** `string` — The mentioned team's ID. - **`mention_user_ids`** `array` — The list of the users mentioned in the comment **Items:** `string` — The mentioned user's ID. - **`parent_comment_id`** `string` — The parent comment's ID in this conversation. - **`time_in_recording`** `string` — The time in recording which the player should advance. **Example:** ```json { "parent_comment_id": "34dfg301-d32b-4850-92c7-ea9f5a40fd39", "comment": "Nicely done!", "mention_user_ids": [ "hjficvXtR42vjSABCCS32Q" ], "mention_team_ids": [ "hjficvXtR42vjSABCCS32Q" ], "is_private": false, "time_in_recording": "00:00:10" } ``` #### Responses ##### Status: 201 \*\*HTTP Status Code:\*\* \`201\` Successfully added comment to conversation. ###### Content-Type: application/json - **`comment`** `string` — The actual comment. - **`created_time`** `string`, format: `date-time` — The time at which the comment was added. - **`id`** `string` — The comment's ID in this conversation. - **`is_private`** `boolean` — Determine whether comment is public or private. - **`last_modified_time`** `string`, format: `date-time` — The time at which the comment was last updated. - **`mention_teams`** `array` — The list of teams mentioned in the comment **Items:** - **`team_id`** `string` — The mentioned team's ID. - **`team_name`** `string` — The mentioned team's name. - **`mention_users`** `array` — The list of the users mentioned in the comment **Items:** - **`user_id`** `string` — The mentioned user's ID. - **`user_name`** `string` — The mentioned user's name. - **`parent_comment_id`** `string` — The parent comment's ID in this conversation. - **`time_in_recording`** `string` — The time in recording which the player should advance. - **`user_email`** `string` — The commenter's email address. - **`user_name`** `string` — The commenter's user name. **Example:** ```json { "id": "7c8b7301-d32b-4850-92c7-ea9f5a40fd39", "parent_comment_id": "34dfg301-d32b-4850-92c7-ea9f5a40fd39", "user_name": "John Deve", "user_email": "user@example.com", "created_time": "2022-03-22T05:59:09Z", "last_modified_time": "2022-03-22T05:59:09Z", "comment": "Nicely done!", "mention_users": [ { "user_id": "hjficvXtR42vjSABCCS32Q", "user_name": "John Smith" } ], "mention_teams": [ { "team_id": "hjficvXtR42vjSABCCS32Q", "team_name": "John's team" } ], "is_private": false, "time_in_recording": "00:00:10" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request Bad request \*\*Error Code:\*\* \`1001\` \
Invalid request param \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {$conversationId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Delete conversation's comment - **Method:** `DELETE` - **Path:** `/zra/conversations/{conversationId}/comments/{commentId}` - **Tags:** Conversations Delete comment from a specific conversation. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_comment:write`,`iq_comment:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:delete:conversation_comment`,`zra:delete:conversation_comment:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 204 \*\*HTTP Status Code:\*\* \`204\` No Content. ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request Bad request \*\*Error Code:\*\* \`1001\` \
Invalid request param \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {conversationId} \
Comment does not exist: {commentId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Edit conversation comment - **Method:** `PATCH` - **Path:** `/zra/conversations/{conversationId}/comments/{commentId}` - **Tags:** Conversations Edit a comment for a specific conversation. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_comment:write`,`iq_comment:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:update:conversation_comment`,`zra:update:conversation_comment:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Request Body ##### Content-Type: application/json - **`comment`** `string` — The actual comment. - **`mention_team_ids`** `array` — The list of teams mentioned in the comment **Items:** `string` — The mentioned team's ID. - **`mention_user_ids`** `array` — The list of the users mentioned in the comment **Items:** `string` — The mentioned user's ID. - **`time_in_recording`** `string` — The time in recording which the player should advance. **Example:** ```json { "comment": "Nicely done!", "mention_user_ids": [ "hjficvXtR42vjSABCCS32Q" ], "mention_team_ids": [ "hjficvXtR42vjSABCCS32Q" ], "time_in_recording": "00:00:10" } ``` #### Responses ##### Status: 204 \*\*HTTP Status Code:\*\* \`204\` No Content. ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request Bad request \*\*Error Code:\*\* \`1001\` \
Invalid request param \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {conversationId} \
Comment does not exist: {commentId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get conversation content analysis - **Method:** `GET` - **Path:** `/zra/conversations/{conversationId}/content_analysis` - **Tags:** Conversations Get the content analysis for a specific conversation. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:read`,`iq_conversation:write`,`iq_conversation:read:admin`,`iq_conversation:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:conversation_analysis`,`zra:read:conversation_analysis:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` Conversation information returned. ###### Content-Type: application/json **All of:** - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. * **`analysis`** `array` — The analysis results. if \`analysis\_type\` is \`all\` will not returned **Items:** - **`section`** `array` — analysis section items **Items:** - **`display_name`** `string` — The name of the user. - **`end_time`** `string` — The indicator end time. - **`indicator_id`** `string` — The indicator ID. - **`indicator_name`** `string` — The indicator's name. - **`key_word`** `string` — The keyword define in indicator. - **`label`** `string` — The label of the topic. - **`marked_by`** `string`, possible values: `"nlp", "es", "aic", "the value of the user_id"` — The one who marked the content. \* \`nlp\` \— Marked by NLP. \* \`es\` \— Marked by ES. \* \`aic\` \— Marked by aic. \* \`user\_id\` - Manually marked by the user with this user ID. - **`start_time`** `string` — The indicator start time. - **`text`** `string` — The text content. - **`user_id`** `string` — The ID of the user. If the participant joins the meeting without logging in or is external user, the value of this field will be blank. - **`utterance`** `string` — The text's complete utterance. * **`deal_memo`** `object` — the deal memo of this conversation will returned when \`analysis\_type\` is \`dealMemo\` or \`all\`. - **`potential_concerns`** `array` — potential concerns **Items:** - **`explanation`** `string` — explanation for the factor - **`factor`** `string` — factor for potential\_concerns - **`potential_wins`** `array` — potential wins **Items:** - **`explanation`** `string` — explanation for the factor - **`factor`** `string` — factor for potential\_wins * **`good_questions`** `array` — The \`good\_question\`s results. Only exists when \`analysis\_type\` is \`all\`. **Items:** - **`section`** `array` — analysis section items **Items:** - **`display_name`** `string` — The name of the user. - **`end_time`** `string` — The indicator end time. - **`indicator_id`** `string` — The indicator ID. - **`indicator_name`** `string` — The indicator's name. - **`key_word`** `string` — The keyword define in indicator. - **`label`** `string` — The label of the topic. - **`marked_by`** `string`, possible values: `"nlp", "es", "aic", "the value of the user_id"` — The one who marked the content. \* \`nlp\` \— Marked by NLP. \* \`es\` \— Marked by ES. \* \`aic\` \— Marked by aic. \* \`user\_id\` - Manually marked by the user with this user ID. - **`start_time`** `string` — The indicator start time. - **`text`** `string` — The text content. - **`user_id`** `string` — The ID of the user. If the participant joins the meeting without logging in or is external user, the value of this field will be blank. - **`utterance`** `string` — The text's complete utterance. * **`indicators`** `array` — The indicators results. Only exists when \`analysis\_type\` is \`all\`. **Items:** - **`section`** `array` — analysis section items **Items:** - **`display_name`** `string` — The name of the user. - **`end_time`** `string` — The indicator end time. - **`indicator_id`** `string` — The indicator ID. - **`indicator_name`** `string` — The indicator's name. - **`key_word`** `string` — The keyword define in indicator. - **`label`** `string` — The label of the topic. - **`marked_by`** `string`, possible values: `"nlp", "es", "aic", "the value of the user_id"` — The one who marked the content. \* \`nlp\` \— Marked by NLP. \* \`es\` \— Marked by ES. \* \`aic\` \— Marked by aic. \* \`user\_id\` - Manually marked by the user with this user ID. - **`start_time`** `string` — The indicator start time. - **`text`** `string` — The text content. - **`user_id`** `string` — The ID of the user. If the participant joins the meeting without logging in or is external user, the value of this field will be blank. - **`utterance`** `string` — The text's complete utterance. * **`next_steps`** `array` — The \`next\_steps\` results. Only exists when \`analysis\_type\` is \`all\`. **Items:** - **`section`** `array` — analysis section items **Items:** - **`display_name`** `string` — The name of the user. - **`end_time`** `string` — The indicator end time. - **`indicator_id`** `string` — The indicator ID. - **`indicator_name`** `string` — The indicator's name. - **`key_word`** `string` — The keyword define in indicator. - **`label`** `string` — The label of the topic. - **`marked_by`** `string`, possible values: `"nlp", "es", "aic", "the value of the user_id"` — The one who marked the content. \* \`nlp\` \— Marked by NLP. \* \`es\` \— Marked by ES. \* \`aic\` \— Marked by aic. \* \`user\_id\` - Manually marked by the user with this user ID. - **`start_time`** `string` — The indicator start time. - **`text`** `string` — The text content. - **`user_id`** `string` — The ID of the user. If the participant joins the meeting without logging in or is external user, the value of this field will be blank. - **`utterance`** `string` — The text's complete utterance. * **`playbooks`** `array` — Playbook Notes **Items:** - **`elements`** `array` — The playbook contains elements with notes. **Items:** - **`answer`** `object` — The AI answer for this element. - **`sources`** `array` — sources **Items:** - **`end_time`** `string` — end time - **`item_id`** `string` — transcript item id - **`speaker_name`** `string` — speaker name - **`start_time`** `string` — start time - **`text`** `string` — transcript sentences - **`time_s`** `integer` — From the beginning to the current number of seconds - **`summaries`** `array` — summaries **Items:** `string` — summaries - **`element_id`** `string` — element id - **`element_name`** `string` — element name - **`playbook_id`** `string` — playbook id - **`playbook_name`** `string` — playbook name * **`smart_chapters`** `array` — The smart chapters. Returned when \`analysis\_type\` is \`smartChapters\` or \`all\`. **Items:** - **`category`** `string` — The chapter category. - **`end_time`** `string` — The chapter end time. - **`start_time`** `string` — The chapter start time. - **`summary`** `string` — The chapter summary. - **`title`** `string` — The chapter title. * **`summary`** `string` — The overall conversation summary. Only returned when the \`analysis\_type\` is \`smartChapters\` * **`topics`** `array` — The topics results. oOly exists when \`analysis\_type\` is \`all\`. **Items:** - **`section`** `array` — analysis section items **Items:** - **`display_name`** `string` — The name of the user. - **`end_time`** `string` — The indicator end time. - **`indicator_id`** `string` — The indicator ID. - **`indicator_name`** `string` — The indicator's name. - **`key_word`** `string` — The keyword define in indicator. - **`label`** `string` — The label of the topic. - **`marked_by`** `string`, possible values: `"nlp", "es", "aic", "the value of the user_id"` — The one who marked the content. \* \`nlp\` \— Marked by NLP. \* \`es\` \— Marked by ES. \* \`aic\` \— Marked by aic. \* \`user\_id\` - Manually marked by the user with this user ID. - **`start_time`** `string` — The indicator start time. - **`text`** `string` — The text content. - **`user_id`** `string` — The ID of the user. If the participant joins the meeting without logging in or is external user, the value of this field will be blank. - **`utterance`** `string` — The text's complete utterance. **Example:** ```json { "summary": "overall summary", "smart_chapters": [ { "title": "chapter title", "summary": "chapter summary.", "category": "chapter category", "start_time": "2022-03-23T06:00:00Z", "end_time": "2022-03-23T06:05:00Z" } ], "analysis": [ { "section": [ { "user_id": "hjficvXtR42vjSABCCS32Q", "display_name": "user name", "text": "text", "utterance": "next steps", "label": "pricing", "indicator_name": "Johnny Dev", "indicator_id": "INTrFEESRUqrdTXgKUIHnw", "key_word": "keyword", "marked_by": "nlp", "start_time": "2022-03-23T06:00:00Z", "end_time": "2022-03-23T06:00:00Z" } ] } ], "topics": [ { "section": [ { "user_id": "hjficvXtR42vjSABCCS32Q", "display_name": "user name", "text": "text", "utterance": "next steps", "label": "pricing", "indicator_name": "Johnny Dev", "indicator_id": "INTrFEESRUqrdTXgKUIHnw", "key_word": "keyword", "marked_by": "nlp", "start_time": "2022-03-23T06:00:00Z", "end_time": "2022-03-23T06:00:00Z" } ] } ], "next_steps": [ { "section": [ { "user_id": "hjficvXtR42vjSABCCS32Q", "display_name": "user name", "text": "text", "utterance": "next steps", "label": "pricing", "indicator_name": "Johnny Dev", "indicator_id": "INTrFEESRUqrdTXgKUIHnw", "key_word": "keyword", "marked_by": "nlp", "start_time": "2022-03-23T06:00:00Z", "end_time": "2022-03-23T06:00:00Z" } ] } ], "good_questions": [ { "section": [ { "user_id": "hjficvXtR42vjSABCCS32Q", "display_name": "user name", "text": "text", "utterance": "next steps", "label": "pricing", "indicator_name": "Johnny Dev", "indicator_id": "INTrFEESRUqrdTXgKUIHnw", "key_word": "keyword", "marked_by": "nlp", "start_time": "2022-03-23T06:00:00Z", "end_time": "2022-03-23T06:00:00Z" } ] } ], "indicators": [ { "section": [ { "user_id": "hjficvXtR42vjSABCCS32Q", "display_name": "user name", "text": "text", "utterance": "next steps", "label": "pricing", "indicator_name": "Johnny Dev", "indicator_id": "INTrFEESRUqrdTXgKUIHnw", "key_word": "keyword", "marked_by": "nlp", "start_time": "2022-03-23T06:00:00Z", "end_time": "2022-03-23T06:00:00Z" } ] } ], "deal_memo": { "potential_wins": [ { "factor": "Understanding API feature requests and requirements", "explanation": "The team discussed the need to understand the requirements for API feature requests" } ], "potential_concerns": [ { "factor": "API limitations and data retrieval", "explanation": "The team discussed the limitations of their API documentation" } ] }, "playbooks": [ { "playbook_id": "L3HUHN4BRdmsW88lIDcI-g", "playbook_name": "MEDDPICC", "elements": [ { "element_id": "CDdi0jcPSZ-stqiR7pR1tQ", "element_name": "Metrics", "answer": { "summaries": [ "summary items" ], "sources": [ { "item_id": "12", "speaker_name": "Speaker 1", "start_time": "00:02:59.250", "end_time": "00:03:07.126", "time_s": 179, "text": "Actually, yes..." } ] } } ] } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request Bad request. \*\*Error Code:\*\* \`1001\` \
Invalid request parameter. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {$conversationId}. \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(/docs/api/rest/rate-limits/). ### Get conversation interactions - **Method:** `GET` - **Path:** `/zra/conversations/{conversationId}/interactions` - **Tags:** Conversations Get interactions for a specific conversation. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:read`,`iq_conversation:write`,`iq_conversation:read:admin`,`iq_conversation:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:conversation_participants`,`zra:read:conversation_participants:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` Conversation information returned. ###### Content-Type: application/json **All of:** - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. * **`participants`** `array` — The speakers in the conversation. **Items:** - **`display_name`** `string` — The speaker's user name. - **`email`** `string` — The speaker's email address. If the participant joins the meeting without logging in or is external user, the value of this field will be blank. - **`metrics`** `object` — The metrics for the conversation. - **`filler_words`** `number` — The count of filler words. Unit: words/min. - **`longest_monolog`** `number` — The longest monologue in seconds. - **`patience`** `number` — The patience in seconds. - **`talk_speed`** `number` — The talk speed in words per minute. - **`talk_to_listen_ratio`** `number` — The talk-to-listen ratio. - **`speaker_type`** `string`, possible values: `"rep", "customer"` — The type of the speaker. - **`transcripts`** `array` **Items:** - **`end_time`** `string` — The speak item end time. - **`item_id`** `string` — The item ID. - **`start_time`** `string` — The speak item start time. - **`text`** `string` — The speech in text. - **`user_id`** `string` — The speaker's user ID. If the participant joins the meeting without logging in or is external user, the value of this field will be blank. **Example:** ```json { "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30, "participants": [ { "user_id": "hjficvXtR42vjSABCCS32Q", "display_name": "John Deve", "email": "user@example.com", "speaker_type": "rep", "transcripts": [ { "item_id": "0", "text": "speak text.", "start_time": "2022-03-23T06:00:00Z", "end_time": "2022-03-23T06:02:00Z" } ], "metrics": { "talk_to_listen_ratio": 1, "longest_monolog": 10, "talk_speed": 10, "filler_words": 10, "patience": 10 } } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request Bad request \*\*Error Code:\*\* \`1001\` \
Invalid request param \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {$conversationId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get conversation scorecards - **Method:** `GET` - **Path:** `/zra/conversations/{conversationId}/scorecards` - **Tags:** Conversations Get scorecards for a specific conversation. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_coaching:read`,`iq_coaching:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:conversation_scorecards`,`zra:read:conversation_scorecards:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` Conversation scorecards returned. ###### Content-Type: application/json **All of:** - **`scorecards`** `array` — The scorecards of the conversation. **Items:** - **`average_score`** `number` — The average score for this scorecard. - **`rate_time`** `string`, format: `date-time` — The time at which the scorecard was rated. - **`rater`** `object` — User information of the person who rates this scorecard. - **`display_name`** `string` — Name of the person who rates the scorecard. - **`email`** `string` — Email address of person who rates the scorecard. - **`user_id`** `string` — The unique identifier for the user. - **`scorecard_description`** `string` — The scorecard's description. - **`scorecard_id`** `string` — The scorecard's ID. - **`scorecard_name`** `string` — The scorecard's name. - **`scorecard_questions`** `array` — Questions in the scorecard **Items:** - **`answer`** `string` — The selected answer. - **`justification`** `string` — The user's reasoning or explanation for their score selection. - **`question_comment`** `string` — The question's comment. - **`question_description`** `string` — The question's description. - **`question_id`** `string` — The question's ID. - **`question_title`** `string` — The question title - **`scale`** `object` — The scale information for this question. - **`max_score_label`** `string` — The highest score. - **`min_score_label`** `string` — The lowest score. - **`score`** `number` — The user's score for the question. * **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. * **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. **Example:** ```json { "scorecards": [ { "scorecard_id": "xMCKjazFS9GtJRhGdcLhcQ", "scorecard_name": "Learning experience scoring", "scorecard_description": "Rate your learning experience for this conversation", "average_score": 10, "rate_time": "2022-03-22T05:59:09Z", "rater": { "email": "dummyname@gmail.com", "display_name": "dummy name", "user_id": "6dfgdfgdg444447b0egga" }, "scorecard_questions": [ { "question_id": "lasiSUvrSvG1rcqFCs4gtg", "question_title": "Question 1", "score": 8, "question_description": "How is this video quality for the conversation?", "question_comment": "This question is great.", "scale": { "min_score_label": "Very strongly disagree.", "max_score_label": "Very strongly agree." }, "justification": "The video quality was clear and stable throughout the conversation, making it easy to communicate.", "answer": "Yes" } ] } ], "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30 } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request Bad request \*\*Error Code:\*\* \`1001\` \
Invalid request param \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Conversation does not exist: {$conversationId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Update conversation host id - **Method:** `PATCH` - **Path:** `/zra/conversations/{conversationId}/update_host` - **Tags:** Conversations Update the conversation host id to a new host id by conversation id. **Prerequisite**: You must have either `iq_conversation:write:admin` or `iq_conversation:write` permissions. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:write:admin`,`iq_conversation:write` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:update:conversation_host`,`zra:update:conversation_host:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Request Body ##### Content-Type: application/json - **`new_host_id`** `string` — The user ID or email address of the host. **Example:** ```json { "new_host_id": "IGTRVt3gQ2i-WjoUIjeZxw" } ``` #### Responses ##### Status: 204 \*\*HTTP Status Code:\*\* \`204\` Conversation updated. ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`1006\` \
User has no IQ license. \
\
\*\*Error Code:\*\* \`300\` \
Missing field: {field} \
\
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
User does not exist.\
\
\
\*\*Error Code:\*\* \`2001\` \
Conversation does not exist: {conversationId}.\
\
\
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Upload IQ file - **Method:** `POST` - **Path:** `/zra/files` - **Tags:** Conversations Upload a file to Zoom Revenue Acclerator. **Prerequisite:**\ The caller must be a Zoom Revenue Acclerator-licensed user. **Note:** - Base URL: `https://fileapi.zoom.us/v2/`. - Rate limit: 20 requests per second per user or 2000 requests per second per IP address. - The caller must support HTTP 30x redirects. - The caller must retain the Authorization header when redirected to a different hostname. - Supported video formats: `.mov`, `.mp4`, `.avi`, `.wmv` or `H.264`. - Supported transcript and file attachment format: `.json` . The `fileName` must end with `transcript.json`. - Supported metadata and file attachment format: `.json`. The fileName must end with `metadata.json`. - Required file upload sequence: main file, transcript file (if necessary), metadata file (if necessary). - When your object size reaches 2 GB, you should use multipart uploads instead of uploading the object in a single operation. - For an **account-level** [OAuth app](https://developers.zoom.us/docs/integrations/create/), 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.\&text=Role%2Dbased%20access%20control%20enables,needs%20to%20view%20or%20edit.) with **Edit** permission for **All Conversations**. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:write:admin`,`iq_conversation:write` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:file`,`zra:write:file:admin` #### Request Body ##### Content-Type: multipart/form-data - **`file` (required)** `string` — The upload file, in binary format. You can only send a maximum of 2 gigabytes. - **`main_file_id`** `string` — The main file's unique ID. Use this field to upload a attachment file. - **`source`** `number` — The source of the transcript and metadata files, if this field is not provided, it defaults to a value of 1. There are two valid values for this field: \* 1: Represents files sourced from 'Gong.' \* 2: Represents files sourced from 'Chorus.' **Example:** ```json { "file": "", "main_file_id": "xBvggqyjQUal6TecwMlYwQ", "source": 1 } ``` #### Responses ##### Status: 201 \*\*HTTP Status Code:\*\* \`201\` File successfully uploaded. ###### Content-Type: application/json - **`file_id`** `string` — The IQ file's unique ID. **Example:** ```json { "file_id": "xBvggqyjQUal6TecwMlYwE" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`124\` \
Invalid access token. \
\
\*\*Error Code:\*\* \`200\` \
Zoom IQ plan is missing. You must subscribe to the zoom iq plan and enable zoom iq for this user in order to perform this action. \
\
\*\*Error Code:\*\* \`300\` \
Invalid File type. \
Maximum file size exceeded: ${maxSize}. \
\
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
File ID does not exist: {$fileId}.\
\
\
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Upload iq multipart file. - **Method:** `POST` - **Path:** `/zra/files/multipart` - **Tags:** Conversations Use this API to upload a multipart file. **Note:** - The base URL for this API is `https://fileapi.zoom.us/v2/`. - The rate limit of this API is 20 requests per second or 2000 requests per day per IP address. - The caller must support HTTP 30x redirects. - The caller must retain the authorization header when redirected to a different hostname. - Video can be in `.mov`, `.mp4`, `.avi`, `.wmv` or `H.264` format. - Transcript can be in `.vtt`, `.json` format. - In general, when your object size reaches 2 GB, you should use multipart uploads instead of uploading the object in a single operation. - The caller must be a iq\_listened user. - 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.\&text=Role%2Dbased%20access%20control%20enables,needs%20to%20view%20or%20edit.) that has the **Edit** permission for **All Conversations**. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:write:admin`,`iq_conversation:write` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:file`,`zra:write:file:admin` #### Request Body ##### Content-Type: multipart/form-data - **`file` (required)** `string` — The upload file, in binary format. Each part must be at most 100 MB in size. Each part must be at least 5 MB in size, except the last part. - **`part_number` (required)** `integer` — When uploading multipart files, the part number of the part being uploaded. This is a positive integer between 1 and 100. - **`upload_context` (required)** `string` — When uploading multipart files, use Upload context to identify the multipart upload whose part is being uploaded. **Example:** ```json { "file": "", "upload_context": "noNpr2pkBEv4_fTxYWDEHBsSs3pl8keRx4fPZmnyNDe.SPdodJp.3UZDaCI2xRVzkRh0xeEV6RuOrXZpJQBPutWCS424c2YnHVxVh8b9.4DNwd4VErRuD98jeJBwRCgz6rC3I4NQg5zXAtCqPFoC0g--", "part_number": 10 } ``` #### Responses ##### Status: 201 \*\*HTTP Status Code:\*\* \`201\` File successfully uploaded. ###### Content-Type: application/json - **`part_number_etag`** `object` — The part number etag, Collect and bring it back in the final request to complete the multipart upload request. - **`etag`** `string` — The etag of the part being uploaded. - **`part_number`** `integer` — the part number of the part being uploaded. **Example:** ```json { "part_number_etag": { "part_number": 1, "etag": "etag1" } } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`124\` \
Invalid access token. \
\
\*\*Error Code:\*\* \`200\` \
Zoom IQ plan is missing. You must subscribe to the Zoom IQ plan and enable Zoom IQ for this user in order to perform this action. \
\
\*\*Error Code:\*\* \`300\` \
Invalid File type. \
Part number exceeded: ${maxSize}. \
Maximum file size exceeded: ${maxSize}.\
Each part must be at least 5 MB in size, except the last part. \
\
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Upload context {upload\_context} not exist.\
\
\
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Initiate and complete a multipart upload. - **Method:** `POST` - **Path:** `/zra/files/multipart/upload_events` - **Tags:** Conversations Initiate or complete a multipart upload. **Note:** - The base URL for this API is `https://fileapi.zoom.us/v2/`. - The rate limit is 20 requests per second or 2000 requests per day per IP address. - The caller must support HTTP 30x redirects. - The caller must retain the authorization header when redirected to a different hostname. - Once initiated the multipart upload must complete within 7 days. - The caller must be an iq\_listened user. - For **account-level** [OAuth apps](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.\&text=Role%2Dbased%20access%20control%20enables,needs%20to%20view%20or%20edit.) with **Edit** permission for **All Conversations**. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:write:admin`,`iq_conversation:write` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:file`,`zra:write:file:admin` #### Request Body ##### Content-Type: application/json - **`method` (required)** `string`, possible values: `"CreateMultipartUpload", "CompleteMultipartUpload"` — The method to upload events: \* \`CreateMultipartUpload\` — Create a multipart upload. \* \`CompleteMultipartUpload\` — Complete a multipart upload. - **`params`** `object` — The CompleteMultipartUpload parameters. - **`file_name`** `string` — The iq file's name. If you pass the \`CreateMultipartUpload\` value for the \`method\` field. - **`main_file_id`** `string` — The main file's unique ID. If you pass the \`CreateMultipartUpload\` value for the \`method\` field, Use this field to upload a attachment file. - **`part_number_etags`** `array` — The part number etags being uploaded. Use this field if you pass the \`CompleteMultipartUpload\` value for the \`method\` field. **Items:** - **`etag`** `string` — The etag of the part being uploaded. - **`part_number`** `integer` — the part number of the part being uploaded. - **`upload_context`** `string` — Upload context identifying the multipart upload whose part is being uploaded. Use this field if you pass the \`CompleteMultipartUpload\` value for the \`method\` field. **Example:** ```json { "method": "CreateMultipartUpload", "params": { "file_name": "file name", "main_file_id": "xBvggqyjQUal6TecwMlYwQ", "upload_context": "noNpr2pkBEv4_fTxYWDEHBsSs3pl8keRx4fPZmnyNDe.SPdodJp.3UZDaCI2xRVzkRh0xeEV6RuOrXZpJQBPutWCS424c2YnHVxVh8b9.4DNwd4VErRuD98jeJBwRCgz6rC3I4NQg5zXAtCqPFoC0g--", "part_number_etags": [ { "part_number": 1, "etag": "etag1" } ] } } ``` #### Responses ##### Status: 201 \*\*Status Code:\*\* \`201\` Successfully initiate and complete a multipart upload. ###### Content-Type: application/json - **`file_id`** `string` — The iq file's unique ID. Return this field if you pass the \`CompleteMultipartUpload\` value for the \`method\` field. - **`upload_context`** `string` — The upload context. Return this field if you pass the \`CreateMultipartUpload\` value for the \`method\` field. \*\*Note:\*\* \* Use this upload context to associate all of the parts in the specific multipart upload. You specify this upload context in each of your subsequent upload part requests. You also include this upload context in the final request to complete the multipart upload request. **Example:** ```json { "upload_context": "noNpr2pkBEv4_fTxYWDEHBsSs3pl8keRx4fPZmnyNDe.SPdodJp.3UZDaCI2xRVzkRh0xeEV6RuOrXZpJQBPutWCS424c2YnHVxVh8b9.4DNwd4VErRuD98jeJBwRCgz6rC3I4NQg5zXAtCqPFoC0g--", "file_id": "xBvggqyjQUal6TecwMlYwQ" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`124\` \
Invalid access token. \
\
\*\*Error Code:\*\* \`200\` \
Zoom IQ plan is missing. You must subscribe to the Zoom IQ plan and enable Zoom IQ for this user in order to perform this action. \
\
\*\*Error Code:\*\* \`300\` \
Invalid part number etags. \
\
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Upload context {upload\_context} not exist.\
File ID does not exist: {$fileId}. \
\
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Add conversation by meeting record url or meeting UUID. - **Method:** `POST` - **Path:** `/zra/users/{userId}/conversations` - **Tags:** Conversations Add new conversations by meeting record URL or meeting UUID. If both recording URL and meeting UUID are passed in the request and refer to different meetings, we ignore meeting UUID. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:write:admin`,`iq_conversation:write` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:conversation`,`zra:write:conversation:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Request Body ##### Content-Type: application/json - **`meeting_uuid`** `string` — The Meeting ID. Each meeting instance generates its own meeting UUID. - **`recording_link`** `string` — The meeting record url. It could be share\_url or play\_url. **Example:** ```json { "recording_link": "https://zoom.us/rec/share/....", "meeting_uuid": "egLSRuj2SlWet+wLi87LNA==" } ``` #### Responses ##### Status: 201 \*\*HTTP Status Code:\*\* \`201\` Conversation added. ###### Content-Type: application/json - **`meeting_uuid`** `string` — The Meeting ID. Each meeting instance generates its own meeting UUID. **Example:** ```json { "meeting_uuid": "egLSRuj2SlWet+wLi87LNA==" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`3300\` \
Failed to add the recording, please try again.\
\
\*\*Error Code:\*\* \`5333\` \
\`3318\`\
This is an invalid link. \
\
\*\*Error Code:\*\* \`3318\` \
This is an invalid link. \
\
\*\*Error Code:\*\* \`3318\` \
This is an invalid link. \
\
\*\*Error Code:\*\* \`3320\` \
You cannot add recording with CMK encryption. \
\
\*\*Error Code:\*\* \`3319\` \
This recording is already added. \
\
\*\*Error Code:\*\* \`3315\` \
This recording is already under processing analysis.\
\
\*\*Error Code:\*\* \`3314\` \
The recording must have been made after {0}.\
\
\*\*Error Code:\*\* \`3317\` \
User has no IQ license. \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`3313\` \
User {$userId} is not the host of recording. \
\
\*\*Error Code:\*\* \`1004\` \
no permission to operate. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
User ID does not exist: {$userId}. \
\
\*\*Error Code:\*\* \`3316\` \
Meeting ID does not exist. \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get a user's playlist - **Method:** `GET` - **Path:** `/zra/users/{userId}/conversations/playlists` - **Tags:** Conversations Get all playlists for a user. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_playlist:read:admin`,`iq_playlist:read` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:list_conversation_playlists`,`zra:read:list_conversation_playlists` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` Successfully listed a user's playlist. ###### Content-Type: application/json **All of:** - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. * **`playlists`** `array` **Items:** - **`created_by`** `string` — The create user's name. - **`following`** `boolean` — Following plalist - **`modified_time`** `string`, format: `date-time` — The time the playlist was modified. - **`number_of_conversations`** `integer` — The number of conversations in a playlist. - **`playlist_id`** `string` — The Playlist ID. Each playlist will generate its own playlist UUID. - **`playlist_name`** `string` — The name of the playlist. - **`type`** `string` — The type of the playlist **Example:** ```json { "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30, "playlists": [ { "playlist_id": "7c8b7301-d32b-4850-92c7-ea9f5a40fd39", "type": "Normal", "modified_time": "2022-03-22T05:59:09Z", "playlist_name": "ZoomIQ Playlist", "number_of_conversations": 4, "following": true, "created_by": "John Smith" } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request Bad request \*\*Error Code:\*\* \`1001\` \
Invalid request param \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1001\` \
User ID does not exist: {$userId} \
\
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get imported CRM accounts - **Method:** `GET` - **Path:** `/zra/crm/accounts` - **Tags:** Custom CRM Retrieve CRM account objects by their CRM IDs. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_crm:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:crm_account:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 Account objects retrieved. ###### Content-Type: application/json - **`data`** `array` — List of CRM account objects. **Items:** - **`account_name` (required)** `string` — Customer account name. - **`crm_account_id` (required)** `string` — CRM account ID. - **`modify_time` (required)** `string`, format: `date-time` — Modification time in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`annual_revenue`** `number`, format: `double` — Annual revenue. - **`create_time`** `string`, format: `date-time` — Creation time in ISO-8601 format, such as 2025-11-20T12:00:00Z\`. - **`domain`** `string` — Domain name of customer account. - **`employees`** `integer` — Employees count. - **`industry`** `string` — Industry type of CRM customer account. - **`owner_email`** `string`, format: `email` — Owner's email address. - **`phone`** `string` — Phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`type`** `string` — Type of CRM customer account. - **`zra_account_id`** `string` — Zoom Revenue Accelerator's internal ID for the CRM account object. **Example:** ```json { "data": [ { "zra_account_id": "OPENAPIaCLhU8cQR4qfdTSvT4stxA006aa00000JkrQiiAx", "crm_account_id": "006aa00000JkrQiiAx", "owner_email": "jchill@example.com", "account_name": "Some Company", "domain": "example.com", "type": "Prospect", "industry": "Electronics", "annual_revenue": 750000, "phone": "800-0555-0100", "employees": 30, "modify_time": "2025-11-20T12:00:00Z", "create_time": "2025-11-20T12:00:00Z" } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request Too many IDs to query. ##### Status: 409 \*\*HTTP Status Code:\*\* \`409\` \
Conflict Not connected to CRM API. ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### Bulk import CRM accounts - **Method:** `POST` - **Path:** `/zra/crm/accounts` - **Tags:** Custom CRM Bulk import CRM account objects asynchronously. We recommend you upload account objects in this order: **account** → **contact** → **deal**. CRM account object references are validated in advance when importing contacts and deals. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_crm:write` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:crm_accounts:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `RESOURCE-INTENSIVE` #### Request Body ##### Content-Type: application/json - **`data` (required)** `array` — List of the CRM account objects. **Items:** - **`account_name` (required)** `string` — Customer account name. - **`crm_account_id` (required)** `string` — CRM account ID. - **`modify_time` (required)** `string`, format: `date-time` — Modification time in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`annual_revenue`** `number`, format: `double` — Annual revenue. - **`create_time`** `string`, format: `date-time` — Creation time in ISO-8601 format, such as 2025-11-20T12:00:00Z\`. - **`deletion`** `boolean` — Special field to mark a delete operation. If this flag is \`true\`, the system performs a delete operation rather than creating or updating records, and only the \`account\_id\` field will be required for the delete operation. - **`domain`** `string` — Domain name of customer account. - **`employees`** `integer` — Employees count. - **`industry`** `string` — Industry type of CRM customer account. - **`owner_email`** `string`, format: `email` — Owner's email address. - **`phone`** `string` — Phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`type`** `string` — Type of CRM customer account. **Example:** ```json { "data": [ { "crm_account_id": "006aa00000JkrQiiAx", "deletion": false, "owner_email": "jcill@example.com", "account_name": "Some Company", "domain": "example.com", "type": "Prospect", "industry": "Electronics", "annual_revenue": 750000, "phone": "800-0555-0100", "employees": 30, "modify_time": "2025-11-20T12:00:00Z", "create_time": "2025-11-20T12:00:00Z" } ] } ``` #### Responses ##### Status: 202 Bulk CRM account import task is queued and waiting to start in the background. Given the returned task ID, execution result of the task can be retrieved with the \*\*Poll async task result\*\* API. ###### Content-Type: application/json - **`task_id`** `string` — Async task ID used to query the execution status. **Example:** ```json { "task_id": "HlqrLAsuS4OrbY8ablyOvg" } ``` ##### Status: 409 \*\*HTTP Status Code:\*\* \`409\` \
Conflict Not connected to CRM API. ##### Status: 413 \*\*HTTP Status Code:\*\* \`413\` \
Payload Too Large Too many import items. ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### Get imported CRM contacts - **Method:** `GET` - **Path:** `/zra/crm/contacts` - **Tags:** Custom CRM Retrieve CRM contact objects by their CRM IDs. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_crm:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:crm_contact:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 Contacts retrieved. ###### Content-Type: application/json - **`data`** `array` — List of CRM contact objects. **Items:** - **`contact_name` (required)** `string` — Contact name. - **`crm_contact_id` (required)** `string` — CRM contact ID. - **`modify_time` (required)** `string`, format: `date-time` — Modification time in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`contact_email`** `string`, format: `email` — Contact email address. - **`create_time`** `string`, format: `date-time` — Creation time in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`crm_account_id`** `string` — CRM account ID reference. - **`department`** `string` — Department. - **`home_phone`** `string` — Home phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`job_title`** `string` — Job title. - **`mobile_phone`** `string` — Mobile phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`other_phone`** `string` — Other phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`owner_email`** `string`, format: `email` — Owner's email address. - **`phone`** `string` — Phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`zra_contact_id`** `string` — Zoom Revenue Accelerator's internal ID for the CRM contact object. **Example:** ```json { "data": [ { "zra_contact_id": "OPENAPIaCLhU8cQR4qfdTSvT4stxA006aa00000LmrAxiRj", "crm_contact_id": "006aa00000LmrAxiRj", "owner_email": "jchill@example.com", "crm_account_id": "006aa00000JkrQiiAx", "contact_name": "Jill Chill", "contact_email": "jchill@example.com", "department": "Sales", "job_title": "Sales Manager", "phone": "800-555-0100", "home_phone": "800-555-0100", "mobile_phone": "800-555-0100", "other_phone": "800-555-0100", "modify_time": "2025-11-20T12:00:00Z", "create_time": "2025-11-20T12:00:00Z" } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request Too many IDs to query. ##### Status: 409 \*\*HTTP Status Code:\*\* \`409\` \
Conflict Not connected to CRM API. ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### Bulk import CRM contacts - **Method:** `POST` - **Path:** `/zra/crm/contacts` - **Tags:** Custom CRM Bulk import CRM contact objects asynchronously. We recommend you upload CRM contact objects in this order: **account** → **contact** → **deal**. ZRA validates CRM account object references in advance when importing contacts and deals. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_crm:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:crm_contact:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `RESOURCE-INTENSIVE` #### Request Body ##### Content-Type: application/json - **`data` (required)** `array` — List of the CRM contact objects. **Items:** - **`contact_name` (required)** `string` — Contact name. - **`crm_contact_id` (required)** `string` — CRM contact ID. - **`modify_time` (required)** `string`, format: `date-time` — Modification time in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`contact_email`** `string`, format: `email` — Contact email address. - **`create_time`** `string`, format: `date-time` — Creation time in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`crm_account_id`** `string` — CRM account ID reference. - **`deletion`** `boolean` — Mark a delete operation. If this flag is \`true\`, the system performs a delete operation rather than creating or updating records. Only the \`contact\_id\` field is required for the delete operation. - **`department`** `string` — Department. - **`home_phone`** `string` — Home phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`job_title`** `string` — Job title. - **`mobile_phone`** `string` — Mobile phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`other_phone`** `string` — Other phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`owner_email`** `string`, format: `email` — Owner's email address. - **`phone`** `string` — Phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. **Example:** ```json { "data": [ { "crm_contact_id": "006aa00000LmrAxiRj", "deletion": false, "owner_email": "jchill@example.com", "crm_account_id": "006aa00000JkrQiiAx", "contact_name": "Jill Chill", "contact_email": "jchill@example.com", "department": "Sales", "job_title": "Sales Manager", "phone": "800-555-0100", "home_phone": "800-555-0100", "mobile_phone": "800-555-0100", "other_phone": "800-555-0100", "modify_time": "2025-11-20T12:00:00Z", "create_time": "2025-11-20T12:00:00Z" } ] } ``` #### Responses ##### Status: 202 Bulk CRM contact import task is queued and waiting to start in the background. Given the returned task ID, execution result of the task could be retrieved via the \*\*Poll async task result\*\* API. ###### Content-Type: application/json - **`task_id`** `string` — Async task ID used to query the execution status. **Example:** ```json { "task_id": "HlqrLAsuS4OrbY8ablyOvg" } ``` ##### Status: 409 \*\*HTTP Status Code:\*\* \`409\` \
Conflict Not connected to CRM API. ##### Status: 413 \*\*HTTP Status Code:\*\* \`413\` \
Payload Too Large Too many import items. ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### Get imported CRM deals - **Method:** `GET` - **Path:** `/zra/crm/deals` - **Tags:** Custom CRM Retrieve CRM deal objects by their CRM IDs. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_crm:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:crm_deal:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 Deal objects retrieved. ###### Content-Type: application/json - **`data`** `array` — List of CRM deal objects. **Items:** - **`crm_account_id` (required)** `string` — CRM account ID reference. - **`crm_deal_id` (required)** `string` — CRM deal ID. - **`deal_name` (required)** `string` — Deal name. - **`modify_time` (required)** `string`, format: `date-time` — Modification time in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`owner_email` (required)** `string`, format: `email` — Owner's email address. Must be a ZRA-licensed user's email. - **`stage` (required)** `string` — Deal stage. - **`amount`** `number`, format: `double` — Deal amount. - **`close_date`** `string`, format: `date` — Closing date in ISO-8601 format, such as \`2025-11-20\`. - **`contacts`** `array` — List of references to CRM contacts. **Items:** - **`crm_contact_id` (required)** `string` — Contact CRM ID reference. - **`contact_email`** `string`, format: `email` — Contact email address. - **`contact_name`** `string` — Contact name. - **`home_phone`** `string` — Contact home phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`mobile_phone`** `string` — Contact mobile phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`other_phone`** `string` — Contact other phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`phone`** `string` — Contact phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`create_time`** `string`, format: `date-time` — Creation time in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`description`** `string` — Description. - **`forecast_category`** `string` — Forecast category of deal. - **`is_private`** `boolean` — Whether a deal is private. - **`next_step`** `string` — Next step. - **`probability`** `number`, format: `double` — Percentage of deal probability. - **`stage_modify_time`** `string`, format: `date-time` — Stage modification time in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`team_member_emails`** `array` — List of deal team members' email addresses. **Items:** `string`, format: `email` — The deal team member's email address. - **`zra_deal_id`** `string` — Zoom Revenue Accelerator's internal ID for the CRM deal object. **Example:** ```json { "data": [ { "zra_deal_id": "OPENAPIaCLhU8cQR4qfdTSvT4stxA006aa00000Lprxpjxx", "crm_deal_id": "006aa00000Lprxpjxx", "owner_email": "jchill@example.com", "crm_account_id": "006aa00000JkrQiiAx", "team_member_emails": [ "joechill@example.com" ], "contacts": [ { "crm_contact_id": "006aa00000LmrAxiRj", "contact_name": "Jill Chill", "contact_email": "jchill@example.com", "phone": "800-555-0100", "home_phone": "800-555-0100", "mobile_phone": "800-555-0100", "other_phone": "800-555-0100" } ], "deal_name": "Deal with Some Company", "stage": "Prospecting", "amount": 12300, "next_step": "Deal next step info", "close_date": "2025-11-20", "probability": 75, "forecast_category": "Early Stage", "is_private": false, "description": "Deal description", "stage_modify_time": "2025-11-20T12:00:00Z", "modify_time": "2025-11-20T12:00:00Z", "create_time": "2025-11-20T12:00:00Z" } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request Too many IDs to query. ##### Status: 409 \*\*HTTP Status Code:\*\* \`409\` \
Conflict Not connected to CRM API. ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### Bulk import CRM deals - **Method:** `POST` - **Path:** `/zra/crm/deals` - **Tags:** Custom CRM Bulk import CRM deal objects asynchronously. We recommend you upload CRM contact objects in this order: **account** → **contact** → **deal**. ZRA validates CRM account object references in advance when importing contacts and deals. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_crm:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:crm_deal:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `RESOURCE-INTENSIVE` #### Request Body ##### Content-Type: application/json - **`data` (required)** `array` — List of the CRM deal objects. **Items:** - **`crm_account_id` (required)** `string` — CRM account ID reference. - **`crm_deal_id` (required)** `string` — CRM deal ID. - **`deal_name` (required)** `string` — Deal name. - **`modify_time` (required)** `string`, format: `date-time` — Modification time in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`owner_email` (required)** `string`, format: `email` — Owner's email address. Must be a ZRA-licensed user's email. - **`stage` (required)** `string` — Deal stage. The stage name must be predefined in the \`deal\_stages\` list during CRM registration. - **`amount`** `number`, format: `double` — Deal amount. - **`close_date`** `string`, format: `date` — Close date in ISO-8601 format, such as \`2025-11-20\`. - **`contacts`** `array` — List of references to CRM contacts. **Items:** - **`crm_contact_id` (required)** `string` — Contact CRM ID reference. - **`contact_email`** `string`, format: `email` — Contact email address. - **`contact_name`** `string` — Contact name. - **`home_phone`** `string` — Contact home phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`mobile_phone`** `string` — Contact mobile phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`other_phone`** `string` — Contact other phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`phone`** `string` — Contact phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`create_time`** `string`, format: `date-time` — Creation time in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`deletion`** `boolean` — Mark a delete operation. If this flag is \`true\`, the system performs a delete operation rather than creating or updating records, and only the \`deal\_id\` field is required for the delete operation. - **`description`** `string` — Description. - **`forecast_category`** `string` — Forecast category of deal. - **`is_private`** `boolean` — Whether the deal is private. - **`next_step`** `string` — Next step. - **`probability`** `number`, format: `double` — Percentage of deal probability. - **`stage_modify_time`** `string`, format: `date-time` — Stage modification time in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`team_member_emails`** `array` — List of deal team members' email addresses. **Items:** `string`, format: `email` — Email address of deal team member. **Example:** ```json { "data": [ { "crm_deal_id": "006aa00000Lprxpjxx", "deletion": false, "owner_email": "jchill@example.com", "crm_account_id": "006aa00000JkrQiiAx", "team_member_emails": [ "joechill@example.com" ], "contacts": [ { "crm_contact_id": "006aa00000LmrAxiRj", "contact_name": "Jill Chill", "contact_email": "jchill@example.com", "phone": "800-555-0100", "home_phone": "800-555-0100", "mobile_phone": "800-555-0100", "other_phone": "800-555-0100" } ], "deal_name": "Deal with Some Company", "stage": "Prospecting", "amount": 12300, "next_step": "Deal next step info", "close_date": "2025-11-20", "probability": 75, "forecast_category": "Early Stage", "is_private": false, "description": "Deal description", "stage_modify_time": "2025-11-20T12:00:00Z", "modify_time": "2025-11-20T12:00:00Z", "create_time": "2025-11-20T12:00:00Z" } ] } ``` #### Responses ##### Status: 202 Bulk CRM deal import task is queued and waiting to start in the background. When you have the returned task ID, retrieve the task's execution result with the \*\*Poll async task result\*\* API. ###### Content-Type: application/json - **`task_id`** `string` — Async task ID used to query the execution status. **Example:** ```json { "task_id": "HlqrLAsuS4OrbY8ablyOvg" } ``` ##### Status: 409 \*\*HTTP Status Code:\*\* \`409\` \
Conflict Not connected to CRM API. ##### Status: 413 \*\*HTTP Status Code:\*\* \`413\` \
Payload Too Large Too many import items. ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### Get imported CRM leads - **Method:** `GET` - **Path:** `/zra/crm/leads` - **Tags:** Custom CRM Retrieve CRM lead objects by their CRM IDs. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_crm:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:crm_lead:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 Lead objects retrieved. ###### Content-Type: application/json - **`data`** `array` — List of CRM lead objects. **Items:** - **`crm_lead_id` (required)** `string` — CRM lead ID. - **`lead_name` (required)** `string` — Lead name. - **`modify_time` (required)** `string`, format: `date-time` — Modification time in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`company`** `string` — Company of lead. - **`create_time`** `string`, format: `date-time` — Creation time in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`home_phone`** `string` — Home phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`job_title`** `string` — Job title. - **`lead_email`** `string`, format: `email` — Email address. - **`mobile_phone`** `string` — Mobile phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`other_phone`** `string` — Other phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`owner_email`** `string`, format: `email` — Owner's email address. - **`phone`** `string` — Phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`zra_lead_id`** `string` — Zoom Revenue Accelerator's internal ID for the CRM lead object. **Example:** ```json { "data": [ { "zra_lead_id": "OPENAPIaCLhU8cQR4qfdTSvT4stxA006aj00000LprxRjAx", "crm_lead_id": "006aj00000LprxRjAx", "owner_email": "jchill@example.com", "lead_name": "Jill Chill", "lead_email": "jchill@example.com", "company": "Some Company", "job_title": "Manager", "phone": "800-555-0100", "home_phone": "800-555-0100", "mobile_phone": "800-555-0100", "other_phone": "800-555-0100", "modify_time": "2025-11-20T12:00:00Z", "create_time": "2025-11-20T12:00:00Z" } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request Too many IDs to query. ##### Status: 409 \*\*HTTP Status Code:\*\* \`409\` \
Conflict Not connected to CRM API. ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### Bulk import CRM leads - **Method:** `POST` - **Path:** `/zra/crm/leads` - **Tags:** Custom CRM Bulk import CRM lead objects asynchronously. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_crm:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:crm_lead:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `RESOURCE-INTENSIVE` #### Request Body ##### Content-Type: application/json - **`data` (required)** `array` — List of the CRM lead objects. **Items:** - **`crm_lead_id` (required)** `string` — CRM lead ID. - **`lead_name` (required)** `string` — Lead name. - **`modify_time` (required)** `string`, format: `date-time` — Modification time in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`company`** `string` — Company of lead. - **`create_time`** `string`, format: `date-time` — Creation time in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`deletion`** `boolean` — Mark a delete operation. If this flag is \`true\`, the system performs a delete operation rather than creating or updating records. Only the \`lead\_id\` field is required for the delete operation. - **`home_phone`** `string` — Home phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`job_title`** `string` — Job title. - **`lead_email`** `string`, format: `email` — Email address. - **`mobile_phone`** `string` — Mobile phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`other_phone`** `string` — Other phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. - **`owner_email`** `string`, format: `email` — Owner's email address. - **`phone`** `string` — Phone number with no format restrictions. For example, \`+180005550100\`, \`800-0555-0100\`, and \`(800) 555-0100\` are accepted. **Example:** ```json { "data": [ { "crm_lead_id": "006aj00000LprxRjAx", "deletion": false, "owner_email": "jchill@example.com", "lead_name": "Jill Chill", "lead_email": "jchill@example.com", "company": "Some Company", "job_title": "Manager", "phone": "800-555-0100", "home_phone": "800-555-0100", "mobile_phone": "800-555-0100", "other_phone": "800-555-0100", "modify_time": "2025-11-20T12:00:00Z", "create_time": "2025-11-20T12:00:00Z" } ] } ``` #### Responses ##### Status: 202 Bulk CRM lead import task is queued and waiting to start in the background. Given the returned task ID, execution result of the task could be retrieved via the \`Poll async task result\` API. ###### Content-Type: application/json - **`task_id`** `string` — Async task ID used to query the execution status. **Example:** ```json { "task_id": "HlqrLAsuS4OrbY8ablyOvg" } ``` ##### Status: 409 \*\*HTTP Status Code:\*\* \`409\` \
Conflict Not connected to CRM API. ##### Status: 413 \*\*HTTP Status Code:\*\* \`413\` \
Payload Too Large Too many import items. ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### Get current CRM API registration - **Method:** `GET` - **Path:** `/zra/crm/settings` - **Tags:** Custom CRM Retrieves the current CRM API registration information. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_crm:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:crm_registration:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT` #### Responses ##### Status: 200 Registration information of the currently active CRM API integration. ###### Content-Type: application/json - **`crm_type` (required)** `string` — CRM type identifier, up to 16 alphanumeric characters. - **`deal_stages` (required)** `array` — Deal stage definitions. Each stage type (\`OPEN\`, \`CLOSED\_WON\`, \`CLOSED\_LOST\`) must have at least one stage defined. **Items:** - **`stage_name` (required)** `string` — Deal stage name. Each deal stage name must be unique. - **`stage_type`** `string`, possible values: `"OPEN", "CLOSED_WON", "CLOSED_LOST"`, default: `"OPEN"` — Deal stage type. - **`create_time`** `string`, format: `date-time` — Date and time created in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`crm_name`** `string` — The CRM type's display name. Default is CRM type. - **`currency_type`** `string`, default: `"USD"` — Currency type unit name, such as USD, JPY, EUR. Default is USD. - **`modify_time`** `string`, format: `date-time` — Date and time modified in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`url_pattern_account`** `string` — URL pattern to open a CRM account object in a browser. The placeholder \`{id}\` will be replaced with the actual CRM account object ID. - **`url_pattern_contact`** `string` — URL pattern to open a CRM contact object in browser. The placeholder \`{id}\` will be replaced with the actual CRM contact object ID. - **`url_pattern_deal`** `string` — URL pattern to open a CRM deal object in a browser. The placeholder \`{id}\` will be replaced with the actual CRM deal object ID. - **`url_pattern_lead`** `string` — URL pattern to open a CRM lead object in browser. The placeholder \`{id}\` will be replaced with the actual CRM lead object ID. **Example:** ```json { "crm_type": "oracle", "crm_name": "Oracle", "currency_type": "USD", "deal_stages": [ { "stage_name": "Prospecting", "stage_type": "OPEN" } ], "url_pattern_deal": "https://example.com/deal/{id}", "url_pattern_account": "https://example.com/account/{id}", "url_pattern_contact": "https://example.com/contact/{id}", "url_pattern_lead": "https://example.com/lead/{id}", "modify_time": "2025-11-20T12:00:00Z", "create_time": "2025-11-20T12:00:00Z" } ``` ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found Not connected to a CRM API. ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### Register CRM API connection - **Method:** `POST` - **Path:** `/zra/crm/settings` - **Tags:** Custom CRM Register new CRM API integration **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_crm:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:crm_registration:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY` #### Request Body ##### Content-Type: application/json - **`crm_type` (required)** `string` — CRM type identifier, up to 16 alphanumeric characters. - **`deal_stages` (required)** `array` — Deal stage definitions. Each stage type (\`OPEN\`, \`CLOSED\_WON\`, \`CLOSED\_LOST\`) must have at least one stage defined. **Items:** - **`stage_name` (required)** `string` — Deal stage name. Each deal stage name must be unique. - **`stage_type`** `string`, possible values: `"OPEN", "CLOSED_WON", "CLOSED_LOST"`, default: `"OPEN"` — Deal stage type. - **`crm_name`** `string` — Display name of the CRM type, default to use CRM type. - **`currency_type`** `string`, default: `"USD"` — Currency type unit name, such as USD, JPY, EUR, and others. The default is USD. - **`url_pattern_account`** `string` — URL pattern to open a CRM account object in a browser. The placeholder \`{id}\` will be replaced with the actual CRM account object ID. - **`url_pattern_contact`** `string` — URL pattern to open a CRM contact object in a browser. The placeholder \`{id}\` will be replaced with the actual CRM contact object ID. - **`url_pattern_deal`** `string` — URL pattern to open a CRM deal object in a browser. The placeholder \`{id}\` will be replaced with the actual CRM deal object ID. - **`url_pattern_lead`** `string` — URL pattern to open a CRM lead object in a browser. The placeholder \`{id}\` will be replaced with the actual CRM lead object ID. **Example:** ```json { "crm_type": "oracle", "crm_name": "Oracle", "currency_type": "USD", "deal_stages": [ { "stage_name": "Prospecting", "stage_type": "OPEN" } ], "url_pattern_deal": "https://example.com/deal/{id}", "url_pattern_account": "https://example.com/account/{id}", "url_pattern_contact": "https://example.com/contact/{id}", "url_pattern_lead": "https://example.com/lead/{id}" } ``` #### Responses ##### Status: 201 CRM API registered. ###### Content-Type: application/json - **`crm_type` (required)** `string` — CRM type identifier, up to 16 alphanumeric characters. - **`deal_stages` (required)** `array` — Deal stage definitions. Each stage type (\`OPEN\`, \`CLOSED\_WON\`, \`CLOSED\_LOST\`) must have at least one stage defined. **Items:** - **`stage_name` (required)** `string` — Deal stage name. Each deal stage name must be unique. - **`stage_type`** `string`, possible values: `"OPEN", "CLOSED_WON", "CLOSED_LOST"`, default: `"OPEN"` — Deal stage type. - **`create_time`** `string`, format: `date-time` — Create time, in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`crm_name`** `string` — Display name of the CRM type. The default is to use CRM type. - **`currency_type`** `string`, default: `"USD"` — Currency type unit name, such as USD, JPY, EUR, and others. The default is USD. - **`modify_time`** `string`, format: `date-time` — Modify time in ISO-8601 format, such as \`2025-11-20T12:00:00Z\`. - **`url_pattern_account`** `string` — URL pattern to open a CRM account object in a browser. The placeholder \`{id}\` will be replaced with the actual CRM account object ID. - **`url_pattern_contact`** `string` — URL pattern to open a CRM contact object in a browser. The placeholder \`{id}\` will be replaced with the actual CRM contact object ID. - **`url_pattern_deal`** `string` — URL pattern to open a CRM deal object in a browser. The placeholder \`{id}\` will be replaced with the actual CRM deal object ID. - **`url_pattern_lead`** `string` — URL pattern to open a CRM lead object in a browser. The placeholder \`{id}\` will be replaced with the actual CRM lead object ID. **Example:** ```json { "crm_type": "oracle", "crm_name": "Oracle", "currency_type": "USD", "deal_stages": [ { "stage_name": "Prospecting", "stage_type": "OPEN" } ], "url_pattern_deal": "https://example.com/deal/{id}", "url_pattern_account": "https://example.com/account/{id}", "url_pattern_contact": "https://example.com/contact/{id}", "url_pattern_lead": "https://example.com/lead/{id}", "modify_time": "2025-11-20T12:00:00Z", "create_time": "2025-11-20T12:00:00Z" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request Bad CRM registration information ##### Status: 409 \*\*HTTP Status Code:\*\* \`409\` \
Conflict Already connected to a CRM or CRM API. ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### Unregister CRM API connection - **Method:** `DELETE` - **Path:** `/zra/crm/settings` - **Tags:** Custom CRM Unregister the current CRM API integration. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_crm:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:delete:crm_registration:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY` #### Responses ##### Status: 204 CRM API unregistered. ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found Not connected to a CRM API. ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### Poll async task result - **Method:** `GET` - **Path:** `/zra/crm/tasks/{taskId}` - **Tags:** Custom CRM Retrieve the execution result of asynchronous task. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_crm:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:crm_task:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT` #### Responses ##### Status: 200 The current execution result for the given task ID, along with error details. ###### Content-Type: application/json - **`create_time`** `string`, format: `date-time` — Date and time task created, in ISO-8601 format (e.g., 2025-11-20T12:00:00Z). - **`end_time`** `string`, format: `date-time` — Date and time task ended, in ISO-8601 format (e.g., 2025-11-20T12:00:00Z). - **`errors`** `array` — A list of error details, available only when the task has completed successfully or failed. **Items:** - **`detail`** `string` — Error detail information. - **`record_id`** `string` — CRM record ID that failed. - **`record_index`** `integer` — Index number of the CRM record that failed. - **`failed_count`** `integer` — Failed count of records. - **`modify_time`** `string`, format: `date-time` — Date and time task modified, in ISO-8601 format (e.g., 2025-11-20T12:00:00Z). - **`start_time`** `string`, format: `date-time` — Date and time task started, in ISO-8601 format (e.g., 2025-11-20T12:00:00Z). - **`success_count`** `integer` — Success count of records. - **`task_id`** `string` — Task ID. - **`task_status`** `string`, possible values: `"PENDING", "RUNNING", "SUCCESS", "FAILED"` — Task status. - **`task_type`** `string`, possible values: `"IMPORT_DEALS", "IMPORT_ACCOUNTS", "IMPORT_CONTACTS", "IMPORT_LEADS"` — Task type. - **`total_count`** `integer` — Total count of records. **Example:** ```json { "task_id": "HlqrLAsuS4OrbY8ablyOvg", "task_type": "IMPORT_DEALS", "task_status": "SUCCESS", "errors": [ { "record_index": 101, "record_id": "006aa00000JkrQiiAx", "detail": "missing required field 'owner'" } ], "total_count": 50, "success_count": 49, "failed_count": 1, "start_time": "2025-11-20T12:00:00Z", "end_time": "2025-11-20T12:00:00Z", "create_time": "2025-11-20T12:00:00Z", "modify_time": "2025-11-20T12:00:00Z" } ``` ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found Async task not found or expired. ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### List deals \[Deprecated] ⚠️ Deprecated - **Method:** `GET` - **Path:** `/iq/deals` - **Tags:** Deals List all deals. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_deal:read`,`iq_deal:read:admin`,`iq_deal:write`,`iq_deal:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:list_deals`,`zra:read:list_deals:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 ###### Content-Type: application/json **All of:** - **`from`** `string` — The start date in \`yyyy-MM-dd'T'HH:mm:ss'Z'\` format. - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. - **`to`** `string` — The end date in \`yyyy-MM-dd'T'HH:mm:ss'Z'\` format. * **`deals`** `array` — The Zoom specific deals **Items:** - **`account_name`** `string` — The customer CRM account name of the deal. - **`account_type`** `string` — The customer CRM account type of the deal. - **`close_date`** `string` — The close date of the deal. - **`create_time`** `string`, format: `date-time` — The time at which the deal was created. - **`currency_type`** `string` — The currency of the deal. - **`deal_amount`** `integer` — The amount of the deal. - **`deal_description`** `string` — The deal description. - **`deal_id`** `string` — The Zoom specific deal ID. - **`deal_is_closed`** `boolean` — Whether the deal is closed. - **`deal_is_private`** `boolean` — Determine whether deal is public or private. - **`deal_name`** `string` — The deal name. - **`deal_stage`** `string` — The current stage of the deal. - **`last_activity_time`** `string`, format: `date-time` — The time at which the deal's last activity added. - **`number_of_conversations`** `integer` — The number of conversations in deal. - **`owner_email`** `string` — The email of the deal owner. - **`owner_id`** `string` — The Zoom specific user ID of the deal owner. - **`owner_name`** `string` — The name of the deal owner. - **`time_in_stage`** `integer` — The number days in current stage. **Example:** ```json { "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30, "from": "2024-04-16T21:39:50Z", "to": "2024-05-16T21:39:50Z", "deals": [ { "deal_id": "0065g00000DgD2QAAV", "deal_name": "Maximize profits", "deal_stage": "Needs Analysis", "deal_description": "Maximize profits", "owner_name": "John Wick", "owner_email": "jw@zoom.us", "owner_id": "IGTRVt3gQ2i-WjoUIjeZxw", "deal_is_closed": false, "create_time": "2022-03-22T05:59:09Z", "account_name": "customer", "deal_is_private": false, "deal_amount": 1000000, "currency_type": "USD", "close_date": "2023-04-19", "time_in_stage": 12, "number_of_conversations": 4, "last_activity_time": "2022-03-22T05:59:09Z", "account_type": "salesforce" } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`1001\` \
The from or to time is invalid. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Team does not exist: {$teamId} \
Owner does not exist: {ownerId} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get deal information \[Deprecated] ⚠️ Deprecated - **Method:** `GET` - **Path:** `/iq/deals/{dealId}` - **Tags:** Deals Get information for a specific deal. (deprecated) **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_deal:read`,`iq_deal:read:admin`,`iq_deal:write`,`iq_deal:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:deal`,`zra:read:deal:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 Get deal information ###### Content-Type: application/json **All of:** - **`account_name`** `string` — The customer CRM account name of the deal. - **`account_type`** `string` — The customer CRM account type of the deal. - **`close_date`** `string` — The close date of the deal. - **`contacts`** `array` — The contacts of the deal. **Items:** `string` — The name of the contact. - **`create_time`** `string`, format: `date-time` — The time at which the deal was created. - **`currency_type`** `string` — The currency of the deal. - **`deal_amount`** `integer` — The amount of the deal. - **`deal_description`** `string` — The deal description. - **`deal_id`** `string` — The Zoom specific deal ID. - **`deal_is_closed`** `boolean` — Whether the deal is closed. - **`deal_is_private`** `boolean` — Determine whether deal is public or private. - **`deal_name`** `string` — The deal name. - **`deal_stage`** `string` — The current stage of the deal. - **`last_activity_time`** `string`, format: `date-time` — The time at which the deal's last activity added. - **`number_of_conversations`** `integer` — The number of conversations in deal. - **`owner_email`** `string` — The email of the deal owner. - **`owner_id`** `string` — The Zoom specific user ID of the deal owner. - **`owner_name`** `string` — The name of the deal owner. - **`time_in_stage`** `integer` — The number days in current stage. **Example:** ```json { "deal_id": "0065g00000DgD2QAAV", "deal_name": "Maximize profits", "deal_stage": "Needs Analysis", "deal_description": "Maximize profits", "owner_name": "John Wick", "owner_email": "jw@zoom.us", "owner_id": "IGTRVt3gQ2i-WjoUIjeZxw", "deal_is_closed": false, "create_time": "2022-03-22T05:59:09Z", "account_name": "customer", "deal_is_private": false, "deal_amount": 1000000, "currency_type": "USD", "close_date": "2023-04-19", "time_in_stage": 12, "number_of_conversations": 4, "last_activity_time": "2022-03-22T05:59:09Z", "account_type": "salesforce", "contacts": [ "John" ] } ``` ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Deal does not exist: {dealId}. \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get deal activities \[Deprecated] ⚠️ Deprecated - **Method:** `GET` - **Path:** `/iq/deals/{dealId}/activities` - **Tags:** Deals Get activities for a specific deal. (deprecated) **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_deal:read`,`iq_deal:read:admin`,`iq_deal:write`,`iq_deal:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:list_deal_activities`,`zra:read:list_deal_activities:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 Get deal activities ###### Content-Type: application/json **All of:** - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. * **`activities`** `array` **Items:** - **`activity_type`** `string` — The activity type. - **`conversation_id`** `string` — The conversation ID. - **`conversation_topic`** `string` — The conversation topic. - **`deal_stage`** `string` — The current stage of the deal. - **`direction`** `string` — The direction of the activity. - **`duration`** `integer` — The duration of the activity. - **`engagement_score`** `integer` — The engagement score. - **`host_id`** `string` — The meeting host's user ID. - **`message_ids`** `string` — The message ID - **`number_of_message_in_thread`** `integer` — The number of messages in thread. - **`processing_analysis`** `boolean` — Whether the conversation is in processing analysis. - **`sentiment_score`** `integer` — The sentiment score. - **`stage_during_conversation`** `string` — The stage of the deal when the conversation occurred - **`start_date`** `string` — The activity start date. **Example:** ```json { "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30, "activities": [ { "conversation_topic": "Maximize profits", "deal_stage": "Needs Analysis", "sentiment_score": 80, "engagement_score": 20, "host_id": "x1yCzABCDEfg23HiJKl4mN", "direction": "outbound", "start_date": "2022-03-23T06:00:00Z", "activity_type": "call", "stage_during_conversation": "Perception Analysis", "processing_analysis": false, "message_ids": "4c59ed1d-439a-4e0d-a31f-0c130946f10b", "number_of_message_in_thread": 10, "conversation_id": "egLSRuj2SlWet+wLi87LNA==,1667893163000", "duration": 0 } ] } ``` ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Deal does not exist: {dealId}. \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Delete activity from the deal \[Deprecated] ⚠️ Deprecated - **Method:** `DELETE` - **Path:** `/iq/deals/{dealId}/activities` - **Tags:** Deals Delete specific activity from the deal. Either **conversation\_id** or **message\_id** would be required. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_deal:write:admin`,`iq_deal:write` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:delete:deal_activity`,`zra:delete:deal_activity:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 204 No Content ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Deal does not exist: {dealId}. \
\*\*Error Code:\*\* \`1005\` \
Activity does not exists: {id}. \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### List deals - **Method:** `GET` - **Path:** `/zra/deals` - **Tags:** Deals List all deals. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_deal:read`,`iq_deal:read:admin`,`iq_deal:write`,`iq_deal:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:list_deals`,`zra:read:list_deals:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 get deal lists ###### Content-Type: application/json **All of:** - **`from`** `string` — The start date in \`yyyy-MM-dd'T'HH:mm:ss'Z'\` format. - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. - **`to`** `string` — The end date in \`yyyy-MM-dd'T'HH:mm:ss'Z'\` format. * **`deals`** `array` — The Zoom specific deals **Items:** - **`account_name`** `string` — The customer CRM account name of the deal. - **`account_type`** `string` — The customer CRM account type of the deal. - **`close_date`** `string` — The close date of the deal. - **`create_time`** `string`, format: `date-time` — The time at which the deal was created. - **`currency_type`** `string` — The currency of the deal. - **`customer_account_id`** `string` — The customer's CRM account ID of the deal. - **`customer_contact`** `array` — The deal's customer contact information. **Items:** - **`customer_contact_id`** `string` — The customer contact ID. - **`customer_contact_name`** `string` — The customer contact name. - **`deal_amount`** `integer` — The amount of the deal. - **`deal_description`** `string` — The deal description. - **`deal_id`** `string` — The Zoom specific deal ID. - **`deal_is_closed`** `boolean` — Whether the deal is closed. - **`deal_is_private`** `boolean` — Determine whether deal is public or private. - **`deal_name`** `string` — The deal name. - **`deal_retrospective`** `string` — The AI-generated deal retrospective. This is only available for closed deals. - **`deal_stage`** `string` — The current stage of the deal. - **`last_activity_time`** `string`, format: `date-time` — The time at which the deal's last activity added. - **`number_of_conversations`** `integer` — The number of conversations in deal. - **`owner_email`** `string` — The email of the deal owner. - **`owner_id`** `string` — The Zoom specific user ID of the deal owner. - **`owner_name`** `string` — The name of the deal owner. - **`time_in_stage`** `integer` — The number days in current stage. **Example:** ```json { "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30, "from": "2024-04-16T21:39:50Z", "to": "2024-05-16T21:39:50Z", "deals": [ { "deal_id": "0065g00000DgD2QAAV", "deal_name": "Maximize profits", "deal_stage": "Needs Analysis", "deal_description": "Maximize profits", "owner_name": "John Wick", "owner_email": "jw@zoom.us", "owner_id": "IGTRVt3gQ2i-WjoUIjeZxw", "deal_is_closed": false, "create_time": "2022-03-22T05:59:09Z", "account_name": "customer", "customer_account_id": "001ABC123DEF", "deal_is_private": false, "deal_amount": 1000000, "currency_type": "USD", "close_date": "2023-04-19", "time_in_stage": 12, "number_of_conversations": 4, "last_activity_time": "2022-03-22T05:59:09Z", "account_type": "salesforce", "deal_retrospective": "The customer test focuses on system reliability, AI-powered capabilities like transcription, and consolidation of multiple tools into a unified platform, positioning Zoom as a strategic partner for their communications infrastructure", "customer_contact": [ { "customer_contact_id": "contact_abc123", "customer_contact_name": "John Doe" } ] } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`1001\` \
The from or to time is invalid. \
\
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Team does not exist: {$teamId} \
Owner does not exist: {ownerId} \
\
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get deal information - **Method:** `GET` - **Path:** `/zra/deals/{dealId}` - **Tags:** Deals Get information for a specific deal. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_deal:read`,`iq_deal:read:admin`,`iq_deal:write`,`iq_deal:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:deal`,`zra:read:deal:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 Get deal information ###### Content-Type: application/json **All of:** - **`account_name`** `string` — The customer CRM account name of the deal. - **`account_type`** `string` — The customer CRM account type of the deal. - **`close_date`** `string` — The close date of the deal. - **`contacts`** `array` — The contacts of the deal. **Items:** `string` — The name of the contact. - **`create_time`** `string`, format: `date-time` — The time at which the deal was created. - **`currency_type`** `string` — The currency of the deal. - **`customer_account_id`** `string` — The customer's CRM account ID of the deal. - **`customer_contact`** `array` — The deal's customer contact information. **Items:** - **`customer_contact_id`** `string` — The customer contact's ID. - **`customer_contact_name`** `string` — The customer contact's name. - **`deal_amount`** `integer` — The amount of the deal. - **`deal_description`** `string` — The deal description. - **`deal_id`** `string` — The Zoom specific deal ID. - **`deal_is_closed`** `boolean` — Whether the deal is closed. - **`deal_is_private`** `boolean` — Determine whether deal is public or private. - **`deal_name`** `string` — The deal name. - **`deal_retrospective`** `string` — The AI-generated deal retrospective. This is only available for closed deals. - **`deal_stage`** `string` — The current stage of the deal. - **`last_activity_time`** `string`, format: `date-time` — The time at which the deal's last activity added. - **`number_of_conversations`** `integer` — The number of conversations in deal. - **`owner_email`** `string` — The email of the deal owner. - **`owner_id`** `string` — The Zoom specific user ID of the deal owner. - **`owner_name`** `string` — The name of the deal owner. - **`time_in_stage`** `integer` — The number days in current stage. **Example:** ```json { "deal_id": "0065g00000DgD2QAAV", "deal_name": "Maximize profits", "deal_stage": "Needs Analysis", "deal_description": "Maximize profits", "owner_name": "John Wick", "owner_email": "jw@zoom.us", "owner_id": "IGTRVt3gQ2i-WjoUIjeZxw", "deal_is_closed": false, "create_time": "2022-03-22T05:59:09Z", "account_name": "customer", "deal_is_private": false, "deal_amount": 1000000, "currency_type": "USD", "close_date": "2023-04-19", "time_in_stage": 12, "number_of_conversations": 4, "last_activity_time": "2022-03-22T05:59:09Z", "account_type": "salesforce", "customer_account_id": "001ABC123DEF", "deal_retrospective": "The customer test focuses on system reliability, AI-powered capabilities like transcription, and consolidation of multiple tools into a unified platform, positioning Zoom as a strategic partner for their communications infrastructure", "customer_contact": [ { "customer_contact_id": "contact_abc123", "customer_contact_name": "John Doe" } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request Bad request ##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`1004\` \
You don't have the permission. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Deal does not exist: {dealId}. \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get deal activities - **Method:** `GET` - **Path:** `/zra/deals/{dealId}/activities` - **Tags:** Deals Get activities for a specific deal. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_deal:read`,`iq_deal:read:admin`,`iq_deal:write`,`iq_deal:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:list_deal_activities`,`zra:read:list_deal_activities:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 Get deal activities ###### Content-Type: application/json **All of:** - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer`, default: `30` — The number of records returned in a single API call. * **`activities`** `array` — All activities associated with the deal. **Items:** - **`activity_type`** `string` — The activity type. - **`conversation_id`** `string` — The conversation ID. - **`conversation_topic`** `string` — The conversation topic. - **`deal_stage`** `string` — The current stage of the deal. - **`direction`** `string` — The direction of the activity. - **`duration`** `integer` — The duration of the activity. - **`engagement_score`** `integer` — The engagement score. - **`host_id`** `string` — The meeting host's user ID. - **`message_ids`** `string` — The message ID - **`next_steps`** `array` — The next steps extracted from linked conversations. **Items:** `string` — A single extracted next-step item. - **`number_of_message_in_thread`** `integer` — The number of messages in thread. - **`processing_analysis`** `boolean` — Whether the conversation is in processing analysis. - **`sentiment_score`** `integer` — The sentiment score. - **`stage_during_conversation`** `string` — The stage of the deal when the conversation occurred - **`start_date`** `string` — The activity start date. - **`summary`** `string` — The conversation summary. **Example:** ```json { "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30, "activities": [ { "conversation_topic": "Maximize profits", "deal_stage": "Needs Analysis", "sentiment_score": 80, "engagement_score": 20, "host_id": "x1yCzABCDEfg23HiJKl4mN", "direction": "outbound", "start_date": "2022-03-23T06:00:00Z", "activity_type": "call", "stage_during_conversation": "Perception Analysis", "processing_analysis": false, "message_ids": "4c59ed1d-439a-4e0d-a31f-0c130946f10b", "number_of_message_in_thread": 10, "conversation_id": "egLSRuj2SlWet+wLi87LNA==,1667893163000", "summary": "Send revised pricing proposal by Friday", "next_steps": [ "Send revised pricing sheet" ], "duration": 0 } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request Bad request \*\*Error Code:\*\* \`1001\` \
Invalid request param \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Deal does not exist: {dealId}. \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Delete activity from the deal - **Method:** `DELETE` - **Path:** `/zra/deals/{dealId}/activities` - **Tags:** Deals Delete specific activity from a deal. Use either **conversation\_id** or **message\_id**. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_deal:write`,`iq_deal:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:delete:deal_activity`,`zra:delete:deal_activity:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 204 No Content ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request Bad request \*\*Error Code:\*\* \`1001\` \
invalid request param \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`1005\` \
Deal does not exist: {dealId}. \
\
\*\*Error Code:\*\* \`1005\` \
Activity does not exists: {id}. \
\
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### List scheduled meetings - **Method:** `GET` - **Path:** `/zra/scheduled` - **Tags:** ScheduleMeetings List all scheduled meetings for a user. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_conversation:read:admin`,`iq_conversation:read`,`iq_conversation:write`,`iq_conversation:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:list_conversations`,`zra:read:list_conversations:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` All authorized scheduled meetings returned. ###### Content-Type: application/json **All of:** - **`from`** `string` — The start date in \`yyyy-MM-dd'T'HH:mm:ss'Z'\` format. - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer` — The number of records returned in a single API call. - **`to`** `string` — The end date in \`yyyy-MM-dd'T'HH:mm:ss'Z'\` format. * **`meetings`** `array` — result array **Items:** - **`event_id`** `string` — uuid of this scheduled meeting - **`external`** `boolean` — this meeting is external or internal - **`host_id`** `string` — the host of this meeting, if the meeting is external or can not get host id will be null - **`meeting_platform`** `string`, possible values: `"zoom", "microsoft_teams", "google_meet"` — zoom meeting - **`schedule_time`** `string` — when this meeting was scheduled - **`start_time`** `string` — The meeting start time you set when you schedule this event. - **`topic`** `string` — the topic of this scheduled meeting - **`user_id`** `string` — this user's schedule meeting **Example:** ```json { "next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42", "page_size": 30, "from": "2024-04-16T21:39:50Z", "to": "2024-04-16T21:39:50Z", "meetings": [ { "topic": "meeting with tom", "user_id": "IGTRVt3gQ2i", "host_id": "IGTRVt3gQ2i", "event_id": "QhhnRjoTT8G5x8VWvNJSxQ_5v8v2qtuasscsbm8c36v0v6e8e", "schedule_time": "2020-05-02T19:13:05Z", "start_time": "2020-05-02T19:13:05Z", "meeting_platform": "zoom", "external": true } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`1001\` \
User does not exist: {$userId} meeting platform dose not exist: {$meetingPlatForm} \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### List Account Teams \[Deprecated] ⚠️ Deprecated - **Method:** `GET` - **Path:** `/iq/teams` - **Tags:** Teams List account teams. Filter by parent team ID or team name. (deprecated) **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:read:admin`,`iq_team:read` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 get team list ###### Content-Type: application/json - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer` — The number of records returned in a single API call. - **`teams`** `array` **Items:** - **`name` (required)** `string` — team name - **`team_id` (required)** `string` — UUID of team - **`description`** `string` — team description - **`leaf`** `boolean` — If this flag is true, it means this team has no child teams. - **`member_size`** `integer` — team member size - **`parent_teams`** `array` — This field will only be returned when you enter a search key. The parent teams are all the parent nodes of the hit teams, these team nodes have been sorted, from the upper parent node to the root node. **Items:** - **`name`** `string` — team name - **`team_id`** `string` — UUID of team - **`supervisor_size`** `integer` — team admin size - **`type`** `string`, possible values: `"flat team", "hierarchical team"` — the structure type of team **Example:** ```json { "teams": [ { "team_id": "aO1RVNBSRC2klMMdco14_g", "name": "level 1-10", "description": "level 1-10", "type": "hierarchical team", "member_size": 1, "supervisor_size": 1, "leaf": true, "parent_teams": [ { "team_id": "jeazIFbXSKm4E65_cxxQzA", "name": "level 1" } ] } ], "next_page_token": "gPP6D7Oy6TUyGwpBBtICy03182P6nJp3yQ2", "page_size": 30 } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`300\` \
The next page token is invalid or expired. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access is denied \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`0\` \
404 Route Not Found \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Create Team - **Method:** `POST` - **Path:** `/zra/team` - **Tags:** Teams Please create team one by one, if your account enable hierarchical structure team. We currently do not support concurrent hierarchical team creation **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:team:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY` #### Request Body ##### Content-Type: application/json - **`team_name` (required)** `string` — The name of new team. - **`parent_team_id`** `string` — Zoom team id. If you want to create a child team, please fill this field. And if you want to create a new falt or root team, you can keep this field empty. **Example:** ```json { "team_name": "CEO team", "parent_team_id": "XmmeMsj3RLqnKeImNwYI4w" } ``` #### Responses ##### Status: 201 \*\*HTTP Status Code:\*\* \`201\` Successfully add new team. ###### Content-Type: application/json - **`added_at` (required)** `string` — Successfully added time - **`added_team_id` (required)** `string` — Successfully added Zoom team id **Example:** ```json { "added_at": "yyyy-MM-dd'T'HH:mm:ss'Z'", "added_team_id": "Ikl0Wx89Tx-2XBoYVz53BQ" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`5002\` \
Require team name. \
\*\*Error Code:\*\* \`5005\` \
Exceed the maximum size of account available teams. \
\*\*Error Code:\*\* \`5005\` \
Exceed 10 tiers limit! \
\*\*Error Code:\*\* \`5005\` \
Exceed 100 children team limit! \
\*\*Error Code:\*\* \`5004\` \
Other admins are editing team structure, please wait. \
\*\*Error Code:\*\* \`5009\` \
Add team failed. \
\*\*Error Code:\*\* \`5006\` \
Team name has already been used. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access is denied. \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### List Unassigned Team Users - **Method:** `GET` - **Path:** `/zra/team/unassigned_team_users` - **Tags:** Teams List unassigned team zra users by page **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:unassigned_team_users:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY` #### Responses ##### Status: 200 Unassgined team zra users info ###### Content-Type: application/json - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer` — The number of records returned in a single API call. - **`unassigned_users`** `array` **Items:** - **`email`** `string` — User email - **`first_name`** `string` — User first name - **`last_name`** `string` — User last name - **`user_id`** `string` — User UUID **Example:** ```json { "unassigned_users": [ { "user_id": "iL2FL0wsRbOU__OsdO-4Lg", "email": "jonathan.zhang03@dispostable.com", "first_name": "Jonathan", "last_name": "Zhang" } ], "next_page_token": "gPP6D7Oy6TUyGwpBBtICy03182P6nJp3yQ2", "page_size": 30 } ``` ##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access is denied \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`0\` \
404 Route Not Found \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Get Team Detail - **Method:** `GET` - **Path:** `/zra/team/{teamId}` - **Tags:** Teams Get team detail, such as team name, team description, team member size and etc. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:team:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 \*\*HTTP Status Code:\*\* \`200\` Successfully get team detail. ###### Content-Type: application/json - **`name` (required)** `string` — Team name - **`team_id` (required)** `string` — Zoom team UUID - **`description`** `string` — Team description. - **`leaf`** `boolean` — If this flag is true, it means this team has no child teams. - **`manager_size`** `integer` — Manager size of this team. If team type is flat, please ignore this field. - **`member_size`** `integer` — Member size of this team - **`type`** `string` — The structure type of team. **Example:** ```json { "team_id": "N5nHB8FTSnG56_hyOFPovQ", "name": "CEO Team", "description": "CEO Office", "type": "hierarchical team", "member_size": 1, "manager_size": 1, "leaf": true } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`5002\` \
Invalid parameters. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access is denied. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`5011\` \
Team not existing! \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Delete Team - **Method:** `DELETE` - **Path:** `/zra/team/{teamId}` - **Tags:** Teams Please delete team one by one, if your account enable hierarchical structure team. We currently do not support concurrent hierarchical team deletion. And if you want to delete flat team, you should make sure that the team members of the target team are empty. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:delete:team:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY` #### Responses ##### Status: 204 Successfully delete team ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`5002\` \
Invalid parameters. \
\*\*Error Code:\*\* \`5006\` \
Can not delete team, because team members are not null. \
\*\*Error Code:\*\* \`5004\` \
Other admins are editing team structure, please wait. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access is denied. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`5011\` \
Team not existing! \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Update Team name - **Method:** `PATCH` - **Path:** `/zra/team/{teamId}` - **Tags:** Teams Update the team name. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:update:team:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Request Body ##### Content-Type: application/json - **`team_name` (required)** `string` — The new name of the team. **Example:** ```json { "team_name": "CEO office" } ``` #### Responses ##### Status: 204 Update team successfully ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`5006\` \
Require team name. \
\*\*Error Code:\*\* \`5006\` \
Team name has already been used. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access is denied. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`5011\` \
Team not existing! \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Grant additional access to current team - **Method:** `POST` - **Path:** `/zra/team/{teamId}/access/granted-from` - **Tags:** Teams Grants the current team access to view conversation recordings hosted and attended by members of the specified source teams. Once access is granted, managers and members of the current team who have permission to read team conversations will be able to view these recordings. Use this endpoint when other teams choose to share their conversation data with the current team. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:team:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` **Not supported in Gov cluster** #### Request Body ##### Content-Type: application/json **Array of:** `string` — The target team IDs. You can pass up to 200 target team IDs in one request. - Max items: `200` **Example:** ```json [ "kdXNAEa0Q2WQWxpOMZtTQw" ] ``` #### Responses ##### Status: 201 Successfully grant additional access to current team. ###### Content-Type: application/json - **`added_at`** `string` — Successfully added time. And time format is \`yyyy-MM-dd'T'HH:mm:ss'Z'\`. **Example:** ```json { "added_at": "2025-06-04T15:30:00Z" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`5002\` \
Invalid parameters. \
\*\*Error Code:\*\* \`5007\` \
Please don't add more than 200 teams at one time. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token. \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access is denied. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`5011\` \
Team doesn't exist. \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### Remove additional access from current team - **Method:** `DELETE` - **Path:** `/zra/team/{teamId}/access/granted-from` - **Tags:** Teams The target teams stop granting additional access to the current team. If target teams stop, it means the managers/members of current team who have team conversation read permission can no longer view conversation recordings that were both hosted and attended by target teams' members. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:delete:team:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` **Not supported in Gov cluster** #### Responses ##### Status: 204 Removed additional access from current team successfully. ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`5002\` \
Invalid parameters. \
\*\*Error Code:\*\* \`5008\` \
Don't delete more than the limited number of supervisors at one time. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token. \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access is denied. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`5011\` \
Team does not exist. \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### Grant additional access to target teams - **Method:** `POST` - **Path:** `/zra/team/{teamId}/access/granted-to` - **Tags:** Teams The current team grants additional access to the target teams. If current team granted, it means the managers/members of target teams who have team conversation read permission can view conversation recordings that were both hosted and attended by current team's members. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:team:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` **Not supported in Gov cluster** #### Request Body ##### Content-Type: application/json **Array of:** `string` — The target team IDs. You can pass up to 200 target team IDs in one request. - Max items: `200` **Example:** ```json [ "kdXNAEa0Q2WQWxpOMZtTQw" ] ``` #### Responses ##### Status: 201 Grant additional access to target teams successfully ###### Content-Type: application/json - **`added_at`** `string` — Successfully added time. And time format is yyyy-MM-dd'T'HH:mm:ss'Z' **Example:** ```json { "added_at": "2025-06-04T15:30:00Z" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`5002\` \
Invalid parameters. \
\*\*Error Code:\*\* \`5007\` \
Don't add more than 200 teams at one time. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token. \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access denied. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`5011\` \
Team doesn't exist. \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### Remove additional access from target teams - **Method:** `DELETE` - **Path:** `/zra/team/{teamId}/access/granted-to` - **Tags:** Teams The current team stops granting additional access to the target teams. If current teams stop, it means the managersor members of target teams who have team conversation read permission can no longer view conversation recordings that were both hosted and attended by current team's members. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:delete:team:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` **Not supported in Gov cluster** #### Responses ##### Status: 204 Removed additional access from target teams successfully. ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`5002\` \
Invalid parameters. \
\*\*Error Code:\*\* \`5008\` \
Don't delete more than the limited number of supervisors at one time. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token. \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access denied. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`5011\` \
Team does not exist. \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### Move team to new parent - **Method:** `PATCH` - **Path:** `/zra/team/{teamId}/parent_team` - **Tags:** Teams Move current team under a new parent team. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:update:team:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY` #### Request Body ##### Content-Type: application/json - **`new_parent_team_id` (required)** `string` — The new parent team ID. **Example:** ```json { "new_parent_team_id": "kdXNAEa0Q2WQWxpOMZtTQw" } ``` #### Responses ##### Status: 204 Move team successfully. ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`5002\` \
Invalid parameters. \
\*\*Error Code:\*\* \`5004\` \
Other admins are editing team structure, please wait. \
\*\*Error Code:\*\* \`5006\` \
Can not delete team, because team members are not null. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access is denied. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`5011\` \
Team not existing! \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ### List Team Managers - **Method:** `GET` - **Path:** `/zra/team/{teamId}/team_managers` - **Tags:** Teams List Team Managers **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:team_managers:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 managers info and page token(optional) ###### Content-Type: application/json - **`managers`** `array` — managers info list **Items:** - **`email`** `string` — User email - **`first_name`** `string` — User first name - **`last_name`** `string` — User last name - **`user_id`** `string` — User UUID - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `string` — The number of records returned in a single API call. **Example:** ```json { "managers": [ { "user_id": "iL2FL0wsRbOU__OsdO-4Lg", "email": "jonathan.zhang03@dispostable.com", "first_name": "Jonathan", "last_name": "Zhang" } ], "next_page_token": "gPP6D7Oy6TUyGwpBBtICy03182P6nJp3yQ2", "page_size": "30" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`300\` \
The next page token is invalid or expired. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access is denied \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`0\` \
404 Route Not Found \
\*\*Error Code:\*\* \`5011\` \
Team not existing! \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Assign Team Managers - **Method:** `POST` - **Path:** `/zra/team/{teamId}/team_managers` - **Tags:** Teams Add team managers. Make sure your account support hierarchical structure team. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:team_manages:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY` #### Request Body ##### Content-Type: application/json **Array of:** `string` — Zoom user Id **Example:** ```json [ "Ikl0Wx89Tx-2XBoYVz53BQ" ] ``` #### Responses ##### Status: 201 Assign Team Manager Successfully ###### Content-Type: application/json - **`added_at`** `string` — Successfully added time - **`user_ids`** `string` — Successfully added team manager ids **Example:** ```json { "added_at": "yyyy-MM-dd'T'HH:mm:ss'Z'", "user_ids": "xrr05LIrS_e496HBfkrP2w,Ur7FSzS3QPerlRhHJvj3HA" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`5002\` \
Invalid parameters. \
\*\*Error Code:\*\* \`5007\` \
Please don't add more than the threshold number of supervisors at one time. \
\*\*Error Code:\*\* \`5006\` \
Assigning supervisor in flat team is not supported. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access is denied. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`5011\` \
Team not existing! \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Unassign Team Managers - **Method:** `DELETE` - **Path:** `/zra/team/{teamId}/team_managers` - **Tags:** Teams Delete team managers. Make sure your account support hierarchical structure team. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:delete:team_managers:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY` #### Responses ##### Status: 204 Delete team managers successfully ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`5002\` \
Invalid parameters. \
\*\*Error Code:\*\* \`5008\` \
Please don't delete more than the limited number of supervisors at one time. \
\*\*Error Code:\*\* \`5006\` \
Unassigning supervisor in flat team is not supported. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access is denied. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`5011\` \
Team not existing! \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### List Team Members - **Method:** `GET` - **Path:** `/zra/team/{teamId}/team_members` - **Tags:** Teams List team members by page **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:team_members:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 members info and page token ###### Content-Type: application/json - **`members`** `array` — member info list **Items:** - **`email`** `string` — User email - **`first_name`** `string` — User first name - **`last_name`** `string` — User last name - **`user_id`** `string` — User UUID - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer` — The number of records returned in a single API call. **Example:** ```json { "members": [ { "user_id": "iL2FL0wsRbOU__OsdO-4Lg", "email": "jonathan.zhang03@dispostable.com", "first_name": "Jonathan", "last_name": "Zhang" } ], "next_page_token": "gPP6D7Oy6TUyGwpBBtICy03182P6nJp3yQ2", "page_size": 30 } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`300\` \
The next page token is invalid or expired. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access is denied \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`0\` \
404 Route Not Found \
\*\*Error Code:\*\* \`5011\` \
Team not existing! \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Assign Team Members - **Method:** `POST` - **Path:** `/zra/team/{teamId}/team_members` - **Tags:** Teams Add one or more users to a team. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:write:team_members:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY` #### Request Body ##### Content-Type: application/json **Array of:** - **`email`** `string` — User Email. If you fill both user id and Email fields, we will choose user id. The Email field only takes effect when the user id field is empty. - **`user_id`** `string` — User ID. If you fill user id field, please ignore email field. **Example:** ```json [ { "user_id": "iL2FL0wsRbOU__OsdO-4Lg", "email": "xxx@zoom.us" } ] ``` #### Responses ##### Status: 201 Success ###### Content-Type: application/json - **`added_at`** `string` — Successfully added time - **`user_ids`** `string` — Successfully added member user ids **Example:** ```json { "added_at": "yyyy-MM-dd'T'HH:mm:ss'Z'", "user_ids": "useridxxx,useridyyy" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`5002\` \
Invalid parameters. \
\*\*Error Code:\*\* \`5007\` \
Please don't add more than 200 agents at one time. \
\*\*Error Code:\*\* \`5006\` \
Team not existing! \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access is denied \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`0\` \
404 Route Not Found \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### Unassign Team Members - **Method:** `DELETE` - **Path:** `/zra/team/{teamId}/team_members` - **Tags:** Teams Delete members of the team. Make sure to delete less than 30 users at one time. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:delete:team_members:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY` #### Responses ##### Status: 204 Delete Success ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`5002\` \
Invalid parameters. \
\*\*Error Code:\*\* \`5008\` \
Please don't delete more than 30 agents at one time. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token \
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access is denied. \
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`5011\` \
Team not existing! \
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ### List Account Teams - **Method:** `GET` - **Path:** `/zra/teams` - **Tags:** Teams List account teams. Filter by parent team ID or team name. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `iq_team:read:admin`,`iq_team:read` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `zra:read:team_list:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 get team list ###### Content-Type: application/json - **`next_page_token`** `string` — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes. - **`page_size`** `integer` — The number of records returned in a single API call. - **`teams`** `array` **Items:** - **`name` (required)** `string` — team name - **`team_id` (required)** `string` — UUID of team - **`description`** `string` — team description - **`leaf`** `boolean` — If this flag is true, it means this team has no child teams. - **`member_size`** `integer` — team member size - **`parent_teams`** `array` — This field will only be returned when you enter a search key. The parent teams are all the parent nodes of the hit teams, these team nodes have been sorted, from the upper parent node to the root node. **Items:** - **`name`** `string` — team name - **`team_id`** `string` — UUID of team - **`supervisor_size`** `integer` — team admin size - **`type`** `string`, possible values: `"flat team", "hierarchical team"` — the structure type of team **Example:** ```json { "teams": [ { "team_id": "aO1RVNBSRC2klMMdco14_g", "name": "level 1-10", "description": "level 1-10", "type": "hierarchical team", "member_size": 1, "supervisor_size": 1, "leaf": true, "parent_teams": [ { "team_id": "jeazIFbXSKm4E65_cxxQzA", "name": "level 1" } ] } ], "next_page_token": "gPP6D7Oy6TUyGwpBBtICy03182P6nJp3yQ2", "page_size": 30 } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`300\` \
The next page token is invalid or expired. \
\
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized \*\*Error Code:\*\* \`30031004\` \
Invalid or expired token \
\
##### Status: 403 \*\*HTTP Status Code:\*\* \`403\` \
Forbidden \*\*Error Code:\*\* \`5001\` \
Access is denied \
\
##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found \*\*Error Code:\*\* \`0\` \
404 Route Not Found \
\
##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/).