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_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

  • indicators

    array — The indicator settings.

    Items:

    • category_id

      string — The indicator's category id.

    • category_name

      string — The indicator's category name.

    • created_time

      string, format: date-time — The time at which the indicator was added.

    • description

      string — The indicator's description.

    • enabled

      boolean — Whether the indicator is enabled.

    • id

      string — The indicator id.

    • last_modified_time

      string, format: date-time — The time at which the indicator was last updated.

    • last_modified_user_name

      string — User name of the user that configured the latest update.

    • mentioned_by

      string, possible values: "anyone", "reps", "prospects" — Identify when Mentioned by.

    • name

      string — The indicator's name.

    • type

      string, possible values: "basic", "advanced", "guiding_sentences" — The indicator's type.

Example:

{
  "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_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

  • indicators

    array — The indicator settings.

    Items:

    • category_id

      string — The indicator's category id.

    • category_name

      string — The indicator's category name.

    • created_time

      string, format: date-time — The time at which the indicator was added.

    • description

      string — The indicator's description.

    • enabled

      boolean — Whether the indicator is enabled.

    • id

      string — The indicator id.

    • last_modified_time

      string, format: date-time — The time at which the indicator was last updated.

    • last_modified_user_name

      string — User name of the user that configured the latest update.

    • mentioned_by

      string, possible values: "anyone", "reps", "prospects" — Identify when Mentioned by.

    • name

      string — The indicator's name.

    • type

      string, possible values: "basic", "advanced", "guiding_sentences" — The indicator's type.

Example:

{
  "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_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

  • conversations

    array

    Items:

    • conversation_id

      string — The conversation ID.

    • conversation_topic

      string — The conversation topic.

    • conversation_type

      string — The conversation type.

    • deal_id

      string — The Zoom specific deal ID.

    • duration

      integer — The recording duration in minutes.

    • engagement_score

      integer — The engagement score.

    • engaging_questions_count

      integer — The count of engaging questions.

    • filler_words_count

      integer — The count of filler words per minute.

    • host_id

      string — The meeting host's user ID.

    • iq_processed_time

      string — The time IQ was processed.

    • meeting_id

      integer, format: int64 — The meeting ID also known as the meeting number in long (int64) format.

    • meeting_start_time

      string — The meeting start time.

    • meeting_uuid

      string — The Meeting ID. Each meeting instance generates its own meeting UUID.

    • next_steps_count

      integer — The count of next steps.

    • processing_analysis

      boolean — Whether the conversation is in processing analysis.

    • sentiment_score

      integer — The sentiment score.

    • topic

      string — The meeting topic.

Example:

{
  "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_topic

    string — The meeting/phone topic.

  • deal_id

    string — The Zoom deal ID.

  • download_url

    string — The third party download URL.

  • file_id

    string — The IQ file's unique ID.

  • host_id

    string — The host user ID or email address.

  • meeting_end_time

    string — The meeting end time.

  • participants

    array — A list of the participants. up to a maximum of 200 participants. For external users, only need to pass display name.

    Items:

    • display_name (required)

      string — The name of the participant.

    • email

      string — The email of the participant, if available.

  • primary_language

    string, possible values: "en", "es", "fr", "de", "it", "zh", "ru", "uk", "ja", "ko", "vi", "pt", "nl", "hi" — The primary language.

  • timeline

    array — The speech timeline, who spoke when

    Items:

    • participants (required)

      array — A list of the users.For external users, only need to pass display name.

      Items:

      • display_name (required)

        string — The name of the participant.

      • email

        string — The email of the participant, if available.

    • start_time_in_recording (required)

      string — The start time in recording.

  • timezone

    string — Time zone to format time. For a list of supported timezones and their formats, see our [timezone list](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).

Example:

{
  "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_id

    string — 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_id

    string — The conversation ID.

  • conversation_topic

    string — The conversation topic.

  • conversation_type

    string — The conversation type.

  • conversation_url

    string — The URL for easy access to conversation detail page.

  • deal

    object — The deal of the conversation.

    • close_date

      string — The close date of the deal.

    • customer_crm_account_name

      string — The customer CRM account name of the deal.

    • id

      string — The deal ID.

    • name

      string — The deal name.

    • stage

      string — The current stage of the deal.

  • duration

    integer — The recording duration in minutes.

  • engagement_score

    integer — The engagement score.

  • host_email

    string, format: email — The meeting host's email address.

  • host_id

    string — The meeting host's user ID.

  • iq_processed_time

    string — The time IQ processed.

  • meeting_id

    integer, format: int64 — The meeting ID also known as the meeting number in long (int64) format.

  • meeting_start_time

    string — The meeting start time.

  • meeting_uuid

    string — The meeting ID. Each meeting instance generates its own meeting UUID.

  • sentiment_score

    integer — The sentiment score.

  • stage_during_conversation

    string — The stage of the deal when the conversation occurred

  • start_time

    string — The meeting start time.

  • summary

    string — The conversation summary.

  • topic

    string — The meeting topic.

Example:

{
  "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_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

  • comments

    array — The comments of the conversation.

    Items:

    • comment

      string — The actual comment.

    • created_time

      string, format: date-time — The time at which the comment was added.

    • id

      string — The comment's ID in this conversation.

    • is_private

      boolean — Determine whether comment is public or private.

    • last_modified_time

      string, format: date-time — The time at which the comment was last updated.

    • mention_teams

      array — The list of teams mentioned in the comment

      Items:

      • team_id

        string — The mentioned team's ID.

      • team_name

        string — The mentioned team's name.

    • mention_users

      array — The list of the users mentioned in the comment

      Items:

      • user_id

        string — The mentioned user's ID.

      • user_name

        string — The mentioned user's name.

    • parent_comment_id

      string — The parent comment's ID in this conversation.

    • time_in_recording

      string — The time in recording which the player should advance.

    • user_email

      string — The commenter's email address.

    • user_name

      string — The commenter's user name.

Example:

{
  "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_private

    boolean — Determine whether comment is public or private.

  • mention_team_ids

    array — The list of teams mentioned in the comment

    Items:

    string — The mentioned team's ID.

  • mention_user_ids

    array — The list of the users mentioned in the comment

    Items:

    string — The mentioned user's ID.

  • parent_comment_id

    string — The parent comment's ID in this conversation.

  • time_in_recording

    string — The time in recording which the player should advance.

Example:

{
  "parent_comment_id": "34dfg301-d32b-4850-92c7-ea9f5a40fd39",
  "comment": "Nicely done!",
  "mention_user_ids": [
    "hjficvXtR42vjSABCCS32Q"
  ],
  "mention_team_ids": [
    "hjficvXtR42vjSABCCS32Q"
  ],
  "is_private": false,
  "time_in_recording": "00:00:10"
}

Responses

Status: 201 **HTTP Status Code:** `201` Successfully added comment to conversation.
Content-Type: application/json
  • comment

    string — The actual comment.

  • created_time

    string, format: date-time — The time at which the comment was added.

  • id

    string — The comment's ID in this conversation.

  • is_private

    boolean — Determine whether comment is public or private.

  • last_modified_time

    string, format: date-time — The time at which the comment was last updated.

  • mention_teams

    array — The list of teams mentioned in the comment

    Items:

    • team_id

      string — The mentioned team's ID.

    • team_name

      string — The mentioned team's name.

  • mention_users

    array — The list of the users mentioned in the comment

    Items:

    • user_id

      string — The mentioned user's ID.

    • user_name

      string — The mentioned user's name.

  • parent_comment_id

    string — The parent comment's ID in this conversation.

  • time_in_recording

    string — The time in recording which the player should advance.

  • user_email

    string — The commenter's email address.

  • user_name

    string — The commenter's user name.

Example:

{
  "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
  • comment

    string — The actual comment.

  • mention_team_ids

    array — The list of teams mentioned in the comment

    Items:

    string — The mentioned team's ID.

  • mention_user_ids

    array — The list of the users mentioned in the comment

    Items:

    string — The mentioned user's ID.

  • time_in_recording

    string — The time in recording which the player should advance.

Example:

{
  "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_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

  • analysis

    array — The analysis results.

    Items:

    • section

      array

      Items:

      • display_name

        string — The name of the user.

      • end_time

        string — The indicator end time.

      • indicator_id

        string — The indicator ID.

      • indicator_name

        string — The indicator's name.

      • key_word

        string — The keyword define in indicator.

      • label

        string — The label of the topic.

      • marked_by

        string, possible values: "nlp", "es", "the value of the user_id" — The one who marked the content. * `nlp` &mdash; Marked by NLP. * `es` &mdash; Marked by ES. * `user_id` - Manually marked by the user with this user ID.

      • start_time

        string — The indicator start time.

      • text

        string — The text content.

      • user_id

        string — The ID of the user. If the participant joins the meeting without logging in or is external user, the value of this field will be blank.

      • utterance

        string — The text's complete utterance.

  • smart_chapters

    array — The smart chapters. Only returned when `analysis_type` is `smartChapters`.

    Items:

    • category

      string — The chapter category.

    • end_time

      string — The chapter end time.

    • start_time

      string — The chapter start time.

    • summary

      string — The chapter summary.

    • title

      string — The chapter title.

  • summary

    string — The overall conversation summary. Only returned when the `analysis_type` is `smartChapters`

Example:

{
  "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_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

  • participants

    array — The speakers in the conversation.

    Items:

    • display_name

      string — The speaker's user name.

    • email

      string — The speaker's email address. If the participant joins the meeting without logging in or is external user, the value of this field will be blank.

    • metrics

      object — The metrics for the conversation.

      • filler_words

        number — The count of filler words. Unit: words/min.

      • longest_monolog

        number — The longest monologue in seconds.

      • patience

        number — The patience in seconds.

      • talk_speed

        number — The talk speed in words per minute.

      • talk_to_listen_ratio

        number — The talk-to-listen ratio.

    • speaker_type

      string, possible values: "rep", "customer" — The type of the speaker.

    • transcripts

      array

      Items:

      • end_time

        string — The speak item end time.

      • item_id

        string — The item ID.

      • start_time

        string — The speak item start time.

      • text

        string — The speech in text.

    • user_id

      string — The speaker's user ID. If the participant joins the meeting without logging in or is external user, the value of this field will be blank.

Example:

{
  "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:

  • scorecards

    array — The scorecards of the conversation.

    Items:

    • average_score

      number — The average score for this scorecard.

    • rate_time

      string, format: date-time — The time at which the scorecard was rated.

    • rater

      object — User information of the person who rates this scorecard.

      • display_name

        string — Name of the person who rates the scorecard.

      • email

        string — Email address of person who rates the scorecard.

      • user_id

        string — The unique identifier for the user.

    • scorecard_description

      string — The scorecard's description.

    • scorecard_id

      string — The scorecard's ID.

    • scorecard_name

      string — The scorecard's name.

    • scorecard_questions

      array — Questions in the scorecard

      Items:

      • question_comment

        string — The question's comment.

      • question_description

        string — The question's description.

      • question_id

        string — The question's ID.

      • question_title

        string — The question title

      • scale

        object — The scale information for this question.

        • max_score_label

          string — The highest score.

        • min_score_label

          string — The lowest score.

      • score

        number — The user's score for the question.

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

Example:

{
  "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_id

    string — 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, .wmv or H.264.

  • Supported transcript and file attachment format: .json . The fileName must end with transcript.json.

  • Supported metadata and file attachment format: .json. The fileName must end with metadata.json.

  • Required file upload sequence: main file, transcript file (if necessary), metadata file (if necessary).

  • When your object size reaches 2 GB, you should use multipart uploads instead of uploading the object in a single operation.

  • For an account-level OAuth app, 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_id

    string — The main file's unique ID. Use this field to upload a attachment file.

  • source

    number — The source of the transcript and metadata files, if this field is not provided, it defaults to a value of 1. There are two valid values for this field: * 1: Represents files sourced from 'Gong.' * 2: Represents files sourced from 'Chorus.'

Example:

{
  "file": "",
  "main_file_id": "xBvggqyjQUal6TecwMlYwQ",
  "source": 1
}

Responses

Status: 201 **HTTP Status Code:** `201` File successfully uploaded.
Content-Type: application/json
  • file_id

    string — The IQ file's unique ID.

Example:

{
  "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, .wmv or H.264 format.
  • Transcript can be in .vtt, .json format.
  • In general, when your object size reaches 2 GB, you should use multipart uploads instead of uploading the object in a single operation.
  • The caller must be a iq_listened user.
  • For an account-level OAuth app, 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_etag

    object — The part number etag, Collect and bring it back in the final request to complete the multipart upload request.

    • etag

      string — The etag of the part being uploaded.

    • part_number

      integer — the part number of the part being uploaded.

Example:

{
  "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.

  • params

    object — The CompleteMultipartUpload parameters.

    • file_name

      string — The iq file's name. If you pass the `CreateMultipartUpload` value for the `method` field.

    • main_file_id

      string — The main file's unique ID. If you pass the `CreateMultipartUpload` value for the `method` field, Use this field to upload a attachment file.

    • part_number_etags

      array — The part number etags being uploaded. Use this field if you pass the `CompleteMultipartUpload` value for the `method` field.

      Items:

      • etag

        string — The etag of the part being uploaded.

      • part_number

        integer — the part number of the part being uploaded.

    • upload_context

      string — Upload context identifying the multipart upload whose part is being uploaded. Use this field if you pass the `CompleteMultipartUpload` value for the `method` field.

Example:

{
  "method": "CreateMultipartUpload",
  "params": {
    "file_name": "file name",
    "main_file_id": "xBvggqyjQUal6TecwMlYwQ",
    "upload_context": "noNpr2pkBEv4_fTxYWDEHBsSs3pl8keRx4fPZmnyNDe.SPdodJp.3UZDaCI2xRVzkRh0xeEV6RuOrXZpJQBPutWCS424c2YnHVxVh8b9.4DNwd4VErRuD98jeJBwRCgz6rC3I4NQg5zXAtCqPFoC0g--",
    "part_number_etags": [
      {
        "part_number": 1,
        "etag": "etag1"
      }
    ]
  }
}

Responses

Status: 201 **Status Code:** `201` Successfully initiate and complete a multipart upload.
Content-Type: application/json
  • file_id

    string — The iq file's unique ID. Return this field if you pass the `CompleteMultipartUpload` value for the `method` field.

  • upload_context

    string — The upload context. Return this field if you pass the `CreateMultipartUpload` value for the `method` field. **Note:** * Use this upload context to associate all of the parts in the specific multipart upload. You specify this upload context in each of your subsequent upload part requests. You also include this upload context in the final request to complete the multipart upload request.

Example:

{
  "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_uuid

    string — The Meeting ID. Each meeting instance generates its own meeting UUID.

  • recording_link

    string — The meeting record url. It could be share_url or play_url.

Example:

{
  "recording_link": "https://zoom.us/rec/share/....",
  "meeting_uuid": "egLSRuj2SlWet+wLi87LNA=="
}

Responses

Status: 201 **HTTP Status Code:** `201` Conversation added.
Content-Type: application/json
  • meeting_uuid

    string — The Meeting ID. Each meeting instance generates its own meeting UUID.

Example:

{
  "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_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

  • playlists

    array

    Items:

    • created_by

      string — The create user's name.

    • following

      boolean — Following plalist

    • modified_time

      string, format: date-time — The time the playlist was modified.

    • number_of_conversations

      integer — The number of conversations in a playlist.

    • playlist_id

      string — The Playlist ID. Each playlist will generate its own playlist UUID.

    • playlist_name

      string — The name of the playlist.

    • type

      string — The type of the playlist

Example:

{
  "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:

  • from

    string — The start date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

  • to

    string — The end date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

  • conversations

    array

    Items:

    • conversation_id

      string — The conversation ID.

    • conversation_topic

      string — The conversation topic.

    • conversation_type

      string — The conversation type.

    • deal_id

      string — The Zoom specific deal ID.

    • duration

      integer — The recording duration in minutes.

    • duration_sec

      integer — The recording duration in seconds.

    • engagement_score

      integer — The engagement score.

    • engaging_questions_count

      integer — The count of engaging questions.

    • filler_words_count

      integer — The count of filler words per minute.

    • host_id

      string — The meeting host's user ID.

    • iq_processed_time

      string — The time IQ was processed.

    • meeting_id

      integer, format: int64 — The meeting ID also known as the meeting number in long (int64) format.

    • meeting_start_time

      string — The meeting start time.

    • meeting_uuid

      string — The Meeting ID. Each meeting instance generates its own meeting UUID.

    • next_steps_count

      integer — The count of next steps.

    • processing_analysis

      boolean — Whether the conversation is in processing analysis.

    • sentiment_score

      integer — The sentiment score.

    • topic

      string — The meeting topic.

Example:

{
  "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_topic

    string — The meeting/phone topic.

  • deal_id

    string — The Zoom deal ID.

  • download_url

    string — The third party download URL.

  • file_id

    string — The IQ file's unique ID.

  • host_id

    string — The host user ID or email address.

  • meeting_end_time

    string — The meeting end time.

  • participants

    array — A list of the participants. up to a maximum of 200 participants. For external users, only need to pass display name.

    Items:

    • display_name (required)

      string — The name of the participant.

    • email

      string — The email of the participant, if available.

  • primary_language

    string, possible values: "en", "es", "fr", "de", "it", "zh", "ru", "uk", "ja", "ko", "vi", "pt", "nl", "hi" — The primary language.

  • timeline

    array — The speech timeline, who spoke when

    Items:

    • participants (required)

      array — A list of the users.For external users, only need to pass display name.

      Items:

      • display_name (required)

        string — The name of the participant.

      • email

        string — The email of the participant, if available.

    • start_time_in_recording (required)

      string — The start time in recording.

  • timezone

    string — Time zone to format time. For a list of supported timezones and their formats, see our [timezone list](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).

Example:

{
  "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_id

    string — 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_client

    string — The calendar provider associated with the calendar event linked to this conversation.

  • conversation_id

    string — The conversation ID.

  • conversation_topic

    string — The conversation topic.

  • conversation_type

    string — The conversation type.

  • conversation_url

    string — The URL for easy access to conversation detail page.

  • conversation_view

    object — The view information of this conversation.

    • total_view_counts

      integer — Total view times of this conversation.

    • view_user_infos

      array — View conversation user information.

      Items:

      • counts

        integer — The user view this conversation counts.

      • user_display_name

        string — The user name who viewed this conversation.

      • user_id

        string — The user ID who viewed this conversation.

  • deal

    object — The deal of the conversation.

    • close_date

      string — The close date of the deal.

    • customer_crm_account_name

      string — The customer CRM account name of the deal.

    • id

      string — The deal ID.

    • name

      string — The deal name.

    • stage

      string — The current stage of the deal.

  • downloadUrl

    string — Expires after one hour.

  • duration

    integer — The recording duration in minutes.

  • duration_sec

    integer — The recording duration, in seconds.

  • engagement_score

    integer — The engagement score.

  • event_id

    string — The unique ID of this calendar event in the calendar provider.

  • host_email

    string, format: email — The meeting host's email address.

  • host_id

    string — The meeting host's user ID.

  • iq_processed_time

    string — The time the IQ was processed.

  • meeting_id

    integer, format: int64 — The meeting ID, also known as the meeting number, in long (int64) format.

  • meeting_start_time

    string — The meeting start time.

  • meeting_uuid

    string — The meeting ID. Each meeting instance generates its own meeting UUID.

  • moment_info

    array — The moment information of the conversation.

    Items:

    • create_user_display_name

      string — The user name who created this moment.

    • create_user_id

      string — The user ID who created this moment.

    • moment_id

      string — This moment's ID.

    • moment_name

      string — This moment's name.

    • share_counts

      string — Total shared counts of this moment.

    • share_user_infos

      array — Share this moment user information.

      Items:

      • counts

        integer — Unique user shared this moment counts.

      • user_display_name

        string — The user name who shared this moment.

      • user_id

        string — The user ID who shared this moment.

  • participants

    array — All of the users who belong in this meeting.

    Items:

    • display_name

      string — This participant's display name.

    • email

      string — This participant's email.

    • type

      string, possible values: "rep", "customer" — Rep or custome.r

  • recording_download_url

    string — Expires after one hour.

  • sentiment_score

    integer — The sentiment score.

  • stage_during_conversation

    string — The stage of the deal when the conversation occurred.

  • start_time

    string — The meeting start time.

  • summary

    string — The conversation summary.

  • topic

    string — The meeting topic.

Example:

{
  "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_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

  • comments

    array — The comments of the conversation.

    Items:

    • comment

      string — The actual comment.

    • created_time

      string, format: date-time — The time at which the comment was added.

    • id

      string — The comment's ID in this conversation.

    • is_private

      boolean — Determine whether comment is public or private.

    • last_modified_time

      string, format: date-time — The time at which the comment was last updated.

    • mention_teams

      array — The list of teams mentioned in the comment

      Items:

      • team_id

        string — The mentioned team's ID.

      • team_name

        string — The mentioned team's name.

    • mention_users

      array — The list of the users mentioned in the comment

      Items:

      • user_id

        string — The mentioned user's ID.

      • user_name

        string — The mentioned user's name.

    • parent_comment_id

      string — The parent comment's ID in this conversation.

    • time_in_recording

      string — The time in recording which the player should advance.

    • user_email

      string — The commenter's email address.

    • user_name

      string — The commenter's user name.

Example:

{
  "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_private

    boolean — Determine whether comment is public or private.

  • mention_team_ids

    array — The list of teams mentioned in the comment

    Items:

    string — The mentioned team's ID.

  • mention_user_ids

    array — The list of the users mentioned in the comment

    Items:

    string — The mentioned user's ID.

  • parent_comment_id

    string — The parent comment's ID in this conversation.

  • time_in_recording

    string — The time in recording which the player should advance.

Example:

{
  "parent_comment_id": "34dfg301-d32b-4850-92c7-ea9f5a40fd39",
  "comment": "Nicely done!",
  "mention_user_ids": [
    "hjficvXtR42vjSABCCS32Q"
  ],
  "mention_team_ids": [
    "hjficvXtR42vjSABCCS32Q"
  ],
  "is_private": false,
  "time_in_recording": "00:00:10"
}

Responses

Status: 201 **HTTP Status Code:** `201` Successfully added comment to conversation.
Content-Type: application/json
  • comment

    string — The actual comment.

  • created_time

    string, format: date-time — The time at which the comment was added.

  • id

    string — The comment's ID in this conversation.

  • is_private

    boolean — Determine whether comment is public or private.

  • last_modified_time

    string, format: date-time — The time at which the comment was last updated.

  • mention_teams

    array — The list of teams mentioned in the comment

    Items:

    • team_id

      string — The mentioned team's ID.

    • team_name

      string — The mentioned team's name.

  • mention_users

    array — The list of the users mentioned in the comment

    Items:

    • user_id

      string — The mentioned user's ID.

    • user_name

      string — The mentioned user's name.

  • parent_comment_id

    string — The parent comment's ID in this conversation.

  • time_in_recording

    string — The time in recording which the player should advance.

  • user_email

    string — The commenter's email address.

  • user_name

    string — The commenter's user name.

Example:

{
  "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
  • comment

    string — The actual comment.

  • mention_team_ids

    array — The list of teams mentioned in the comment

    Items:

    string — The mentioned team's ID.

  • mention_user_ids

    array — The list of the users mentioned in the comment

    Items:

    string — The mentioned user's ID.

  • time_in_recording

    string — The time in recording which the player should advance.

Example:

{
  "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_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

  • analysis

    array — The analysis results. if `analysis_type` is `all` will not returned

    Items:

    • section

      array — analysis section items

      Items:

      • display_name

        string — The name of the user.

      • end_time

        string — The indicator end time.

      • indicator_id

        string — The indicator ID.

      • indicator_name

        string — The indicator's name.

      • key_word

        string — The keyword define in indicator.

      • label

        string — The label of the topic.

      • marked_by

        string, possible values: "nlp", "es", "aic", "the value of the user_id" — The one who marked the content. * `nlp` &mdash; Marked by NLP. * `es` &mdash; Marked by ES. * `aic` &mdash; Marked by aic. * `user_id` - Manually marked by the user with this user ID.

      • start_time

        string — The indicator start time.

      • text

        string — The text content.

      • user_id

        string — The ID of the user. If the participant joins the meeting without logging in or is external user, the value of this field will be blank.

      • utterance

        string — The text's complete utterance.

  • deal_memo

    object — the deal memo of this conversation will returned when `analysis_type` is `dealMemo` or `all`.

    • potential_concerns

      array — potential concerns

      Items:

      • explanation

        string — explanation for the factor

      • factor

        string — factor for potential_concerns

    • potential_wins

      array — potential wins

      Items:

      • explanation

        string — explanation for the factor

      • factor

        string — factor for potential_wins

  • good_questions

    array — The `good_question`s results. Only exists when `analysis_type` is `all`.

    Items:

    • section

      array — analysis section items

      Items:

      • display_name

        string — The name of the user.

      • end_time

        string — The indicator end time.

      • indicator_id

        string — The indicator ID.

      • indicator_name

        string — The indicator's name.

      • key_word

        string — The keyword define in indicator.

      • label

        string — The label of the topic.

      • marked_by

        string, possible values: "nlp", "es", "aic", "the value of the user_id" — The one who marked the content. * `nlp` &mdash; Marked by NLP. * `es` &mdash; Marked by ES. * `aic` &mdash; Marked by aic. * `user_id` - Manually marked by the user with this user ID.

      • start_time

        string — The indicator start time.

      • text

        string — The text content.

      • user_id

        string — The ID of the user. If the participant joins the meeting without logging in or is external user, the value of this field will be blank.

      • utterance

        string — The text's complete utterance.

  • indicators

    array — The indicators results. Only exists when `analysis_type` is `all`.

    Items:

    • section

      array — analysis section items

      Items:

      • display_name

        string — The name of the user.

      • end_time

        string — The indicator end time.

      • indicator_id

        string — The indicator ID.

      • indicator_name

        string — The indicator's name.

      • key_word

        string — The keyword define in indicator.

      • label

        string — The label of the topic.

      • marked_by

        string, possible values: "nlp", "es", "aic", "the value of the user_id" — The one who marked the content. * `nlp` &mdash; Marked by NLP. * `es` &mdash; Marked by ES. * `aic` &mdash; Marked by aic. * `user_id` - Manually marked by the user with this user ID.

      • start_time

        string — The indicator start time.

      • text

        string — The text content.

      • user_id

        string — The ID of the user. If the participant joins the meeting without logging in or is external user, the value of this field will be blank.

      • utterance

        string — The text's complete utterance.

  • next_steps

    array — The `next_steps` results. Only exists when `analysis_type` is `all`.

    Items:

    • section

      array — analysis section items

      Items:

      • display_name

        string — The name of the user.

      • end_time

        string — The indicator end time.

      • indicator_id

        string — The indicator ID.

      • indicator_name

        string — The indicator's name.

      • key_word

        string — The keyword define in indicator.

      • label

        string — The label of the topic.

      • marked_by

        string, possible values: "nlp", "es", "aic", "the value of the user_id" — The one who marked the content. * `nlp` &mdash; Marked by NLP. * `es` &mdash; Marked by ES. * `aic` &mdash; Marked by aic. * `user_id` - Manually marked by the user with this user ID.

      • start_time

        string — The indicator start time.

      • text

        string — The text content.

      • user_id

        string — The ID of the user. If the participant joins the meeting without logging in or is external user, the value of this field will be blank.

      • utterance

        string — The text's complete utterance.

  • playbooks

    array — Playbook Notes

    Items:

    • elements

      array — The playbook contains elements with notes.

      Items:

      • answer

        object — The AI answer for this element.

        • sources

          array — sources

          Items:

          • end_time

            string — end time

          • item_id

            string — transcript item id

          • speaker_name

            string — speaker name

          • start_time

            string — start time

          • text

            string — transcript sentences

          • time_s

            integer — From the beginning to the current number of seconds

        • summaries

          array — summaries

          Items:

          string — summaries

      • element_id

        string — element id

      • element_name

        string — element name

    • playbook_id

      string — playbook id

    • playbook_name

      string — playbook name

  • smart_chapters

    array — The smart chapters. Returned when `analysis_type` is `smartChapters` or `all`.

    Items:

    • category

      string — The chapter category.

    • end_time

      string — The chapter end time.

    • start_time

      string — The chapter start time.

    • summary

      string — The chapter summary.

    • title

      string — The chapter title.

  • summary

    string — The overall conversation summary. Only returned when the `analysis_type` is `smartChapters`

  • topics

    array — The topics results. oOly exists when `analysis_type` is `all`.

    Items:

    • section

      array — analysis section items

      Items:

      • display_name

        string — The name of the user.

      • end_time

        string — The indicator end time.

      • indicator_id

        string — The indicator ID.

      • indicator_name

        string — The indicator's name.

      • key_word

        string — The keyword define in indicator.

      • label

        string — The label of the topic.

      • marked_by

        string, possible values: "nlp", "es", "aic", "the value of the user_id" — The one who marked the content. * `nlp` &mdash; Marked by NLP. * `es` &mdash; Marked by ES. * `aic` &mdash; Marked by aic. * `user_id` - Manually marked by the user with this user ID.

      • start_time

        string — The indicator start time.

      • text

        string — The text content.

      • user_id

        string — The ID of the user. If the participant joins the meeting without logging in or is external user, the value of this field will be blank.

      • utterance

        string — The text's complete utterance.

Example:

{
  "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_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

  • participants

    array — The speakers in the conversation.

    Items:

    • display_name

      string — The speaker's user name.

    • email

      string — The speaker's email address. If the participant joins the meeting without logging in or is external user, the value of this field will be blank.

    • metrics

      object — The metrics for the conversation.

      • filler_words

        number — The count of filler words. Unit: words/min.

      • longest_monolog

        number — The longest monologue in seconds.

      • patience

        number — The patience in seconds.

      • talk_speed

        number — The talk speed in words per minute.

      • talk_to_listen_ratio

        number — The talk-to-listen ratio.

    • speaker_type

      string, possible values: "rep", "customer" — The type of the speaker.

    • transcripts

      array

      Items:

      • end_time

        string — The speak item end time.

      • item_id

        string — The item ID.

      • start_time

        string — The speak item start time.

      • text

        string — The speech in text.

    • user_id

      string — The speaker's user ID. If the participant joins the meeting without logging in or is external user, the value of this field will be blank.

Example:

{
  "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:

  • scorecards

    array — The scorecards of the conversation.

    Items:

    • average_score

      number — The average score for this scorecard.

    • rate_time

      string, format: date-time — The time at which the scorecard was rated.

    • rater

      object — User information of the person who rates this scorecard.

      • display_name

        string — Name of the person who rates the scorecard.

      • email

        string — Email address of person who rates the scorecard.

      • user_id

        string — The unique identifier for the user.

    • scorecard_description

      string — The scorecard's description.

    • scorecard_id

      string — The scorecard's ID.

    • scorecard_name

      string — The scorecard's name.

    • scorecard_questions

      array — Questions in the scorecard

      Items:

      • answer

        string — The selected answer.

      • justification

        string — The user's reasoning or explanation for their score selection.

      • question_comment

        string — The question's comment.

      • question_description

        string — The question's description.

      • question_id

        string — The question's ID.

      • question_title

        string — The question title

      • scale

        object — The scale information for this question.

        • max_score_label

          string — The highest score.

        • min_score_label

          string — The lowest score.

      • score

        number — The user's score for the question.

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

Example:

{
  "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_id

    string — 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, .wmv or H.264.

  • Supported transcript and file attachment format: .json . The fileName must end with transcript.json.

  • Supported metadata and file attachment format: .json. The fileName must end with metadata.json.

  • Required file upload sequence: main file, transcript file (if necessary), metadata file (if necessary).

  • When your object size reaches 2 GB, you should use multipart uploads instead of uploading the object in a single operation.

  • For an account-level OAuth app, 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_id

    string — The main file's unique ID. Use this field to upload a attachment file.

  • source

    number — The source of the transcript and metadata files, if this field is not provided, it defaults to a value of 1. There are two valid values for this field: * 1: Represents files sourced from 'Gong.' * 2: Represents files sourced from 'Chorus.'

Example:

{
  "file": "",
  "main_file_id": "xBvggqyjQUal6TecwMlYwQ",
  "source": 1
}

Responses

Status: 201 **HTTP Status Code:** `201` File successfully uploaded.
Content-Type: application/json
  • file_id

    string — The IQ file's unique ID.

Example:

{
  "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, .wmv or H.264 format.
  • Transcript can be in .vtt, .json format.
  • In general, when your object size reaches 2 GB, you should use multipart uploads instead of uploading the object in a single operation.
  • The caller must be a iq_listened user.
  • For an account-level OAuth app, 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_etag

    object — The part number etag, Collect and bring it back in the final request to complete the multipart upload request.

    • etag

      string — The etag of the part being uploaded.

    • part_number

      integer — the part number of the part being uploaded.

Example:

{
  "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.

  • params

    object — The CompleteMultipartUpload parameters.

    • file_name

      string — The iq file's name. If you pass the `CreateMultipartUpload` value for the `method` field.

    • main_file_id

      string — The main file's unique ID. If you pass the `CreateMultipartUpload` value for the `method` field, Use this field to upload a attachment file.

    • part_number_etags

      array — The part number etags being uploaded. Use this field if you pass the `CompleteMultipartUpload` value for the `method` field.

      Items:

      • etag

        string — The etag of the part being uploaded.

      • part_number

        integer — the part number of the part being uploaded.

    • upload_context

      string — Upload context identifying the multipart upload whose part is being uploaded. Use this field if you pass the `CompleteMultipartUpload` value for the `method` field.

Example:

{
  "method": "CreateMultipartUpload",
  "params": {
    "file_name": "file name",
    "main_file_id": "xBvggqyjQUal6TecwMlYwQ",
    "upload_context": "noNpr2pkBEv4_fTxYWDEHBsSs3pl8keRx4fPZmnyNDe.SPdodJp.3UZDaCI2xRVzkRh0xeEV6RuOrXZpJQBPutWCS424c2YnHVxVh8b9.4DNwd4VErRuD98jeJBwRCgz6rC3I4NQg5zXAtCqPFoC0g--",
    "part_number_etags": [
      {
        "part_number": 1,
        "etag": "etag1"
      }
    ]
  }
}

Responses

Status: 201 **Status Code:** `201` Successfully initiate and complete a multipart upload.
Content-Type: application/json
  • file_id

    string — The iq file's unique ID. Return this field if you pass the `CompleteMultipartUpload` value for the `method` field.

  • upload_context

    string — The upload context. Return this field if you pass the `CreateMultipartUpload` value for the `method` field. **Note:** * Use this upload context to associate all of the parts in the specific multipart upload. You specify this upload context in each of your subsequent upload part requests. You also include this upload context in the final request to complete the multipart upload request.

Example:

{
  "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_uuid

    string — The Meeting ID. Each meeting instance generates its own meeting UUID.

  • recording_link

    string — The meeting record url. It could be share_url or play_url.

Example:

{
  "recording_link": "https://zoom.us/rec/share/....",
  "meeting_uuid": "egLSRuj2SlWet+wLi87LNA=="
}

Responses

Status: 201 **HTTP Status Code:** `201` Conversation added.
Content-Type: application/json
  • meeting_uuid

    string — The Meeting ID. Each meeting instance generates its own meeting UUID.

Example:

{
  "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_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

  • playlists

    array

    Items:

    • created_by

      string — The create user's name.

    • following

      boolean — Following plalist

    • modified_time

      string, format: date-time — The time the playlist was modified.

    • number_of_conversations

      integer — The number of conversations in a playlist.

    • playlist_id

      string — The Playlist ID. Each playlist will generate its own playlist UUID.

    • playlist_name

      string — The name of the playlist.

    • type

      string — The type of the playlist

Example:

{
  "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
  • data

    array — List of CRM account objects.

    Items:

    • account_name (required)

      string — Customer account name.

    • crm_account_id (required)

      string — CRM account ID.

    • modify_time (required)

      string, format: date-time — Modification time in ISO-8601 format, such as `2025-11-20T12:00:00Z`.

    • annual_revenue

      number, format: double — Annual revenue.

    • create_time

      string, format: date-time — Creation time in ISO-8601 format, such as 2025-11-20T12:00:00Z`.

    • domain

      string — Domain name of customer account.

    • employees

      integer — Employees count.

    • industry

      string — Industry type of CRM customer account.

    • owner_email

      string, format: email — Owner's email address.

    • phone

      string — Phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • type

      string — Type of CRM customer account.

    • zra_account_id

      string — Zoom Revenue Accelerator's internal ID for the CRM account object.

Example:

{
  "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: accountcontactdeal. 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_revenue

      number, format: double — Annual revenue.

    • create_time

      string, format: date-time — Creation time in ISO-8601 format, such as 2025-11-20T12:00:00Z`.

    • deletion

      boolean — Special field to mark a delete operation. If this flag is `true`, the system performs a delete operation rather than creating or updating records, and only the `account_id` field will be required for the delete operation.

    • domain

      string — Domain name of customer account.

    • employees

      integer — Employees count.

    • industry

      string — Industry type of CRM customer account.

    • owner_email

      string, format: email — Owner's email address.

    • phone

      string — Phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • type

      string — Type of CRM customer account.

Example:

{
  "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_id

    string — 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
  • data

    array — List of CRM contact objects.

    Items:

    • contact_name (required)

      string — Contact name.

    • crm_contact_id (required)

      string — CRM contact ID.

    • modify_time (required)

      string, format: date-time — Modification time in ISO-8601 format, such as `2025-11-20T12:00:00Z`.

    • contact_email

      string, format: email — Contact email address.

    • create_time

      string, format: date-time — Creation time in ISO-8601 format, such as `2025-11-20T12:00:00Z`.

    • crm_account_id

      string — CRM account ID reference.

    • department

      string — Department.

    • home_phone

      string — Home phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • job_title

      string — Job title.

    • mobile_phone

      string — Mobile phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • other_phone

      string — Other phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • owner_email

      string, format: email — Owner's email address.

    • phone

      string — Phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • zra_contact_id

      string — Zoom Revenue Accelerator's internal ID for the CRM contact object.

Example:

{
  "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: accountcontactdeal. 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_email

      string, format: email — Contact email address.

    • create_time

      string, format: date-time — Creation time in ISO-8601 format, such as `2025-11-20T12:00:00Z`.

    • crm_account_id

      string — CRM account ID reference.

    • deletion

      boolean — Mark a delete operation. If this flag is `true`, the system performs a delete operation rather than creating or updating records. Only the `contact_id` field is required for the delete operation.

    • department

      string — Department.

    • home_phone

      string — Home phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • job_title

      string — Job title.

    • mobile_phone

      string — Mobile phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • other_phone

      string — Other phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • owner_email

      string, format: email — Owner's email address.

    • phone

      string — Phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

Example:

{
  "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_id

    string — 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
  • data

    array — List of CRM deal objects.

    Items:

    • crm_account_id (required)

      string — CRM account ID reference.

    • crm_deal_id (required)

      string — CRM deal ID.

    • deal_name (required)

      string — Deal name.

    • modify_time (required)

      string, format: date-time — Modification time in ISO-8601 format, such as `2025-11-20T12:00:00Z`.

    • owner_email (required)

      string, format: email — Owner's email address. Must be a ZRA-licensed user's email.

    • stage (required)

      string — Deal stage.

    • amount

      number, format: double — Deal amount.

    • close_date

      string, format: date — Closing date in ISO-8601 format, such as `2025-11-20`.

    • contacts

      array — List of references to CRM contacts.

      Items:

      • crm_contact_id (required)

        string — Contact CRM ID reference.

      • contact_email

        string, format: email — Contact email address.

      • contact_name

        string — Contact name.

      • home_phone

        string — Contact home phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

      • mobile_phone

        string — Contact mobile phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

      • other_phone

        string — Contact other phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

      • phone

        string — Contact phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • create_time

      string, format: date-time — Creation time in ISO-8601 format, such as `2025-11-20T12:00:00Z`.

    • description

      string — Description.

    • forecast_category

      string — Forecast category of deal.

    • is_private

      boolean — Whether a deal is private.

    • next_step

      string — Next step.

    • probability

      number, format: double — Percentage of deal probability.

    • stage_modify_time

      string, format: date-time — Stage modification time in ISO-8601 format, such as `2025-11-20T12:00:00Z`.

    • team_member_emails

      array — List of deal team members' email addresses.

      Items:

      string, format: email — The deal team member's email address.

    • zra_deal_id

      string — Zoom Revenue Accelerator's internal ID for the CRM deal object.

Example:

{
  "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: accountcontactdeal. 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.

    • amount

      number, format: double — Deal amount.

    • close_date

      string, format: date — Close date in ISO-8601 format, such as `2025-11-20`.

    • contacts

      array — List of references to CRM contacts.

      Items:

      • crm_contact_id (required)

        string — Contact CRM ID reference.

      • contact_email

        string, format: email — Contact email address.

      • contact_name

        string — Contact name.

      • home_phone

        string — Contact home phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

      • mobile_phone

        string — Contact mobile phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

      • other_phone

        string — Contact other phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

      • phone

        string — Contact phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • create_time

      string, format: date-time — Creation time in ISO-8601 format, such as `2025-11-20T12:00:00Z`.

    • deletion

      boolean — Mark a delete operation. If this flag is `true`, the system performs a delete operation rather than creating or updating records, and only the `deal_id` field is required for the delete operation.

    • description

      string — Description.

    • forecast_category

      string — Forecast category of deal.

    • is_private

      boolean — Whether the deal is private.

    • next_step

      string — Next step.

    • probability

      number, format: double — Percentage of deal probability.

    • stage_modify_time

      string, format: date-time — Stage modification time in ISO-8601 format, such as `2025-11-20T12:00:00Z`.

    • team_member_emails

      array — List of deal team members' email addresses.

      Items:

      string, format: email — Email address of deal team member.

Example:

{
  "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_id

    string — 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
  • data

    array — List of CRM lead objects.

    Items:

    • crm_lead_id (required)

      string — CRM lead ID.

    • lead_name (required)

      string — Lead name.

    • modify_time (required)

      string, format: date-time — Modification time in ISO-8601 format, such as `2025-11-20T12:00:00Z`.

    • company

      string — Company of lead.

    • create_time

      string, format: date-time — Creation time in ISO-8601 format, such as `2025-11-20T12:00:00Z`.

    • home_phone

      string — Home phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • job_title

      string — Job title.

    • lead_email

      string, format: email — Email address.

    • mobile_phone

      string — Mobile phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • other_phone

      string — Other phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • owner_email

      string, format: email — Owner's email address.

    • phone

      string — Phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • zra_lead_id

      string — Zoom Revenue Accelerator's internal ID for the CRM lead object.

Example:

{
  "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`.

    • company

      string — Company of lead.

    • create_time

      string, format: date-time — Creation time in ISO-8601 format, such as `2025-11-20T12:00:00Z`.

    • deletion

      boolean — Mark a delete operation. If this flag is `true`, the system performs a delete operation rather than creating or updating records. Only the `lead_id` field is required for the delete operation.

    • home_phone

      string — Home phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • job_title

      string — Job title.

    • lead_email

      string, format: email — Email address.

    • mobile_phone

      string — Mobile phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • other_phone

      string — Other phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

    • owner_email

      string, format: email — Owner's email address.

    • phone

      string — Phone number with no format restrictions. For example, `+180005550100`, `800-0555-0100`, and `(800) 555-0100` are accepted.

Example:

{
  "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_id

    string — 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_type

      string, possible values: "OPEN", "CLOSED_WON", "CLOSED_LOST", default: "OPEN" — Deal stage type.

  • create_time

    string, format: date-time — Date and time created in ISO-8601 format, such as `2025-11-20T12:00:00Z`.

  • crm_name

    string — The CRM type's display name. Default is CRM type.

  • currency_type

    string, default: "USD" — Currency type unit name, such as USD, JPY, EUR. Default is USD.

  • modify_time

    string, format: date-time — Date and time modified in ISO-8601 format, such as `2025-11-20T12:00:00Z`.

  • url_pattern_account

    string — URL pattern to open a CRM account object in a browser. The placeholder `{id}` will be replaced with the actual CRM account object ID.

  • url_pattern_contact

    string — URL pattern to open a CRM contact object in browser. The placeholder `{id}` will be replaced with the actual CRM contact object ID.

  • url_pattern_deal

    string — URL pattern to open a CRM deal object in a browser. The placeholder `{id}` will be replaced with the actual CRM deal object ID.

  • url_pattern_lead

    string — URL pattern to open a CRM lead object in browser. The placeholder `{id}` will be replaced with the actual CRM lead object ID.

Example:

{
  "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_type

      string, possible values: "OPEN", "CLOSED_WON", "CLOSED_LOST", default: "OPEN" — Deal stage type.

  • crm_name

    string — Display name of the CRM type, default to use CRM type.

  • currency_type

    string, default: "USD" — Currency type unit name, such as USD, JPY, EUR, and others. The default is USD.

  • url_pattern_account

    string — URL pattern to open a CRM account object in a browser. The placeholder `{id}` will be replaced with the actual CRM account object ID.

  • url_pattern_contact

    string — URL pattern to open a CRM contact object in a browser. The placeholder `{id}` will be replaced with the actual CRM contact object ID.

  • url_pattern_deal

    string — URL pattern to open a CRM deal object in a browser. The placeholder `{id}` will be replaced with the actual CRM deal object ID.

  • url_pattern_lead

    string — URL pattern to open a CRM lead object in a browser. The placeholder `{id}` will be replaced with the actual CRM lead object ID.

Example:

{
  "crm_type": "oracle",
  "crm_name": "Oracle",
  "currency_type": "USD",
  "deal_stages": [
    {
      "stage_name": "Prospecting",
      "stage_type": "OPEN"
    }
  ],
  "url_pattern_deal": "https://example.com/deal/{id}",
  "url_pattern_account": "https://example.com/account/{id}",
  "url_pattern_contact": "https://example.com/contact/{id}",
  "url_pattern_lead": "https://example.com/lead/{id}"
}

Responses

Status: 201 CRM API registered.
Content-Type: application/json
  • crm_type (required)

    string — CRM type identifier, up to 16 alphanumeric characters.

  • deal_stages (required)

    array — Deal stage definitions. Each stage type (`OPEN`, `CLOSED_WON`, `CLOSED_LOST`) must have at least one stage defined.

    Items:

    • stage_name (required)

      string — Deal stage name. Each deal stage name must be unique.

    • stage_type

      string, possible values: "OPEN", "CLOSED_WON", "CLOSED_LOST", default: "OPEN" — Deal stage type.

  • create_time

    string, format: date-time — Create time, in ISO-8601 format, such as `2025-11-20T12:00:00Z`.

  • crm_name

    string — Display name of the CRM type. The default is to use CRM type.

  • currency_type

    string, default: "USD" — Currency type unit name, such as USD, JPY, EUR, and others. The default is USD.

  • modify_time

    string, format: date-time — Modify time in ISO-8601 format, such as `2025-11-20T12:00:00Z`.

  • url_pattern_account

    string — URL pattern to open a CRM account object in a browser. The placeholder `{id}` will be replaced with the actual CRM account object ID.

  • url_pattern_contact

    string — URL pattern to open a CRM contact object in a browser. The placeholder `{id}` will be replaced with the actual CRM contact object ID.

  • url_pattern_deal

    string — URL pattern to open a CRM deal object in a browser. The placeholder `{id}` will be replaced with the actual CRM deal object ID.

  • url_pattern_lead

    string — URL pattern to open a CRM lead object in a browser. The placeholder `{id}` will be replaced with the actual CRM lead object ID.

Example:

{
  "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_time

    string, format: date-time — Date and time task created, in ISO-8601 format (e.g., 2025-11-20T12:00:00Z).

  • end_time

    string, format: date-time — Date and time task ended, in ISO-8601 format (e.g., 2025-11-20T12:00:00Z).

  • errors

    array — A list of error details, available only when the task has completed successfully or failed.

    Items:

    • detail

      string — Error detail information.

    • record_id

      string — CRM record ID that failed.

    • record_index

      integer — Index number of the CRM record that failed.

  • failed_count

    integer — Failed count of records.

  • modify_time

    string, format: date-time — Date and time task modified, in ISO-8601 format (e.g., 2025-11-20T12:00:00Z).

  • start_time

    string, format: date-time — Date and time task started, in ISO-8601 format (e.g., 2025-11-20T12:00:00Z).

  • success_count

    integer — Success count of records.

  • task_id

    string — Task ID.

  • task_status

    string, possible values: "PENDING", "RUNNING", "SUCCESS", "FAILED" — Task status.

  • task_type

    string, possible values: "IMPORT_DEALS", "IMPORT_ACCOUNTS", "IMPORT_CONTACTS", "IMPORT_LEADS" — Task type.

  • total_count

    integer — Total count of records.

Example:

{
  "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:

  • from

    string — The start date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

  • to

    string — The end date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

  • deals

    array — The Zoom specific deals

    Items:

    • account_name

      string — The customer CRM account name of the deal.

    • account_type

      string — The customer CRM account type of the deal.

    • close_date

      string — The close date of the deal.

    • create_time

      string, format: date-time — The time at which the deal was created.

    • currency_type

      string — The currency of the deal.

    • deal_amount

      integer — The amount of the deal.

    • deal_description

      string — The deal description.

    • deal_id

      string — The Zoom specific deal ID.

    • deal_is_closed

      boolean — Whether the deal is closed.

    • deal_is_private

      boolean — Determine whether deal is public or private.

    • deal_name

      string — The deal name.

    • deal_stage

      string — The current stage of the deal.

    • last_activity_time

      string, format: date-time — The time at which the deal's last activity added.

    • number_of_conversations

      integer — The number of conversations in deal.

    • owner_email

      string — The email of the deal owner.

    • owner_id

      string — The Zoom specific user ID of the deal owner.

    • owner_name

      string — The name of the deal owner.

    • time_in_stage

      integer — The number days in current stage.

Example:

{
  "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_name

    string — The customer CRM account name of the deal.

  • account_type

    string — The customer CRM account type of the deal.

  • close_date

    string — The close date of the deal.

  • contacts

    array — The contacts of the deal.

    Items:

    string — The name of the contact.

  • create_time

    string, format: date-time — The time at which the deal was created.

  • currency_type

    string — The currency of the deal.

  • deal_amount

    integer — The amount of the deal.

  • deal_description

    string — The deal description.

  • deal_id

    string — The Zoom specific deal ID.

  • deal_is_closed

    boolean — Whether the deal is closed.

  • deal_is_private

    boolean — Determine whether deal is public or private.

  • deal_name

    string — The deal name.

  • deal_stage

    string — The current stage of the deal.

  • last_activity_time

    string, format: date-time — The time at which the deal's last activity added.

  • number_of_conversations

    integer — The number of conversations in deal.

  • owner_email

    string — The email of the deal owner.

  • owner_id

    string — The Zoom specific user ID of the deal owner.

  • owner_name

    string — The name of the deal owner.

  • time_in_stage

    integer — The number days in current stage.

Example:

{
  "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_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

  • activities

    array

    Items:

    • activity_type

      string — The activity type.

    • conversation_id

      string — The conversation ID.

    • conversation_topic

      string — The conversation topic.

    • deal_stage

      string — The current stage of the deal.

    • direction

      string — The direction of the activity.

    • duration

      integer — The duration of the activity.

    • engagement_score

      integer — The engagement score.

    • host_id

      string — The meeting host's user ID.

    • message_ids

      string — The message ID

    • number_of_message_in_thread

      integer — The number of messages in thread.

    • processing_analysis

      boolean — Whether the conversation is in processing analysis.

    • sentiment_score

      integer — The sentiment score.

    • stage_during_conversation

      string — The stage of the deal when the conversation occurred

    • start_date

      string — The activity start date.

Example:

{
  "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:

  • from

    string — The start date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

  • to

    string — The end date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

  • deals

    array — The Zoom specific deals

    Items:

    • account_name

      string — The customer CRM account name of the deal.

    • account_type

      string — The customer CRM account type of the deal.

    • close_date

      string — The close date of the deal.

    • create_time

      string, format: date-time — The time at which the deal was created.

    • currency_type

      string — The currency of the deal.

    • customer_account_id

      string — The customer's CRM account ID of the deal.

    • customer_contact

      array — The deal's customer contact information.

      Items:

      • customer_contact_id

        string — The customer contact ID.

      • customer_contact_name

        string — The customer contact name.

    • deal_amount

      integer — The amount of the deal.

    • deal_description

      string — The deal description.

    • deal_id

      string — The Zoom specific deal ID.

    • deal_is_closed

      boolean — Whether the deal is closed.

    • deal_is_private

      boolean — Determine whether deal is public or private.

    • deal_name

      string — The deal name.

    • deal_retrospective

      string — The AI-generated deal retrospective. This is only available for closed deals.

    • deal_stage

      string — The current stage of the deal.

    • last_activity_time

      string, format: date-time — The time at which the deal's last activity added.

    • number_of_conversations

      integer — The number of conversations in deal.

    • owner_email

      string — The email of the deal owner.

    • owner_id

      string — The Zoom specific user ID of the deal owner.

    • owner_name

      string — The name of the deal owner.

    • time_in_stage

      integer — The number days in current stage.

Example:

{
  "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_name

    string — The customer CRM account name of the deal.

  • account_type

    string — The customer CRM account type of the deal.

  • close_date

    string — The close date of the deal.

  • contacts

    array — The contacts of the deal.

    Items:

    string — The name of the contact.

  • create_time

    string, format: date-time — The time at which the deal was created.

  • currency_type

    string — The currency of the deal.

  • customer_account_id

    string — The customer's CRM account ID of the deal.

  • customer_contact

    array — The deal's customer contact information.

    Items:

    • customer_contact_id

      string — The customer contact's ID.

    • customer_contact_name

      string — The customer contact's name.

  • deal_amount

    integer — The amount of the deal.

  • deal_description

    string — The deal description.

  • deal_id

    string — The Zoom specific deal ID.

  • deal_is_closed

    boolean — Whether the deal is closed.

  • deal_is_private

    boolean — Determine whether deal is public or private.

  • deal_name

    string — The deal name.

  • deal_retrospective

    string — The AI-generated deal retrospective. This is only available for closed deals.

  • deal_stage

    string — The current stage of the deal.

  • last_activity_time

    string, format: date-time — The time at which the deal's last activity added.

  • number_of_conversations

    integer — The number of conversations in deal.

  • owner_email

    string — The email of the deal owner.

  • owner_id

    string — The Zoom specific user ID of the deal owner.

  • owner_name

    string — The name of the deal owner.

  • time_in_stage

    integer — The number days in current stage.

Example:

{
  "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_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer, default: 30 — The number of records returned in a single API call.

  • activities

    array — All activities associated with the deal.

    Items:

    • activity_type

      string — The activity type.

    • conversation_id

      string — The conversation ID.

    • conversation_topic

      string — The conversation topic.

    • deal_stage

      string — The current stage of the deal.

    • direction

      string — The direction of the activity.

    • duration

      integer — The duration of the activity.

    • engagement_score

      integer — The engagement score.

    • host_id

      string — The meeting host's user ID.

    • message_ids

      string — The message ID

    • next_steps

      array — The next steps extracted from linked conversations.

      Items:

      string — A single extracted next-step item.

    • number_of_message_in_thread

      integer — The number of messages in thread.

    • processing_analysis

      boolean — Whether the conversation is in processing analysis.

    • sentiment_score

      integer — The sentiment score.

    • stage_during_conversation

      string — The stage of the deal when the conversation occurred

    • start_date

      string — The activity start date.

    • summary

      string — The conversation summary.

Example:

{
  "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:

  • from

    string — The start date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer — The number of records returned in a single API call.

  • to

    string — The end date in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.

  • meetings

    array — result array

    Items:

    • event_id

      string — uuid of this scheduled meeting

    • external

      boolean — this meeting is external or internal

    • host_id

      string — the host of this meeting, if the meeting is external or can not get host id will be null

    • meeting_platform

      string, possible values: "zoom", "microsoft_teams", "google_meet" — zoom meeting

    • schedule_time

      string — when this meeting was scheduled

    • start_time

      string — The meeting start time you set when you schedule this event.

    • topic

      string — the topic of this scheduled meeting

    • user_id

      string — this user's schedule meeting

Example:

{
  "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_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer — The number of records returned in a single API call.

  • teams

    array

    Items:

    • name (required)

      string — team name

    • team_id (required)

      string — UUID of team

    • description

      string — team description

    • leaf

      boolean — If this flag is true, it means this team has no child teams.

    • member_size

      integer — team member size

    • parent_teams

      array — This field will only be returned when you enter a search key. The parent teams are all the parent nodes of the hit teams, these team nodes have been sorted, from the upper parent node to the root node.

      Items:

      • name

        string — team name

      • team_id

        string — UUID of team

    • supervisor_size

      integer — team admin size

    • type

      string, possible values: "flat team", "hierarchical team" — the structure type of team

Example:

{
  "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_id

    string — Zoom team id. If you want to create a child team, please fill this field. And if you want to create a new falt or root team, you can keep this field empty.

Example:

{
  "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_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer — The number of records returned in a single API call.

  • unassigned_users

    array

    Items:

    • email

      string — User email

    • first_name

      string — User first name

    • last_name

      string — User last name

    • user_id

      string — User UUID

Example:

{
  "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

  • description

    string — Team description.

  • leaf

    boolean — If this flag is true, it means this team has no child teams.

  • manager_size

    integer — Manager size of this team. If team type is flat, please ignore this field.

  • member_size

    integer — Member size of this team

  • type

    string — The structure type of team.

Example:

{
  "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_at

    string — 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_at

    string — 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
  • managers

    array — managers info list

    Items:

    • email

      string — User email

    • first_name

      string — User first name

    • last_name

      string — User last name

    • user_id

      string — User UUID

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    string — The number of records returned in a single API call.

Example:

{
  "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_at

    string — Successfully added time

  • user_ids

    string — 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
  • members

    array — member info list

    Items:

    • email

      string — User email

    • first_name

      string — User first name

    • last_name

      string — User last name

    • user_id

      string — User UUID

  • next_page_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer — The number of records returned in a single API call.

Example:

{
  "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:

  • email

    string — User Email. If you fill both user id and Email fields, we will choose user id. The Email field only takes effect when the user id field is empty.

  • user_id

    string — User ID. If you fill user id field, please ignore email field.

Example:

[
  {
    "user_id": "iL2FL0wsRbOU__OsdO-4Lg",
    "email": "[email protected]"
  }
]

Responses

Status: 201 Success
Content-Type: application/json
  • added_at

    string — Successfully added time

  • user_ids

    string — 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_token

    string — The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.

  • page_size

    integer — The number of records returned in a single API call.

  • teams

    array

    Items:

    • name (required)

      string — team name

    • team_id (required)

      string — UUID of team

    • description

      string — team description

    • leaf

      boolean — If this flag is true, it means this team has no child teams.

    • member_size

      integer — team member size

    • parent_teams

      array — This field will only be returned when you enter a search key. The parent teams are all the parent nodes of the hit teams, these team nodes have been sorted, from the upper parent node to the root node.

      Items:

      • name

        string — team name

      • team_id

        string — UUID of team

    • supervisor_size

      integer — team admin size

    • type

      string, possible values: "flat team", "hierarchical team" — the structure type of team

Example:

{
  "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> <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `30031004` <br> Invalid or expired token <br> <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `5001` <br> Access is denied <br> <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `0` <br> 404 Route Not Found <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/).