Revenue Accelerator
- OpenAPI Version:
3.1.1 - API Version:
2
The ZRA APIs allow developers to interface with Zoom Revenue Accelerator 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: account:read:admin,account:write:admin,iq_account:read:admin
Granular Scopes: zra:read:indicator,zra:read:indicator:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` Account indicators settings returned.
Content-Type: application/json
All of:
-
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call.
-
indicatorsarray— The indicator settings.Items:
-
category_idstring— The indicator's category id. -
category_namestring— The indicator's category name. -
created_timestring, format:date-time— The time at which the indicator was added. -
descriptionstring— The indicator's description. -
enabledboolean— Whether the indicator is enabled. -
idstring— The indicator id. -
last_modified_timestring, format:date-time— The time at which the indicator was last updated. -
last_modified_user_namestring— User name of the user that configured the latest update. -
mentioned_bystring, possible values:"anyone", "reps", "prospects"— Identify when Mentioned by. -
namestring— The indicator's name. -
typestring, possible values:"basic", "advanced", "guiding_sentences"— The indicator's type.
-
Example:
{
"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` <br> Bad Request **Error Code:** `1001` <br> indicator setting is disable. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Category does not exist: {$categoryId}. <br> Type does not exist: {$typeId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: account:read:admin,account:write:admin,iq_account:read:admin
Granular Scopes: zra:read:indicator,zra:read:indicator:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` Account indicators settings returned.
Content-Type: application/json
All of:
-
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call.
-
indicatorsarray— The indicator settings.Items:
-
category_idstring— The indicator's category id. -
category_namestring— The indicator's category name. -
created_timestring, format:date-time— The time at which the indicator was added. -
descriptionstring— The indicator's description. -
enabledboolean— Whether the indicator is enabled. -
idstring— The indicator id. -
last_modified_timestring, format:date-time— The time at which the indicator was last updated. -
last_modified_user_namestring— User name of the user that configured the latest update. -
mentioned_bystring, possible values:"anyone", "reps", "prospects"— Identify when Mentioned by. -
namestring— The indicator's name. -
typestring, possible values:"basic", "advanced", "guiding_sentences"— The indicator's type.
-
Example:
{
"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` <br> Bad Request **Error Code:** `1001` <br> indicator setting is disable. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Category does not exist: {$categoryId}. <br> Type does not exist: {$typeId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_conversation:read,iq_conversation:write,iq_conversation:read:admin,iq_conversation:write:admin
Granular Scopes: zra:read:list_conversations,zra:read:list_conversations:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` All authorized conversations returned.
Content-Type: application/json
All of:
-
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call.
-
conversationsarrayItems:
-
conversation_idstring— The conversation ID. -
conversation_topicstring— The conversation topic. -
conversation_typestring— The conversation type. -
deal_idstring— The Zoom specific deal ID. -
durationinteger— The recording duration in minutes. -
engagement_scoreinteger— The engagement score. -
engaging_questions_countinteger— The count of engaging questions. -
filler_words_countinteger— The count of filler words per minute. -
host_idstring— The meeting host's user ID. -
iq_processed_timestring— The time IQ was processed. -
meeting_idinteger, format:int64— The meeting ID also known as the meeting number in long (int64) format. -
meeting_start_timestring— The meeting start time. -
meeting_uuidstring— The Meeting ID. Each meeting instance generates its own meeting UUID. -
next_steps_countinteger— The count of next steps. -
processing_analysisboolean— Whether the conversation is in processing analysis. -
sentiment_scoreinteger— The sentiment score. -
topicstring— The meeting topic.
-
Example:
{
"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` <br> Bad Request **Error Code:** `1001` <br> The from or to time is invalid. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Team does not exist: {$teamId} <br> Deal does not exist: {$dealId} <br> Host or participant user does not exist: {$userId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_conversation:write:admin,iq_conversation:write
Granular Scopes: zra:write:conversation,zra:write:conversation:admin
Rate Limit Label: 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_topicstring— The meeting/phone topic. -
deal_idstring— The Zoom deal ID. -
download_urlstring— The third party download URL. -
file_idstring— The IQ file's unique ID. -
host_idstring— The host user ID or email address. -
meeting_end_timestring— The meeting end time. -
participantsarray— 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. -
emailstring— The email of the participant, if available.
-
-
primary_languagestring, possible values:"en", "es", "fr", "de", "it", "zh", "ru", "uk", "ja", "ko", "vi", "pt", "nl", "hi"— The primary language. -
timelinearray— The speech timeline, who spoke whenItems:
-
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. -
emailstring— The email of the participant, if available.
-
-
start_time_in_recording(required)string— The start time in recording.
-
-
timezonestring— 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:
{
"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": "[email protected]"
}
],
"timeline": [
{
"start_time_in_recording": "00:00:01.910",
"participants": [
{
"display_name": "user name",
"email": "[email protected]"
}
]
}
]
}
Responses
Status: 201 **HTTP Status Code:** `201` Conversation added.
Content-Type: application/json
-
conversation_idstring— The conversation ID.
Example:
{
"conversation_id": "egLSRuj2SlWet+wLi87LNA==,1667893163000"
}
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> File id does not exist: {$fileId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_conversation:read,iq_conversation:write,iq_conversation:read:admin,iq_conversation:write:admin
Granular Scopes: zra:read:conversations:admin,zra:read:conversations
Rate Limit Label: LIGHT
Responses
Status: 200 **HTTP Status Code:** `200` Conversation information returned.
Content-Type: application/json
-
conversation_idstring— The conversation ID. -
conversation_topicstring— The conversation topic. -
conversation_typestring— The conversation type. -
conversation_urlstring— The URL for easy access to conversation detail page. -
dealobject— The deal of the conversation.-
close_datestring— The close date of the deal. -
customer_crm_account_namestring— The customer CRM account name of the deal. -
idstring— The deal ID. -
namestring— The deal name. -
stagestring— The current stage of the deal.
-
-
durationinteger— The recording duration in minutes. -
engagement_scoreinteger— The engagement score. -
host_emailstring, format:email— The meeting host's email address. -
host_idstring— The meeting host's user ID. -
iq_processed_timestring— The time IQ processed. -
meeting_idinteger, format:int64— The meeting ID also known as the meeting number in long (int64) format. -
meeting_start_timestring— The meeting start time. -
meeting_uuidstring— The meeting ID. Each meeting instance generates its own meeting UUID. -
sentiment_scoreinteger— The sentiment score. -
stage_during_conversationstring— The stage of the deal when the conversation occurred -
start_timestring— The meeting start time. -
summarystring— The conversation summary. -
topicstring— The meeting topic.
Example:
{
"conversation_id": "egLSRuj2SlWet+wLi87LNA==,1667893163000",
"meeting_id": 896549134891,
"meeting_uuid": "egLSRuj2SlWet+wLi87LNA==",
"host_id": "x1yCzABCDEfg23HiJKl4mN",
"host_email": "[email protected]",
"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` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {$conversationId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_conversation:write:admin,iq_conversation:write
Granular Scopes: zra:delete:conversations,zra:delete:conversations:admin
Rate Limit Label: LIGHT
Responses
Status: 204 **HTTP Status Code:** `204` No Content.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid path parameter: {param} <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5004` <br> This conversation will be available after the processing analysis is completed <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {conversationId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_comment:read,iq_comment:write,iq_comment:read:admin,iq_comment:write:admin
Granular Scopes: zra:read:list_conversation_comments,zra:read:list_conversation_comments:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` Conversation comments returned.
Content-Type: application/json
All of:
-
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call.
-
commentsarray— The comments of the conversation.Items:
-
commentstring— The actual comment. -
created_timestring, format:date-time— The time at which the comment was added. -
idstring— The comment's ID in this conversation. -
is_privateboolean— Determine whether comment is public or private. -
last_modified_timestring, format:date-time— The time at which the comment was last updated. -
mention_teamsarray— The list of teams mentioned in the commentItems:
-
team_idstring— The mentioned team's ID. -
team_namestring— The mentioned team's name.
-
-
mention_usersarray— The list of the users mentioned in the commentItems:
-
user_idstring— The mentioned user's ID. -
user_namestring— The mentioned user's name.
-
-
parent_comment_idstring— The parent comment's ID in this conversation. -
time_in_recordingstring— The time in recording which the player should advance. -
user_emailstring— The commenter's email address. -
user_namestring— The commenter's user name.
-
Example:
{
"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": "[email protected]",
"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` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {$conversationId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_comment:write,iq_comment:write:admin
Granular Scopes: zra:write:conversation_comment,zra:write:conversation_comment:admin
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
comment(required)string— The actual comment. -
is_privateboolean— Determine whether comment is public or private. -
mention_team_idsarray— The list of teams mentioned in the commentItems:
string— The mentioned team's ID. -
mention_user_idsarray— The list of the users mentioned in the commentItems:
string— The mentioned user's ID. -
parent_comment_idstring— The parent comment's ID in this conversation. -
time_in_recordingstring— The time in recording which the player should advance.
Example:
{
"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
-
commentstring— The actual comment. -
created_timestring, format:date-time— The time at which the comment was added. -
idstring— The comment's ID in this conversation. -
is_privateboolean— Determine whether comment is public or private. -
last_modified_timestring, format:date-time— The time at which the comment was last updated. -
mention_teamsarray— The list of teams mentioned in the commentItems:
-
team_idstring— The mentioned team's ID. -
team_namestring— The mentioned team's name.
-
-
mention_usersarray— The list of the users mentioned in the commentItems:
-
user_idstring— The mentioned user's ID. -
user_namestring— The mentioned user's name.
-
-
parent_comment_idstring— The parent comment's ID in this conversation. -
time_in_recordingstring— The time in recording which the player should advance. -
user_emailstring— The commenter's email address. -
user_namestring— The commenter's user name.
Example:
{
"id": "7c8b7301-d32b-4850-92c7-ea9f5a40fd39",
"parent_comment_id": "34dfg301-d32b-4850-92c7-ea9f5a40fd39",
"user_name": "John Deve",
"user_email": "[email protected]",
"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` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {$conversationId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_comment:write,iq_comment:write:admin
Granular Scopes: zra:delete:conversation_comment,zra:delete:conversation_comment:admin
Rate Limit Label: MEDIUM
Responses
Status: 204 **HTTP Status Code:** `204` No Content.
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {conversationId} <br> Comment does not exist: {commentId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_comment:write,iq_comment:write:admin
Granular Scopes: zra:update:conversation_comment,zra:update:conversation_comment:admin
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
commentstring— The actual comment. -
mention_team_idsarray— The list of teams mentioned in the commentItems:
string— The mentioned team's ID. -
mention_user_idsarray— The list of the users mentioned in the commentItems:
string— The mentioned user's ID. -
time_in_recordingstring— The time in recording which the player should advance.
Example:
{
"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` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {conversationId} <br> Comment does not exist: {commentId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_conversation:read,iq_conversation:write,iq_conversation:read:admin,iq_conversation:write:admin
Granular Scopes: zra:read:conversation_analysis,zra:read:conversation_analysis:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` Conversation information returned.
Content-Type: application/json
All of:
-
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call.
-
analysisarray— The analysis results.Items:
-
sectionarrayItems:
-
display_namestring— The name of the user. -
end_timestring— The indicator end time. -
indicator_idstring— The indicator ID. -
indicator_namestring— The indicator's name. -
key_wordstring— The keyword define in indicator. -
labelstring— The label of the topic. -
marked_bystring, 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_timestring— The indicator start time. -
textstring— The text content. -
user_idstring— 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. -
utterancestring— The text's complete utterance.
-
-
-
smart_chaptersarray— The smart chapters. Only returned when `analysis_type` is `smartChapters`.Items:
-
categorystring— The chapter category. -
end_timestring— The chapter end time. -
start_timestring— The chapter start time. -
summarystring— The chapter summary. -
titlestring— The chapter title.
-
-
summarystring— The overall conversation summary. Only returned when the `analysis_type` is `smartChapters`
Example:
{
"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` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {$conversationId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_conversation:read,iq_conversation:write,iq_conversation:read:admin,iq_conversation:write:admin
Granular Scopes: zra:read:conversation_participants,zra:read:conversation_participants:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` Conversation information returned.
Content-Type: application/json
All of:
-
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call.
-
participantsarray— The speakers in the conversation.Items:
-
display_namestring— The speaker's user name. -
emailstring— 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. -
metricsobject— The metrics for the conversation.-
filler_wordsnumber— The count of filler words. Unit: words/min. -
longest_monolognumber— The longest monologue in seconds. -
patiencenumber— The patience in seconds. -
talk_speednumber— The talk speed in words per minute. -
talk_to_listen_rationumber— The talk-to-listen ratio.
-
-
speaker_typestring, possible values:"rep", "customer"— The type of the speaker. -
transcriptsarrayItems:
-
end_timestring— The speak item end time. -
item_idstring— The item ID. -
start_timestring— The speak item start time. -
textstring— The speech in text.
-
-
user_idstring— 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:
{
"next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42",
"page_size": 30,
"participants": [
{
"user_id": "hjficvXtR42vjSABCCS32Q",
"display_name": "John Deve",
"email": "[email protected]",
"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` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {$conversationId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_coaching:read:admin,iq_coaching:read
Granular Scopes: zra:read:conversation_scorecards,zra:read:conversation_scorecards:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` Conversation scorecards returned.
Content-Type: application/json
All of:
-
scorecardsarray— The scorecards of the conversation.Items:
-
average_scorenumber— The average score for this scorecard. -
rate_timestring, format:date-time— The time at which the scorecard was rated. -
raterobject— User information of the person who rates this scorecard.-
display_namestring— Name of the person who rates the scorecard. -
emailstring— Email address of person who rates the scorecard. -
user_idstring— The unique identifier for the user.
-
-
scorecard_descriptionstring— The scorecard's description. -
scorecard_idstring— The scorecard's ID. -
scorecard_namestring— The scorecard's name. -
scorecard_questionsarray— Questions in the scorecardItems:
-
question_commentstring— The question's comment. -
question_descriptionstring— The question's description. -
question_idstring— The question's ID. -
question_titlestring— The question title -
scaleobject— The scale information for this question.-
max_score_labelstring— The highest score. -
min_score_labelstring— The lowest score.
-
-
scorenumber— The user's score for the question.
-
-
-
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call.
Example:
{
"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": "[email protected]",
"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` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {$conversationId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_conversation:write:admin,iq_conversation:write
Granular Scopes: zra:update:conversation_host,zra:update:conversation_host:admin
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
new_host_idstring— The user ID or email address of the host.
Example:
{
"new_host_id": "IGTRVt3gQ2i-WjoUIjeZxw"
}
Responses
Status: 204 **HTTP Status Code:** `204` Conversation updated.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1006` <br> User has no IQ license. <br> **Error Code:** `300` <br> Missing field: {field} <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> User does not exist.<br> <br> **Error Code:** `2001` <br> Conversation does not exist: {conversationId}.<br> <br>
Status: 429 **HTTP Status Code:** `429` <br> 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,.wmvorH.264. -
Supported transcript and file attachment format:
.json. ThefileNamemust end withtranscript.json. -
Supported metadata and file attachment format:
.json. The fileName must end withmetadata.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, this API can only be used on behalf of a user who is assigned with a role with Edit permission for All Conversations.
Scopes: iq_conversation:write:admin,iq_conversation:write
Granular Scopes: 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_idstring— The main file's unique ID. Use this field to upload a attachment file. -
sourcenumber— 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:
{
"file": "",
"main_file_id": "xBvggqyjQUal6TecwMlYwQ",
"source": 1
}
Responses
Status: 201 **HTTP Status Code:** `201` File successfully uploaded.
Content-Type: application/json
-
file_idstring— The IQ file's unique ID.
Example:
{
"file_id": "xBvggqyjQUal6TecwMlYwE"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `124` <br> Invalid access token. <br> **Error Code:** `200` <br> 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. <br> **Error Code:** `300` <br> Invalid File type. <br> Maximum file size exceeded: ${maxSize}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> File ID does not exist: {$fileId}.<br> <br>
Status: 429 **HTTP Status Code:** `429` <br> 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,.wmvorH.264format. - Transcript can be in
.vtt,.jsonformat. - 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, this API can only be used on behalf of a user who is assigned with a role that has the Edit permission for All Conversations.
Scopes: iq_conversation:write:admin,iq_conversation:write
Granular Scopes: 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:
{
"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_etagobject— The part number etag, Collect and bring it back in the final request to complete the multipart upload request.-
etagstring— The etag of the part being uploaded. -
part_numberinteger— the part number of the part being uploaded.
-
Example:
{
"part_number_etag": {
"part_number": 1,
"etag": "etag1"
}
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `124` <br> Invalid access token. <br> **Error Code:** `200` <br> 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. <br> **Error Code:** `300` <br> Invalid File type. <br>Part number exceeded: ${maxSize}. <br>Maximum file size exceeded: ${maxSize}.<br>Each part must be at least 5 MB in size, except the last part. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Upload context {upload_context} not exist.<br> <br>
Status: 429 **HTTP Status Code:** `429` <br> 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, this API can only be used on behalf of a user who is assigned with a role with Edit permission for All Conversations.
Scopes: iq_conversation:write:admin,iq_conversation:write
Granular Scopes: 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. -
paramsobject— The CompleteMultipartUpload parameters.-
file_namestring— The iq file's name. If you pass the `CreateMultipartUpload` value for the `method` field. -
main_file_idstring— 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_etagsarray— The part number etags being uploaded. Use this field if you pass the `CompleteMultipartUpload` value for the `method` field.Items:
-
etagstring— The etag of the part being uploaded. -
part_numberinteger— the part number of the part being uploaded.
-
-
upload_contextstring— 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:
{
"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_idstring— The iq file's unique ID. Return this field if you pass the `CompleteMultipartUpload` value for the `method` field. -
upload_contextstring— 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:
{
"upload_context": "noNpr2pkBEv4_fTxYWDEHBsSs3pl8keRx4fPZmnyNDe.SPdodJp.3UZDaCI2xRVzkRh0xeEV6RuOrXZpJQBPutWCS424c2YnHVxVh8b9.4DNwd4VErRuD98jeJBwRCgz6rC3I4NQg5zXAtCqPFoC0g--",
"file_id": "xBvggqyjQUal6TecwMlYwQ"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `124` <br> Invalid access token. <br> **Error Code:** `200` <br> 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. <br> **Error Code:** `300` <br> Invalid part number etags. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Upload context {upload_context} not exist.<br>File ID does not exist: {$fileId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_conversation:write:admin,iq_conversation:write
Granular Scopes: zra:write:conversation,zra:write:conversation:admin
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
meeting_uuidstring— The Meeting ID. Each meeting instance generates its own meeting UUID. -
recording_linkstring— The meeting record url. It could be share_url or play_url.
Example:
{
"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_uuidstring— The Meeting ID. Each meeting instance generates its own meeting UUID.
Example:
{
"meeting_uuid": "egLSRuj2SlWet+wLi87LNA=="
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `3300` <br> Failed to add the recording, please try again.<br> <br> **Error Code:** `5333` <br> `3318`<br> This is an invalid link. <br> <br> **Error Code:** `3318` <br> This is an invalid link. <br> <br> **Error Code:** `3320` <br> You cannot add recording with CMK encryption. <br> <br> **Error Code:** `3319` <br> This recording is already added. <br> <br> **Error Code:** `3315` <br> This recording is already under processing analysis.<br> <br> **Error Code:** `3314` <br> The recording must have been made after {0}.<br> <br> **Error Code:** `3317` <br> User has no IQ license. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `3313` <br> User {$userId} is not the host of recording. <br> <br> **Error Code:** `1004` <br> no permission to operate. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> User ID does not exist: {$userId}. <br> <br> **Error Code:** `3316` <br> Meeting ID does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_playlist:read,iq_playlist:read:admin
Granular Scopes: zra:read:list_conversation_playlists,zra:read:list_conversation_playlists
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` Successfully listed a user's playlist.
Content-Type: application/json
All of:
-
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call.
-
playlistsarrayItems:
-
created_bystring— The create user's name. -
followingboolean— Following plalist -
modified_timestring, format:date-time— The time the playlist was modified. -
number_of_conversationsinteger— The number of conversations in a playlist. -
playlist_idstring— The Playlist ID. Each playlist will generate its own playlist UUID. -
playlist_namestring— The name of the playlist. -
typestring— The type of the playlist
-
Example:
{
"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` <br> Not Found **Error Code:** `1001` <br> User ID does not exist: {$userId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_conversation:read,iq_conversation:write,iq_conversation:read:admin,iq_conversation:write:admin
Granular Scopes: zra:read:list_conversations,zra:read:list_conversations:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` All authorized conversations returned.
Content-Type: application/json
All of:
-
fromstring— The start date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format. -
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call. -
tostring— The end date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.
-
conversationsarrayItems:
-
conversation_idstring— The conversation ID. -
conversation_topicstring— The conversation topic. -
conversation_typestring— The conversation type. -
deal_idstring— The Zoom specific deal ID. -
durationinteger— The recording duration in minutes. -
duration_secinteger— The recording duration in seconds. -
engagement_scoreinteger— The engagement score. -
engaging_questions_countinteger— The count of engaging questions. -
filler_words_countinteger— The count of filler words per minute. -
host_idstring— The meeting host's user ID. -
iq_processed_timestring— The time IQ was processed. -
meeting_idinteger, format:int64— The meeting ID also known as the meeting number in long (int64) format. -
meeting_start_timestring— The meeting start time. -
meeting_uuidstring— The Meeting ID. Each meeting instance generates its own meeting UUID. -
next_steps_countinteger— The count of next steps. -
processing_analysisboolean— Whether the conversation is in processing analysis. -
sentiment_scoreinteger— The sentiment score. -
topicstring— The meeting topic.
-
Example:
{
"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` <br> Bad Request **Error Code:** `1001` <br> The from or to time is invalid. <br> <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Team does not exist: {$teamId} <br> Deal does not exist: {$dealId} <br> Host or participant user does not exist: {$userId} <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_conversation:write:admin,iq_conversation:write
Granular Scopes: zra:write:conversation,zra:write:conversation:admin
Rate Limit Label: 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_topicstring— The meeting/phone topic. -
deal_idstring— The Zoom deal ID. -
download_urlstring— The third party download URL. -
file_idstring— The IQ file's unique ID. -
host_idstring— The host user ID or email address. -
meeting_end_timestring— The meeting end time. -
participantsarray— 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. -
emailstring— The email of the participant, if available.
-
-
primary_languagestring, possible values:"en", "es", "fr", "de", "it", "zh", "ru", "uk", "ja", "ko", "vi", "pt", "nl", "hi"— The primary language. -
timelinearray— The speech timeline, who spoke whenItems:
-
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. -
emailstring— The email of the participant, if available.
-
-
start_time_in_recording(required)string— The start time in recording.
-
-
timezonestring— 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:
{
"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": "[email protected]"
}
],
"timeline": [
{
"start_time_in_recording": "00:00:01.910",
"participants": [
{
"display_name": "user name",
"email": "[email protected]"
}
]
}
]
}
Responses
Status: 201 **HTTP Status Code:** `201` Conversation added.
Content-Type: application/json
-
conversation_idstring— The conversation ID.
Example:
{
"conversation_id": "egLSRuj2SlWet+wLi87LNA==,1667893163000"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request bad request **Error Code:** `1001` <br> request param is invalid <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> File id does not exist: {$fileId} <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_conversation:read,iq_conversation:write,iq_conversation:read:admin,iq_conversation:write:admin
Granular Scopes: zra:read:conversations:admin,zra:read:conversations
Rate Limit Label: LIGHT
Responses
Status: 200 **HTTP Status Code:** `200` Conversation information returned.
Content-Type: application/json
-
calendar_clientstring— The calendar provider associated with the calendar event linked to this conversation. -
conversation_idstring— The conversation ID. -
conversation_topicstring— The conversation topic. -
conversation_typestring— The conversation type. -
conversation_urlstring— The URL for easy access to conversation detail page. -
conversation_viewobject— The view information of this conversation.-
total_view_countsinteger— Total view times of this conversation. -
view_user_infosarray— View conversation user information.Items:
-
countsinteger— The user view this conversation counts. -
user_display_namestring— The user name who viewed this conversation. -
user_idstring— The user ID who viewed this conversation.
-
-
-
dealobject— The deal of the conversation.-
close_datestring— The close date of the deal. -
customer_crm_account_namestring— The customer CRM account name of the deal. -
idstring— The deal ID. -
namestring— The deal name. -
stagestring— The current stage of the deal.
-
-
downloadUrlstring— Expires after one hour. -
durationinteger— The recording duration in minutes. -
duration_secinteger— The recording duration, in seconds. -
engagement_scoreinteger— The engagement score. -
event_idstring— The unique ID of this calendar event in the calendar provider. -
host_emailstring, format:email— The meeting host's email address. -
host_idstring— The meeting host's user ID. -
iq_processed_timestring— The time the IQ was processed. -
meeting_idinteger, format:int64— The meeting ID, also known as the meeting number, in long (int64) format. -
meeting_start_timestring— The meeting start time. -
meeting_uuidstring— The meeting ID. Each meeting instance generates its own meeting UUID. -
moment_infoarray— The moment information of the conversation.Items:
-
create_user_display_namestring— The user name who created this moment. -
create_user_idstring— The user ID who created this moment. -
moment_idstring— This moment's ID. -
moment_namestring— This moment's name. -
share_countsstring— Total shared counts of this moment. -
share_user_infosarray— Share this moment user information.Items:
-
countsinteger— Unique user shared this moment counts. -
user_display_namestring— The user name who shared this moment. -
user_idstring— The user ID who shared this moment.
-
-
-
participantsarray— All of the users who belong in this meeting.Items:
-
display_namestring— This participant's display name. -
emailstring— This participant's email. -
typestring, possible values:"rep", "customer"— Rep or custome.r
-
-
recording_download_urlstring— Expires after one hour. -
sentiment_scoreinteger— The sentiment score. -
stage_during_conversationstring— The stage of the deal when the conversation occurred. -
start_timestring— The meeting start time. -
summarystring— The conversation summary. -
topicstring— The meeting topic.
Example:
{
"conversation_id": "egLSRuj2SlWet+wLi87LNA==,1667893163000",
"meeting_id": 896549134891,
"meeting_uuid": "egLSRuj2SlWet+wLi87LNA==",
"host_id": "x1yCzABCDEfg23HiJKl4mN",
"host_email": "[email protected]",
"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": "[email protected]",
"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` <br> Forbidden **Error Code:** `1004` <br> You don't have the permission. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {$conversationId}. <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_conversation:write:admin,iq_conversation:write
Granular Scopes: zra:delete:conversations,zra:delete:conversations:admin
Rate Limit Label: LIGHT
Responses
Status: 204 **HTTP Status Code:** `204` No Content.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> Invalid path parameter: {param} <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5004` <br> This conversation will be available after the processing analysis is completed <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {conversationId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_comment:read,iq_comment:write,iq_comment:read:admin,iq_comment:write:admin
Granular Scopes: zra:read:list_conversation_comments,zra:read:list_conversation_comments:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` Conversation comments returned.
Content-Type: application/json
All of:
-
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call.
-
commentsarray— The comments of the conversation.Items:
-
commentstring— The actual comment. -
created_timestring, format:date-time— The time at which the comment was added. -
idstring— The comment's ID in this conversation. -
is_privateboolean— Determine whether comment is public or private. -
last_modified_timestring, format:date-time— The time at which the comment was last updated. -
mention_teamsarray— The list of teams mentioned in the commentItems:
-
team_idstring— The mentioned team's ID. -
team_namestring— The mentioned team's name.
-
-
mention_usersarray— The list of the users mentioned in the commentItems:
-
user_idstring— The mentioned user's ID. -
user_namestring— The mentioned user's name.
-
-
parent_comment_idstring— The parent comment's ID in this conversation. -
time_in_recordingstring— The time in recording which the player should advance. -
user_emailstring— The commenter's email address. -
user_namestring— The commenter's user name.
-
Example:
{
"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": "[email protected]",
"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` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {$conversationId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_comment:write,iq_comment:write:admin
Granular Scopes: zra:read:list_conversation_comments,zra:read:list_conversation_comments:admin
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
comment(required)string— The actual comment. -
is_privateboolean— Determine whether comment is public or private. -
mention_team_idsarray— The list of teams mentioned in the commentItems:
string— The mentioned team's ID. -
mention_user_idsarray— The list of the users mentioned in the commentItems:
string— The mentioned user's ID. -
parent_comment_idstring— The parent comment's ID in this conversation. -
time_in_recordingstring— The time in recording which the player should advance.
Example:
{
"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
-
commentstring— The actual comment. -
created_timestring, format:date-time— The time at which the comment was added. -
idstring— The comment's ID in this conversation. -
is_privateboolean— Determine whether comment is public or private. -
last_modified_timestring, format:date-time— The time at which the comment was last updated. -
mention_teamsarray— The list of teams mentioned in the commentItems:
-
team_idstring— The mentioned team's ID. -
team_namestring— The mentioned team's name.
-
-
mention_usersarray— The list of the users mentioned in the commentItems:
-
user_idstring— The mentioned user's ID. -
user_namestring— The mentioned user's name.
-
-
parent_comment_idstring— The parent comment's ID in this conversation. -
time_in_recordingstring— The time in recording which the player should advance. -
user_emailstring— The commenter's email address. -
user_namestring— The commenter's user name.
Example:
{
"id": "7c8b7301-d32b-4850-92c7-ea9f5a40fd39",
"parent_comment_id": "34dfg301-d32b-4850-92c7-ea9f5a40fd39",
"user_name": "John Deve",
"user_email": "[email protected]",
"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` <br> Bad Request Bad request **Error Code:** `1001` <br> Invalid request param <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {$conversationId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_comment:write,iq_comment:write:admin
Granular Scopes: zra:delete:conversation_comment,zra:delete:conversation_comment:admin
Rate Limit Label: MEDIUM
Responses
Status: 204 **HTTP Status Code:** `204` No Content.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Bad request **Error Code:** `1001` <br> Invalid request param <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {conversationId} <br> Comment does not exist: {commentId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_comment:write,iq_comment:write:admin
Granular Scopes: zra:update:conversation_comment,zra:update:conversation_comment:admin
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
commentstring— The actual comment. -
mention_team_idsarray— The list of teams mentioned in the commentItems:
string— The mentioned team's ID. -
mention_user_idsarray— The list of the users mentioned in the commentItems:
string— The mentioned user's ID. -
time_in_recordingstring— The time in recording which the player should advance.
Example:
{
"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` <br> Bad Request Bad request **Error Code:** `1001` <br> Invalid request param <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {conversationId} <br> Comment does not exist: {commentId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_conversation:read,iq_conversation:write,iq_conversation:read:admin,iq_conversation:write:admin
Granular Scopes: zra:read:conversation_analysis,zra:read:conversation_analysis:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` Conversation information returned.
Content-Type: application/json
All of:
-
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call.
-
analysisarray— The analysis results. if `analysis_type` is `all` will not returnedItems:
-
sectionarray— analysis section itemsItems:
-
display_namestring— The name of the user. -
end_timestring— The indicator end time. -
indicator_idstring— The indicator ID. -
indicator_namestring— The indicator's name. -
key_wordstring— The keyword define in indicator. -
labelstring— The label of the topic. -
marked_bystring, 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_timestring— The indicator start time. -
textstring— The text content. -
user_idstring— 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. -
utterancestring— The text's complete utterance.
-
-
-
deal_memoobject— the deal memo of this conversation will returned when `analysis_type` is `dealMemo` or `all`.-
potential_concernsarray— potential concernsItems:
-
explanationstring— explanation for the factor -
factorstring— factor for potential_concerns
-
-
potential_winsarray— potential winsItems:
-
explanationstring— explanation for the factor -
factorstring— factor for potential_wins
-
-
-
good_questionsarray— The `good_question`s results. Only exists when `analysis_type` is `all`.Items:
-
sectionarray— analysis section itemsItems:
-
display_namestring— The name of the user. -
end_timestring— The indicator end time. -
indicator_idstring— The indicator ID. -
indicator_namestring— The indicator's name. -
key_wordstring— The keyword define in indicator. -
labelstring— The label of the topic. -
marked_bystring, 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_timestring— The indicator start time. -
textstring— The text content. -
user_idstring— 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. -
utterancestring— The text's complete utterance.
-
-
-
indicatorsarray— The indicators results. Only exists when `analysis_type` is `all`.Items:
-
sectionarray— analysis section itemsItems:
-
display_namestring— The name of the user. -
end_timestring— The indicator end time. -
indicator_idstring— The indicator ID. -
indicator_namestring— The indicator's name. -
key_wordstring— The keyword define in indicator. -
labelstring— The label of the topic. -
marked_bystring, 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_timestring— The indicator start time. -
textstring— The text content. -
user_idstring— 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. -
utterancestring— The text's complete utterance.
-
-
-
next_stepsarray— The `next_steps` results. Only exists when `analysis_type` is `all`.Items:
-
sectionarray— analysis section itemsItems:
-
display_namestring— The name of the user. -
end_timestring— The indicator end time. -
indicator_idstring— The indicator ID. -
indicator_namestring— The indicator's name. -
key_wordstring— The keyword define in indicator. -
labelstring— The label of the topic. -
marked_bystring, 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_timestring— The indicator start time. -
textstring— The text content. -
user_idstring— 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. -
utterancestring— The text's complete utterance.
-
-
-
playbooksarray— Playbook NotesItems:
-
elementsarray— The playbook contains elements with notes.Items:
-
answerobject— The AI answer for this element.-
sourcesarray— sourcesItems:
-
end_timestring— end time -
item_idstring— transcript item id -
speaker_namestring— speaker name -
start_timestring— start time -
textstring— transcript sentences -
time_sinteger— From the beginning to the current number of seconds
-
-
summariesarray— summariesItems:
string— summaries
-
-
element_idstring— element id -
element_namestring— element name
-
-
playbook_idstring— playbook id -
playbook_namestring— playbook name
-
-
smart_chaptersarray— The smart chapters. Returned when `analysis_type` is `smartChapters` or `all`.Items:
-
categorystring— The chapter category. -
end_timestring— The chapter end time. -
start_timestring— The chapter start time. -
summarystring— The chapter summary. -
titlestring— The chapter title.
-
-
summarystring— The overall conversation summary. Only returned when the `analysis_type` is `smartChapters` -
topicsarray— The topics results. oOly exists when `analysis_type` is `all`.Items:
-
sectionarray— analysis section itemsItems:
-
display_namestring— The name of the user. -
end_timestring— The indicator end time. -
indicator_idstring— The indicator ID. -
indicator_namestring— The indicator's name. -
key_wordstring— The keyword define in indicator. -
labelstring— The label of the topic. -
marked_bystring, 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_timestring— The indicator start time. -
textstring— The text content. -
user_idstring— 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. -
utterancestring— The text's complete utterance.
-
-
Example:
{
"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` <br> Bad Request Bad request. **Error Code:** `1001` <br> Invalid request parameter. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {$conversationId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_conversation:read,iq_conversation:write,iq_conversation:read:admin,iq_conversation:write:admin
Granular Scopes: zra:read:conversation_participants,zra:read:conversation_participants:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` Conversation information returned.
Content-Type: application/json
All of:
-
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call.
-
participantsarray— The speakers in the conversation.Items:
-
display_namestring— The speaker's user name. -
emailstring— 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. -
metricsobject— The metrics for the conversation.-
filler_wordsnumber— The count of filler words. Unit: words/min. -
longest_monolognumber— The longest monologue in seconds. -
patiencenumber— The patience in seconds. -
talk_speednumber— The talk speed in words per minute. -
talk_to_listen_rationumber— The talk-to-listen ratio.
-
-
speaker_typestring, possible values:"rep", "customer"— The type of the speaker. -
transcriptsarrayItems:
-
end_timestring— The speak item end time. -
item_idstring— The item ID. -
start_timestring— The speak item start time. -
textstring— The speech in text.
-
-
user_idstring— 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:
{
"next_page_token": "R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42",
"page_size": 30,
"participants": [
{
"user_id": "hjficvXtR42vjSABCCS32Q",
"display_name": "John Deve",
"email": "[email protected]",
"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` <br> Bad Request Bad request **Error Code:** `1001` <br> Invalid request param <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {$conversationId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_coaching:read,iq_coaching:read:admin
Granular Scopes: zra:read:conversation_scorecards,zra:read:conversation_scorecards:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` Conversation scorecards returned.
Content-Type: application/json
All of:
-
scorecardsarray— The scorecards of the conversation.Items:
-
average_scorenumber— The average score for this scorecard. -
rate_timestring, format:date-time— The time at which the scorecard was rated. -
raterobject— User information of the person who rates this scorecard.-
display_namestring— Name of the person who rates the scorecard. -
emailstring— Email address of person who rates the scorecard. -
user_idstring— The unique identifier for the user.
-
-
scorecard_descriptionstring— The scorecard's description. -
scorecard_idstring— The scorecard's ID. -
scorecard_namestring— The scorecard's name. -
scorecard_questionsarray— Questions in the scorecardItems:
-
answerstring— The selected answer. -
justificationstring— The user's reasoning or explanation for their score selection. -
question_commentstring— The question's comment. -
question_descriptionstring— The question's description. -
question_idstring— The question's ID. -
question_titlestring— The question title -
scaleobject— The scale information for this question.-
max_score_labelstring— The highest score. -
min_score_labelstring— The lowest score.
-
-
scorenumber— The user's score for the question.
-
-
-
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call.
Example:
{
"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": "[email protected]",
"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` <br> Bad Request Bad request **Error Code:** `1001` <br> Invalid request param <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Conversation does not exist: {$conversationId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_conversation:write:admin,iq_conversation:write
Granular Scopes: zra:update:conversation_host,zra:update:conversation_host:admin
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
new_host_idstring— The user ID or email address of the host.
Example:
{
"new_host_id": "IGTRVt3gQ2i-WjoUIjeZxw"
}
Responses
Status: 204 **HTTP Status Code:** `204` Conversation updated.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1006` <br> User has no IQ license. <br> <br> **Error Code:** `300` <br> Missing field: {field} <br> <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> User does not exist.<br> <br> <br> **Error Code:** `2001` <br> Conversation does not exist: {conversationId}.<br> <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> 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,.wmvorH.264. -
Supported transcript and file attachment format:
.json. ThefileNamemust end withtranscript.json. -
Supported metadata and file attachment format:
.json. The fileName must end withmetadata.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, this API can only be used on behalf of a user who is assigned with a role with Edit permission for All Conversations.
Scopes: iq_conversation:write:admin,iq_conversation:write
Granular Scopes: 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_idstring— The main file's unique ID. Use this field to upload a attachment file. -
sourcenumber— 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:
{
"file": "",
"main_file_id": "xBvggqyjQUal6TecwMlYwQ",
"source": 1
}
Responses
Status: 201 **HTTP Status Code:** `201` File successfully uploaded.
Content-Type: application/json
-
file_idstring— The IQ file's unique ID.
Example:
{
"file_id": "xBvggqyjQUal6TecwMlYwE"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `124` <br> Invalid access token. <br> <br> **Error Code:** `200` <br> 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. <br> <br> **Error Code:** `300` <br> Invalid File type. <br> Maximum file size exceeded: ${maxSize}. <br> <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> File ID does not exist: {$fileId}.<br> <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> 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,.wmvorH.264format. - Transcript can be in
.vtt,.jsonformat. - 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, this API can only be used on behalf of a user who is assigned with a role that has the Edit permission for All Conversations.
Scopes: iq_conversation:write:admin,iq_conversation:write
Granular Scopes: 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:
{
"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_etagobject— The part number etag, Collect and bring it back in the final request to complete the multipart upload request.-
etagstring— The etag of the part being uploaded. -
part_numberinteger— the part number of the part being uploaded.
-
Example:
{
"part_number_etag": {
"part_number": 1,
"etag": "etag1"
}
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `124` <br> Invalid access token. <br> <br> **Error Code:** `200` <br> 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. <br> <br> **Error Code:** `300` <br> Invalid File type. <br>Part number exceeded: ${maxSize}. <br>Maximum file size exceeded: ${maxSize}.<br>Each part must be at least 5 MB in size, except the last part. <br> <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Upload context {upload_context} not exist.<br> <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> 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, this API can only be used on behalf of a user who is assigned with a role with Edit permission for All Conversations.
Scopes: iq_conversation:write:admin,iq_conversation:write
Granular Scopes: 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. -
paramsobject— The CompleteMultipartUpload parameters.-
file_namestring— The iq file's name. If you pass the `CreateMultipartUpload` value for the `method` field. -
main_file_idstring— 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_etagsarray— The part number etags being uploaded. Use this field if you pass the `CompleteMultipartUpload` value for the `method` field.Items:
-
etagstring— The etag of the part being uploaded. -
part_numberinteger— the part number of the part being uploaded.
-
-
upload_contextstring— 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:
{
"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_idstring— The iq file's unique ID. Return this field if you pass the `CompleteMultipartUpload` value for the `method` field. -
upload_contextstring— 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:
{
"upload_context": "noNpr2pkBEv4_fTxYWDEHBsSs3pl8keRx4fPZmnyNDe.SPdodJp.3UZDaCI2xRVzkRh0xeEV6RuOrXZpJQBPutWCS424c2YnHVxVh8b9.4DNwd4VErRuD98jeJBwRCgz6rC3I4NQg5zXAtCqPFoC0g--",
"file_id": "xBvggqyjQUal6TecwMlYwQ"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `124` <br> Invalid access token. <br> <br> **Error Code:** `200` <br> 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. <br> <br> **Error Code:** `300` <br> Invalid part number etags. <br> <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Upload context {upload_context} not exist.<br>File ID does not exist: {$fileId}. <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_conversation:write:admin,iq_conversation:write
Granular Scopes: zra:write:conversation,zra:write:conversation:admin
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
meeting_uuidstring— The Meeting ID. Each meeting instance generates its own meeting UUID. -
recording_linkstring— The meeting record url. It could be share_url or play_url.
Example:
{
"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_uuidstring— The Meeting ID. Each meeting instance generates its own meeting UUID.
Example:
{
"meeting_uuid": "egLSRuj2SlWet+wLi87LNA=="
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `3300` <br> Failed to add the recording, please try again.<br> <br> **Error Code:** `5333` <br> `3318`<br> This is an invalid link. <br> <br> **Error Code:** `3318` <br> This is an invalid link. <br> <br> **Error Code:** `3318` <br> This is an invalid link. <br> <br> **Error Code:** `3320` <br> You cannot add recording with CMK encryption. <br> <br> **Error Code:** `3319` <br> This recording is already added. <br> <br> **Error Code:** `3315` <br> This recording is already under processing analysis.<br> <br> **Error Code:** `3314` <br> The recording must have been made after {0}.<br> <br> **Error Code:** `3317` <br> User has no IQ license. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `3313` <br> User {$userId} is not the host of recording. <br> <br> **Error Code:** `1004` <br> no permission to operate. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> User ID does not exist: {$userId}. <br> <br> **Error Code:** `3316` <br> Meeting ID does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_playlist:read:admin,iq_playlist:read
Granular Scopes: zra:read:list_conversation_playlists,zra:read:list_conversation_playlists
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` Successfully listed a user's playlist.
Content-Type: application/json
All of:
-
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call.
-
playlistsarrayItems:
-
created_bystring— The create user's name. -
followingboolean— Following plalist -
modified_timestring, format:date-time— The time the playlist was modified. -
number_of_conversationsinteger— The number of conversations in a playlist. -
playlist_idstring— The Playlist ID. Each playlist will generate its own playlist UUID. -
playlist_namestring— The name of the playlist. -
typestring— The type of the playlist
-
Example:
{
"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` <br> Bad Request Bad request **Error Code:** `1001` <br> Invalid request param <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1001` <br> User ID does not exist: {$userId} <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_crm:read:admin
Granular Scopes: zra:read:crm_account:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 Account objects retrieved.
Content-Type: application/json
-
dataarray— 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_revenuenumber, format:double— Annual revenue. -
create_timestring, format:date-time— Creation time in ISO-8601 format, such as 2025-11-20T12:00:00Z`. -
domainstring— Domain name of customer account. -
employeesinteger— Employees count. -
industrystring— Industry type of CRM customer account. -
owner_emailstring, format:email— Owner's email address. -
phonestring— Phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
typestring— Type of CRM customer account. -
zra_account_idstring— Zoom Revenue Accelerator's internal ID for the CRM account object.
-
Example:
{
"data": [
{
"zra_account_id": "OPENAPIaCLhU8cQR4qfdTSvT4stxA006aa00000JkrQiiAx",
"crm_account_id": "006aa00000JkrQiiAx",
"owner_email": "[email protected]",
"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` <br> Bad Request Too many IDs to query.
Status: 409 **HTTP Status Code:** `409` <br> Conflict Not connected to CRM API.
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_crm:write
Granular Scopes: zra:write:crm_accounts:admin
Rate Limit Label: 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_revenuenumber, format:double— Annual revenue. -
create_timestring, format:date-time— Creation time in ISO-8601 format, such as 2025-11-20T12:00:00Z`. -
deletionboolean— 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. -
domainstring— Domain name of customer account. -
employeesinteger— Employees count. -
industrystring— Industry type of CRM customer account. -
owner_emailstring, format:email— Owner's email address. -
phonestring— Phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
typestring— Type of CRM customer account.
-
Example:
{
"data": [
{
"crm_account_id": "006aa00000JkrQiiAx",
"deletion": false,
"owner_email": "[email protected]",
"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_idstring— Async task ID used to query the execution status.
Example:
{
"task_id": "HlqrLAsuS4OrbY8ablyOvg"
}
Status: 409 **HTTP Status Code:** `409` <br> Conflict Not connected to CRM API.
Status: 413 **HTTP Status Code:** `413` <br> Payload Too Large Too many import items.
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_crm:read:admin
Granular Scopes: zra:read:crm_contact:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 Contacts retrieved.
Content-Type: application/json
-
dataarray— 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_emailstring, format:email— Contact email address. -
create_timestring, format:date-time— Creation time in ISO-8601 format, such as `2025-11-20T12:00:00Z`. -
crm_account_idstring— CRM account ID reference. -
departmentstring— Department. -
home_phonestring— Home phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
job_titlestring— Job title. -
mobile_phonestring— Mobile phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
other_phonestring— Other phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
owner_emailstring, format:email— Owner's email address. -
phonestring— Phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
zra_contact_idstring— Zoom Revenue Accelerator's internal ID for the CRM contact object.
-
Example:
{
"data": [
{
"zra_contact_id": "OPENAPIaCLhU8cQR4qfdTSvT4stxA006aa00000LmrAxiRj",
"crm_contact_id": "006aa00000LmrAxiRj",
"owner_email": "[email protected]",
"crm_account_id": "006aa00000JkrQiiAx",
"contact_name": "Jill Chill",
"contact_email": "[email protected]",
"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` <br> Bad Request Too many IDs to query.
Status: 409 **HTTP Status Code:** `409` <br> Conflict Not connected to CRM API.
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_crm:write:admin
Granular Scopes: zra:write:crm_contact:admin
Rate Limit Label: 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_emailstring, format:email— Contact email address. -
create_timestring, format:date-time— Creation time in ISO-8601 format, such as `2025-11-20T12:00:00Z`. -
crm_account_idstring— CRM account ID reference. -
deletionboolean— 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. -
departmentstring— Department. -
home_phonestring— Home phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
job_titlestring— Job title. -
mobile_phonestring— Mobile phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
other_phonestring— Other phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
owner_emailstring, format:email— Owner's email address. -
phonestring— Phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.
-
Example:
{
"data": [
{
"crm_contact_id": "006aa00000LmrAxiRj",
"deletion": false,
"owner_email": "[email protected]",
"crm_account_id": "006aa00000JkrQiiAx",
"contact_name": "Jill Chill",
"contact_email": "[email protected]",
"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_idstring— Async task ID used to query the execution status.
Example:
{
"task_id": "HlqrLAsuS4OrbY8ablyOvg"
}
Status: 409 **HTTP Status Code:** `409` <br> Conflict Not connected to CRM API.
Status: 413 **HTTP Status Code:** `413` <br> Payload Too Large Too many import items.
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_crm:read:admin
Granular Scopes: zra:read:crm_deal:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 Deal objects retrieved.
Content-Type: application/json
-
dataarray— 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. -
amountnumber, format:double— Deal amount. -
close_datestring, format:date— Closing date in ISO-8601 format, such as `2025-11-20`. -
contactsarray— List of references to CRM contacts.Items:
-
crm_contact_id(required)string— Contact CRM ID reference. -
contact_emailstring, format:email— Contact email address. -
contact_namestring— Contact name. -
home_phonestring— Contact home phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
mobile_phonestring— Contact mobile phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
other_phonestring— Contact other phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
phonestring— Contact phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.
-
-
create_timestring, format:date-time— Creation time in ISO-8601 format, such as `2025-11-20T12:00:00Z`. -
descriptionstring— Description. -
forecast_categorystring— Forecast category of deal. -
is_privateboolean— Whether a deal is private. -
next_stepstring— Next step. -
probabilitynumber, format:double— Percentage of deal probability. -
stage_modify_timestring, format:date-time— Stage modification time in ISO-8601 format, such as `2025-11-20T12:00:00Z`. -
team_member_emailsarray— List of deal team members' email addresses.Items:
string, format:email— The deal team member's email address. -
zra_deal_idstring— Zoom Revenue Accelerator's internal ID for the CRM deal object.
-
Example:
{
"data": [
{
"zra_deal_id": "OPENAPIaCLhU8cQR4qfdTSvT4stxA006aa00000Lprxpjxx",
"crm_deal_id": "006aa00000Lprxpjxx",
"owner_email": "[email protected]",
"crm_account_id": "006aa00000JkrQiiAx",
"team_member_emails": [
"[email protected]"
],
"contacts": [
{
"crm_contact_id": "006aa00000LmrAxiRj",
"contact_name": "Jill Chill",
"contact_email": "[email protected]",
"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` <br> Bad Request Too many IDs to query.
Status: 409 **HTTP Status Code:** `409` <br> Conflict Not connected to CRM API.
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_crm:write:admin
Granular Scopes: zra:write:crm_deal:admin
Rate Limit Label: 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. -
amountnumber, format:double— Deal amount. -
close_datestring, format:date— Close date in ISO-8601 format, such as `2025-11-20`. -
contactsarray— List of references to CRM contacts.Items:
-
crm_contact_id(required)string— Contact CRM ID reference. -
contact_emailstring, format:email— Contact email address. -
contact_namestring— Contact name. -
home_phonestring— Contact home phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
mobile_phonestring— Contact mobile phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
other_phonestring— Contact other phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
phonestring— Contact phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.
-
-
create_timestring, format:date-time— Creation time in ISO-8601 format, such as `2025-11-20T12:00:00Z`. -
deletionboolean— 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. -
descriptionstring— Description. -
forecast_categorystring— Forecast category of deal. -
is_privateboolean— Whether the deal is private. -
next_stepstring— Next step. -
probabilitynumber, format:double— Percentage of deal probability. -
stage_modify_timestring, format:date-time— Stage modification time in ISO-8601 format, such as `2025-11-20T12:00:00Z`. -
team_member_emailsarray— List of deal team members' email addresses.Items:
string, format:email— Email address of deal team member.
-
Example:
{
"data": [
{
"crm_deal_id": "006aa00000Lprxpjxx",
"deletion": false,
"owner_email": "[email protected]",
"crm_account_id": "006aa00000JkrQiiAx",
"team_member_emails": [
"[email protected]"
],
"contacts": [
{
"crm_contact_id": "006aa00000LmrAxiRj",
"contact_name": "Jill Chill",
"contact_email": "[email protected]",
"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_idstring— Async task ID used to query the execution status.
Example:
{
"task_id": "HlqrLAsuS4OrbY8ablyOvg"
}
Status: 409 **HTTP Status Code:** `409` <br> Conflict Not connected to CRM API.
Status: 413 **HTTP Status Code:** `413` <br> Payload Too Large Too many import items.
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_crm:read:admin
Granular Scopes: zra:read:crm_lead:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 Lead objects retrieved.
Content-Type: application/json
-
dataarray— 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`. -
companystring— Company of lead. -
create_timestring, format:date-time— Creation time in ISO-8601 format, such as `2025-11-20T12:00:00Z`. -
home_phonestring— Home phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
job_titlestring— Job title. -
lead_emailstring, format:email— Email address. -
mobile_phonestring— Mobile phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
other_phonestring— Other phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
owner_emailstring, format:email— Owner's email address. -
phonestring— Phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
zra_lead_idstring— Zoom Revenue Accelerator's internal ID for the CRM lead object.
-
Example:
{
"data": [
{
"zra_lead_id": "OPENAPIaCLhU8cQR4qfdTSvT4stxA006aj00000LprxRjAx",
"crm_lead_id": "006aj00000LprxRjAx",
"owner_email": "[email protected]",
"lead_name": "Jill Chill",
"lead_email": "[email protected]",
"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` <br> Bad Request Too many IDs to query.
Status: 409 **HTTP Status Code:** `409` <br> Conflict Not connected to CRM API.
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_crm:write:admin
Granular Scopes: zra:write:crm_lead:admin
Rate Limit Label: 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`. -
companystring— Company of lead. -
create_timestring, format:date-time— Creation time in ISO-8601 format, such as `2025-11-20T12:00:00Z`. -
deletionboolean— 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_phonestring— Home phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
job_titlestring— Job title. -
lead_emailstring, format:email— Email address. -
mobile_phonestring— Mobile phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
other_phonestring— Other phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted. -
owner_emailstring, format:email— Owner's email address. -
phonestring— Phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.
-
Example:
{
"data": [
{
"crm_lead_id": "006aj00000LprxRjAx",
"deletion": false,
"owner_email": "[email protected]",
"lead_name": "Jill Chill",
"lead_email": "[email protected]",
"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_idstring— Async task ID used to query the execution status.
Example:
{
"task_id": "HlqrLAsuS4OrbY8ablyOvg"
}
Status: 409 **HTTP Status Code:** `409` <br> Conflict Not connected to CRM API.
Status: 413 **HTTP Status Code:** `413` <br> Payload Too Large Too many import items.
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_crm:read:admin
Granular Scopes: zra:read:crm_registration:admin
Rate Limit Label: 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_typestring, possible values:"OPEN", "CLOSED_WON", "CLOSED_LOST", default:"OPEN"— Deal stage type.
-
-
create_timestring, format:date-time— Date and time created in ISO-8601 format, such as `2025-11-20T12:00:00Z`. -
crm_namestring— The CRM type's display name. Default is CRM type. -
currency_typestring, default:"USD"— Currency type unit name, such as USD, JPY, EUR. Default is USD. -
modify_timestring, format:date-time— Date and time modified in ISO-8601 format, such as `2025-11-20T12:00:00Z`. -
url_pattern_accountstring— 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_contactstring— 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_dealstring— 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_leadstring— URL pattern to open a CRM lead object in browser. The placeholder `{id}` will be replaced with the actual CRM lead object ID.
Example:
{
"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` <br> Not Found Not connected to a CRM API.
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_crm:write:admin
Granular Scopes: zra:write:crm_registration:admin
Rate Limit Label: 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_typestring, possible values:"OPEN", "CLOSED_WON", "CLOSED_LOST", default:"OPEN"— Deal stage type.
-
-
crm_namestring— Display name of the CRM type, default to use CRM type. -
currency_typestring, default:"USD"— Currency type unit name, such as USD, JPY, EUR, and others. The default is USD. -
url_pattern_accountstring— 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_contactstring— 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_dealstring— 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_leadstring— 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:
{
"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_typestring, possible values:"OPEN", "CLOSED_WON", "CLOSED_LOST", default:"OPEN"— Deal stage type.
-
-
create_timestring, format:date-time— Create time, in ISO-8601 format, such as `2025-11-20T12:00:00Z`. -
crm_namestring— Display name of the CRM type. The default is to use CRM type. -
currency_typestring, default:"USD"— Currency type unit name, such as USD, JPY, EUR, and others. The default is USD. -
modify_timestring, format:date-time— Modify time in ISO-8601 format, such as `2025-11-20T12:00:00Z`. -
url_pattern_accountstring— 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_contactstring— 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_dealstring— 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_leadstring— 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:
{
"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` <br> Bad Request Bad CRM registration information
Status: 409 **HTTP Status Code:** `409` <br> Conflict Already connected to a CRM or CRM API.
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_crm:write:admin
Granular Scopes: zra:delete:crm_registration:admin
Rate Limit Label: HEAVY
Responses
Status: 204 CRM API unregistered.
Status: 404 **HTTP Status Code:** `404` <br> Not Found Not connected to a CRM API.
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_crm:read:admin
Granular Scopes: zra:read:crm_task:admin
Rate Limit Label: LIGHT
Responses
Status: 200 The current execution result for the given task ID, along with error details.
Content-Type: application/json
-
create_timestring, format:date-time— Date and time task created, in ISO-8601 format (e.g., 2025-11-20T12:00:00Z). -
end_timestring, format:date-time— Date and time task ended, in ISO-8601 format (e.g., 2025-11-20T12:00:00Z). -
errorsarray— A list of error details, available only when the task has completed successfully or failed.Items:
-
detailstring— Error detail information. -
record_idstring— CRM record ID that failed. -
record_indexinteger— Index number of the CRM record that failed.
-
-
failed_countinteger— Failed count of records. -
modify_timestring, format:date-time— Date and time task modified, in ISO-8601 format (e.g., 2025-11-20T12:00:00Z). -
start_timestring, format:date-time— Date and time task started, in ISO-8601 format (e.g., 2025-11-20T12:00:00Z). -
success_countinteger— Success count of records. -
task_idstring— Task ID. -
task_statusstring, possible values:"PENDING", "RUNNING", "SUCCESS", "FAILED"— Task status. -
task_typestring, possible values:"IMPORT_DEALS", "IMPORT_ACCOUNTS", "IMPORT_CONTACTS", "IMPORT_LEADS"— Task type. -
total_countinteger— Total count of records.
Example:
{
"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` <br> Not Found Async task not found or expired.
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_deal:read,iq_deal:read:admin,iq_deal:write,iq_deal:write:admin
Granular Scopes: zra:read:list_deals,zra:read:list_deals:admin
Rate Limit Label: MEDIUM
Responses
Status: 200
Content-Type: application/json
All of:
-
fromstring— The start date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format. -
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call. -
tostring— The end date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.
-
dealsarray— The Zoom specific dealsItems:
-
account_namestring— The customer CRM account name of the deal. -
account_typestring— The customer CRM account type of the deal. -
close_datestring— The close date of the deal. -
create_timestring, format:date-time— The time at which the deal was created. -
currency_typestring— The currency of the deal. -
deal_amountinteger— The amount of the deal. -
deal_descriptionstring— The deal description. -
deal_idstring— The Zoom specific deal ID. -
deal_is_closedboolean— Whether the deal is closed. -
deal_is_privateboolean— Determine whether deal is public or private. -
deal_namestring— The deal name. -
deal_stagestring— The current stage of the deal. -
last_activity_timestring, format:date-time— The time at which the deal's last activity added. -
number_of_conversationsinteger— The number of conversations in deal. -
owner_emailstring— The email of the deal owner. -
owner_idstring— The Zoom specific user ID of the deal owner. -
owner_namestring— The name of the deal owner. -
time_in_stageinteger— The number days in current stage.
-
Example:
{
"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": "[email protected]",
"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` <br> Bad Request **Error Code:** `1001` <br> The from or to time is invalid. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Team does not exist: {$teamId} <br> Owner does not exist: {ownerId} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_deal:read,iq_deal:read:admin,iq_deal:write,iq_deal:write:admin
Granular Scopes: zra:read:deal,zra:read:deal:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 Get deal information
Content-Type: application/json
All of:
-
account_namestring— The customer CRM account name of the deal. -
account_typestring— The customer CRM account type of the deal. -
close_datestring— The close date of the deal. -
contactsarray— The contacts of the deal.Items:
string— The name of the contact. -
create_timestring, format:date-time— The time at which the deal was created. -
currency_typestring— The currency of the deal. -
deal_amountinteger— The amount of the deal. -
deal_descriptionstring— The deal description. -
deal_idstring— The Zoom specific deal ID. -
deal_is_closedboolean— Whether the deal is closed. -
deal_is_privateboolean— Determine whether deal is public or private. -
deal_namestring— The deal name. -
deal_stagestring— The current stage of the deal. -
last_activity_timestring, format:date-time— The time at which the deal's last activity added. -
number_of_conversationsinteger— The number of conversations in deal. -
owner_emailstring— The email of the deal owner. -
owner_idstring— The Zoom specific user ID of the deal owner. -
owner_namestring— The name of the deal owner. -
time_in_stageinteger— The number days in current stage.
Example:
{
"deal_id": "0065g00000DgD2QAAV",
"deal_name": "Maximize profits",
"deal_stage": "Needs Analysis",
"deal_description": "Maximize profits",
"owner_name": "John Wick",
"owner_email": "[email protected]",
"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` <br> Not Found **Error Code:** `1005` <br> Deal does not exist: {dealId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_deal:read,iq_deal:read:admin,iq_deal:write,iq_deal:write:admin
Granular Scopes: zra:read:list_deal_activities,zra:read:list_deal_activities:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 Get deal activities
Content-Type: application/json
All of:
-
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call.
-
activitiesarrayItems:
-
activity_typestring— The activity type. -
conversation_idstring— The conversation ID. -
conversation_topicstring— The conversation topic. -
deal_stagestring— The current stage of the deal. -
directionstring— The direction of the activity. -
durationinteger— The duration of the activity. -
engagement_scoreinteger— The engagement score. -
host_idstring— The meeting host's user ID. -
message_idsstring— The message ID -
number_of_message_in_threadinteger— The number of messages in thread. -
processing_analysisboolean— Whether the conversation is in processing analysis. -
sentiment_scoreinteger— The sentiment score. -
stage_during_conversationstring— The stage of the deal when the conversation occurred -
start_datestring— The activity start date.
-
Example:
{
"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` <br> Not Found **Error Code:** `1005` <br> Deal does not exist: {dealId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_deal:write:admin,iq_deal:write
Granular Scopes: zra:delete:deal_activity,zra:delete:deal_activity:admin
Rate Limit Label: MEDIUM
Responses
Status: 204 No Content
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Deal does not exist: {dealId}. <br> **Error Code:** `1005` <br> Activity does not exists: {id}. <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_deal:read,iq_deal:read:admin,iq_deal:write,iq_deal:write:admin
Granular Scopes: zra:read:list_deals,zra:read:list_deals:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 get deal lists
Content-Type: application/json
All of:
-
fromstring— The start date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format. -
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call. -
tostring— The end date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.
-
dealsarray— The Zoom specific dealsItems:
-
account_namestring— The customer CRM account name of the deal. -
account_typestring— The customer CRM account type of the deal. -
close_datestring— The close date of the deal. -
create_timestring, format:date-time— The time at which the deal was created. -
currency_typestring— The currency of the deal. -
customer_account_idstring— The customer's CRM account ID of the deal. -
customer_contactarray— The deal's customer contact information.Items:
-
customer_contact_idstring— The customer contact ID. -
customer_contact_namestring— The customer contact name.
-
-
deal_amountinteger— The amount of the deal. -
deal_descriptionstring— The deal description. -
deal_idstring— The Zoom specific deal ID. -
deal_is_closedboolean— Whether the deal is closed. -
deal_is_privateboolean— Determine whether deal is public or private. -
deal_namestring— The deal name. -
deal_retrospectivestring— The AI-generated deal retrospective. This is only available for closed deals. -
deal_stagestring— The current stage of the deal. -
last_activity_timestring, format:date-time— The time at which the deal's last activity added. -
number_of_conversationsinteger— The number of conversations in deal. -
owner_emailstring— The email of the deal owner. -
owner_idstring— The Zoom specific user ID of the deal owner. -
owner_namestring— The name of the deal owner. -
time_in_stageinteger— The number days in current stage.
-
Example:
{
"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": "[email protected]",
"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` <br> Bad Request **Error Code:** `1001` <br> The from or to time is invalid. <br> <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Team does not exist: {$teamId} <br> Owner does not exist: {ownerId} <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_deal:read,iq_deal:read:admin,iq_deal:write,iq_deal:write:admin
Granular Scopes: zra:read:deal,zra:read:deal:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 Get deal information
Content-Type: application/json
All of:
-
account_namestring— The customer CRM account name of the deal. -
account_typestring— The customer CRM account type of the deal. -
close_datestring— The close date of the deal. -
contactsarray— The contacts of the deal.Items:
string— The name of the contact. -
create_timestring, format:date-time— The time at which the deal was created. -
currency_typestring— The currency of the deal. -
customer_account_idstring— The customer's CRM account ID of the deal. -
customer_contactarray— The deal's customer contact information.Items:
-
customer_contact_idstring— The customer contact's ID. -
customer_contact_namestring— The customer contact's name.
-
-
deal_amountinteger— The amount of the deal. -
deal_descriptionstring— The deal description. -
deal_idstring— The Zoom specific deal ID. -
deal_is_closedboolean— Whether the deal is closed. -
deal_is_privateboolean— Determine whether deal is public or private. -
deal_namestring— The deal name. -
deal_retrospectivestring— The AI-generated deal retrospective. This is only available for closed deals. -
deal_stagestring— The current stage of the deal. -
last_activity_timestring, format:date-time— The time at which the deal's last activity added. -
number_of_conversationsinteger— The number of conversations in deal. -
owner_emailstring— The email of the deal owner. -
owner_idstring— The Zoom specific user ID of the deal owner. -
owner_namestring— The name of the deal owner. -
time_in_stageinteger— The number days in current stage.
Example:
{
"deal_id": "0065g00000DgD2QAAV",
"deal_name": "Maximize profits",
"deal_stage": "Needs Analysis",
"deal_description": "Maximize profits",
"owner_name": "John Wick",
"owner_email": "[email protected]",
"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` <br> Bad Request Bad request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `1004` <br> You don't have the permission. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Deal does not exist: {dealId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_deal:read,iq_deal:read:admin,iq_deal:write,iq_deal:write:admin
Granular Scopes: zra:read:list_deal_activities,zra:read:list_deal_activities:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 Get deal activities
Content-Type: application/json
All of:
-
next_page_tokenstring— 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_sizeinteger, default:30— The number of records returned in a single API call.
-
activitiesarray— All activities associated with the deal.Items:
-
activity_typestring— The activity type. -
conversation_idstring— The conversation ID. -
conversation_topicstring— The conversation topic. -
deal_stagestring— The current stage of the deal. -
directionstring— The direction of the activity. -
durationinteger— The duration of the activity. -
engagement_scoreinteger— The engagement score. -
host_idstring— The meeting host's user ID. -
message_idsstring— The message ID -
next_stepsarray— The next steps extracted from linked conversations.Items:
string— A single extracted next-step item. -
number_of_message_in_threadinteger— The number of messages in thread. -
processing_analysisboolean— Whether the conversation is in processing analysis. -
sentiment_scoreinteger— The sentiment score. -
stage_during_conversationstring— The stage of the deal when the conversation occurred -
start_datestring— The activity start date. -
summarystring— The conversation summary.
-
Example:
{
"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` <br> Bad Request Bad request **Error Code:** `1001` <br> Invalid request param <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Deal does not exist: {dealId}. <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_deal:write,iq_deal:write:admin
Granular Scopes: zra:delete:deal_activity,zra:delete:deal_activity:admin
Rate Limit Label: MEDIUM
Responses
Status: 204 No Content
Status: 400 **HTTP Status Code:** `400` <br> Bad Request Bad request **Error Code:** `1001` <br> invalid request param <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `1005` <br> Deal does not exist: {dealId}. <br> <br> **Error Code:** `1005` <br> Activity does not exists: {id}. <br> <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_conversation:read:admin,iq_conversation:read,iq_conversation:write,iq_conversation:write:admin
Granular Scopes: zra:read:list_conversations,zra:read:list_conversations:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` All authorized scheduled meetings returned.
Content-Type: application/json
All of:
-
fromstring— The start date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format. -
next_page_tokenstring— 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_sizeinteger— The number of records returned in a single API call. -
tostring— The end date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.
-
meetingsarray— result arrayItems:
-
event_idstring— uuid of this scheduled meeting -
externalboolean— this meeting is external or internal -
host_idstring— the host of this meeting, if the meeting is external or can not get host id will be null -
meeting_platformstring, possible values:"zoom", "microsoft_teams", "google_meet"— zoom meeting -
schedule_timestring— when this meeting was scheduled -
start_timestring— The meeting start time you set when you schedule this event. -
topicstring— the topic of this scheduled meeting -
user_idstring— this user's schedule meeting
-
Example:
{
"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` <br> Bad Request **Error Code:** `1001` <br> User does not exist: {$userId} meeting platform dose not exist: {$meetingPlatForm} <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:read:admin,iq_team:read
Rate Limit Label: MEDIUM
Responses
Status: 200 get team list
Content-Type: application/json
-
next_page_tokenstring— 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_sizeinteger— The number of records returned in a single API call. -
teamsarrayItems:
-
name(required)string— team name -
team_id(required)string— UUID of team -
descriptionstring— team description -
leafboolean— If this flag is true, it means this team has no child teams. -
member_sizeinteger— team member size -
parent_teamsarray— 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:
-
namestring— team name -
team_idstring— UUID of team
-
-
supervisor_sizeinteger— team admin size -
typestring, possible values:"flat team", "hierarchical team"— the structure type of team
-
Example:
{
"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` <br> Bad Request **Error Code:** `300` <br> The next page token is invalid or expired. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access is denied <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `0` <br> 404 Route Not Found <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:write:admin
Granular Scopes: zra:write:team:admin
Rate Limit Label: HEAVY
Request Body
Content-Type: application/json
-
team_name(required)string— The name of new team. -
parent_team_idstring— 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:
{
"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:
{
"added_at": "yyyy-MM-dd'T'HH:mm:ss'Z'",
"added_team_id": "Ikl0Wx89Tx-2XBoYVz53BQ"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `5002` <br> Require team name. <br> **Error Code:** `5005` <br> Exceed the maximum size of account available teams. <br> **Error Code:** `5005` <br> Exceed 10 tiers limit! <br> **Error Code:** `5005` <br> Exceed 100 children team limit! <br> **Error Code:** `5004` <br> Other admins are editing team structure, please wait. <br> **Error Code:** `5009` <br> Add team failed. <br> **Error Code:** `5006` <br> Team name has already been used. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access is denied. <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:read:admin
Granular Scopes: zra:read:unassigned_team_users:admin
Rate Limit Label: HEAVY
Responses
Status: 200 Unassgined team zra users info
Content-Type: application/json
-
next_page_tokenstring— 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_sizeinteger— The number of records returned in a single API call. -
unassigned_usersarrayItems:
-
emailstring— User email -
first_namestring— User first name -
last_namestring— User last name -
user_idstring— User UUID
-
Example:
{
"unassigned_users": [
{
"user_id": "iL2FL0wsRbOU__OsdO-4Lg",
"email": "[email protected]",
"first_name": "Jonathan",
"last_name": "Zhang"
}
],
"next_page_token": "gPP6D7Oy6TUyGwpBBtICy03182P6nJp3yQ2",
"page_size": 30
}
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access is denied <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `0` <br> 404 Route Not Found <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:read:admin
Granular Scopes: zra:read:team:admin
Rate Limit Label: 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 -
descriptionstring— Team description. -
leafboolean— If this flag is true, it means this team has no child teams. -
manager_sizeinteger— Manager size of this team. If team type is flat, please ignore this field. -
member_sizeinteger— Member size of this team -
typestring— The structure type of team.
Example:
{
"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` <br> Bad Request **Error Code:** `5002` <br> Invalid parameters. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access is denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `5011` <br> Team not existing! <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:write:admin
Granular Scopes: zra:delete:team:admin
Rate Limit Label: HEAVY
Responses
Status: 204 Successfully delete team
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `5002` <br> Invalid parameters. <br> **Error Code:** `5006` <br> Can not delete team, because team members are not null. <br> **Error Code:** `5004` <br> Other admins are editing team structure, please wait. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access is denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `5011` <br> Team not existing! <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:write:admin
Granular Scopes: zra:update:team:admin
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
team_name(required)string— The new name of the team.
Example:
{
"team_name": "CEO office"
}
Responses
Status: 204 Update team successfully
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `5006` <br> Require team name. <br> **Error Code:** `5006` <br> Team name has already been used. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access is denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `5011` <br> Team not existing! <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:write:admin
Granular Scopes: zra:write:team:admin
Rate Limit Label: 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:
[
"kdXNAEa0Q2WQWxpOMZtTQw"
]
Responses
Status: 201 Successfully grant additional access to current team.
Content-Type: application/json
-
added_atstring— Successfully added time. And time format is `yyyy-MM-dd'T'HH:mm:ss'Z'`.
Example:
{
"added_at": "2025-06-04T15:30:00Z"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `5002` <br> Invalid parameters. <br> **Error Code:** `5007` <br> Please don't add more than 200 teams at one time. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access is denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `5011` <br> Team doesn't exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:write:admin
Granular Scopes: zra:delete:team:admin
Rate Limit Label: MEDIUM
Not supported in Gov cluster
Responses
Status: 204 Removed additional access from current team successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `5002` <br> Invalid parameters. <br> **Error Code:** `5008` <br> Don't delete more than the limited number of supervisors at one time. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access is denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `5011` <br> Team does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:write:admin
Granular Scopes: zra:write:team:admin
Rate Limit Label: 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:
[
"kdXNAEa0Q2WQWxpOMZtTQw"
]
Responses
Status: 201 Grant additional access to target teams successfully
Content-Type: application/json
-
added_atstring— Successfully added time. And time format is yyyy-MM-dd'T'HH:mm:ss'Z'
Example:
{
"added_at": "2025-06-04T15:30:00Z"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `5002` <br> Invalid parameters. <br> **Error Code:** `5007` <br> Don't add more than 200 teams at one time. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `5011` <br> Team doesn't exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:write:admin
Granular Scopes: zra:delete:team:admin
Rate Limit Label: MEDIUM
Not supported in Gov cluster
Responses
Status: 204 Removed additional access from target teams successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `5002` <br> Invalid parameters. <br> **Error Code:** `5008` <br> Don't delete more than the limited number of supervisors at one time. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `5011` <br> Team does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:write:admin
Granular Scopes: zra:update:team:admin
Rate Limit Label: HEAVY
Request Body
Content-Type: application/json
-
new_parent_team_id(required)string— The new parent team ID.
Example:
{
"new_parent_team_id": "kdXNAEa0Q2WQWxpOMZtTQw"
}
Responses
Status: 204 Move team successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `5002` <br> Invalid parameters. <br> **Error Code:** `5004` <br> Other admins are editing team structure, please wait. <br> **Error Code:** `5006` <br> Can not delete team, because team members are not null. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access is denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `5011` <br> Team not existing! <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:read:admin
Granular Scopes: zra:read:team_managers:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 managers info and page token(optional)
Content-Type: application/json
-
managersarray— managers info listItems:
-
emailstring— User email -
first_namestring— User first name -
last_namestring— User last name -
user_idstring— User UUID
-
-
next_page_tokenstring— 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_sizestring— The number of records returned in a single API call.
Example:
{
"managers": [
{
"user_id": "iL2FL0wsRbOU__OsdO-4Lg",
"email": "[email protected]",
"first_name": "Jonathan",
"last_name": "Zhang"
}
],
"next_page_token": "gPP6D7Oy6TUyGwpBBtICy03182P6nJp3yQ2",
"page_size": "30"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> The next page token is invalid or expired. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access is denied <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `0` <br> 404 Route Not Found <br> **Error Code:** `5011` <br> Team not existing! <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:write:admin
Granular Scopes: zra:write:team_manages:admin
Rate Limit Label: HEAVY
Request Body
Content-Type: application/json
Array of:
string — Zoom user Id
Example:
[
"Ikl0Wx89Tx-2XBoYVz53BQ"
]
Responses
Status: 201 Assign Team Manager Successfully
Content-Type: application/json
-
added_atstring— Successfully added time -
user_idsstring— Successfully added team manager ids
Example:
{
"added_at": "yyyy-MM-dd'T'HH:mm:ss'Z'",
"user_ids": "xrr05LIrS_e496HBfkrP2w,Ur7FSzS3QPerlRhHJvj3HA"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `5002` <br> Invalid parameters. <br> **Error Code:** `5007` <br> Please don't add more than the threshold number of supervisors at one time. <br> **Error Code:** `5006` <br> Assigning supervisor in flat team is not supported. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access is denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `5011` <br> Team not existing! <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:write:admin
Granular Scopes: zra:delete:team_managers:admin
Rate Limit Label: HEAVY
Responses
Status: 204 Delete team managers successfully
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `5002` <br> Invalid parameters. <br> **Error Code:** `5008` <br> Please don't delete more than the limited number of supervisors at one time. <br> **Error Code:** `5006` <br> Unassigning supervisor in flat team is not supported. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access is denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `5011` <br> Team not existing! <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:read:admin
Granular Scopes: zra:read:team_members:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 members info and page token
Content-Type: application/json
-
membersarray— member info listItems:
-
emailstring— User email -
first_namestring— User first name -
last_namestring— User last name -
user_idstring— User UUID
-
-
next_page_tokenstring— 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_sizeinteger— The number of records returned in a single API call.
Example:
{
"members": [
{
"user_id": "iL2FL0wsRbOU__OsdO-4Lg",
"email": "[email protected]",
"first_name": "Jonathan",
"last_name": "Zhang"
}
],
"next_page_token": "gPP6D7Oy6TUyGwpBBtICy03182P6nJp3yQ2",
"page_size": 30
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `300` <br> The next page token is invalid or expired. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access is denied <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `0` <br> 404 Route Not Found <br> **Error Code:** `5011` <br> Team not existing! <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:write:admin
Granular Scopes: zra:write:team_members:admin
Rate Limit Label: HEAVY
Request Body
Content-Type: application/json
Array of:
-
emailstring— 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_idstring— User ID. If you fill user id field, please ignore email field.
Example:
[
{
"user_id": "iL2FL0wsRbOU__OsdO-4Lg",
"email": "[email protected]"
}
]
Responses
Status: 201 Success
Content-Type: application/json
-
added_atstring— Successfully added time -
user_idsstring— Successfully added member user ids
Example:
{
"added_at": "yyyy-MM-dd'T'HH:mm:ss'Z'",
"user_ids": "useridxxx,useridyyy"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `5002` <br> Invalid parameters. <br> **Error Code:** `5007` <br> Please don't add more than 200 agents at one time. <br> **Error Code:** `5006` <br> Team not existing! <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access is denied <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `0` <br> 404 Route Not Found <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:write:admin
Granular Scopes: zra:delete:team_members:admin
Rate Limit Label: HEAVY
Responses
Status: 204 Delete Success
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `5002` <br> Invalid parameters. <br> **Error Code:** `5008` <br> Please don't delete more than 30 agents at one time. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access is denied. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `5011` <br> Team not existing! <br>
Status: 429 **HTTP Status Code:** `429` <br> 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: iq_team:read:admin,iq_team:read
Granular Scopes: zra:read:team_list:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 get team list
Content-Type: application/json
-
next_page_tokenstring— 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_sizeinteger— The number of records returned in a single API call. -
teamsarrayItems:
-
name(required)string— team name -
team_id(required)string— UUID of team -
descriptionstring— team description -
leafboolean— If this flag is true, it means this team has no child teams. -
member_sizeinteger— team member size -
parent_teamsarray— 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:
-
namestring— team name -
team_idstring— UUID of team
-
-
supervisor_sizeinteger— team admin size -
typestring, possible values:"flat team", "hierarchical team"— the structure type of team
-
Example:
{
"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
}