QSS

  • OpenAPI Version: 3.1.1
  • API Version: 2

Zoom Quality of Service Subscription (QSS) is an add-on product that enables Developers to receive details about the network traffic in near real-time for users, hosts, and participants in their meetings, webinars, and phone calls. This data can be used to proactively troubleshoot and identify issues as quickly as possible. Contact Zoom Sales to add this feature.

Requirements

In addition to having the QSS product on your account, at least one user on the account must have Developer permissions enabled to be able to create an application that can subscribe to QSS events. This user should create a Zoom app to receive notifications.

Enabling QSS event notifications

On the Feature page for the Marketplace app, enable Event Subscription and add the Event notification endpoint URL to send the webhooks. Click Add events and select QSS. Select the QSS events that you'd like to receive.

Note that you must subscribe to the QSS summary event to receive data from the QoS summary APIs.

Servers

  • URL: https://api.zoom.us/v2

Operations

List meeting participants QoS Summary

  • Method: GET
  • Path: /metrics/meetings/{meetingId}/participants/qos_summary
  • Tags: Dashboards

Returns a list of meeting participants from past meetings and the summary of their quality of service received during the meeting. The data returned indicates the connection quality for sending or receiving video, audio, and shared content.

Note:

This API may return empty values for participants' user_name and email responses when the account calling this API:

Prerequisites:

  • A Business or a higher plan.
  • Developers must subscribe to the QSS summary event to receive data from this API.

Scopes: dashboard_meetings:read:admin,dashboard:read:admin

Granular Scopes: dashboard:read:list_meeting_participants_qos:admin

Rate Limit Label: HEAVY

Responses

Status: 200 **HTTP Status Code:** `200` <br> Meeting QoS summary returned. Only available for paid accounts that have enabled the dashboard feature.
Content-Type: application/json

All of:

  • next_page_token

    string — Use the next page token to paginate through large result sets. A next page token is returned whenever the set of available results exceeds the page size. This token's expiration period is 15 minutes.

  • page_size

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

  • participants

    array — Information about the participant.

    Items:

    • email

      string, format: email — The participant's email address. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#email-address) for details.

    • id

      string — The participant's universally unique ID. This value is the same as the participant's user ID if the participant joins the meeting by logging into Zoom. If the participant joins the meeting without logging into Zoom, this returns an empty value.

    • participant_id

      string — The participant's ID. This value is assigned to a participant upon joining a meeting and is only valid for the meeting's duration.

    • qos

      array — The summary of participant's quality of service information.

      Items:

      • details

        object — The participant QoS summary details.

        • avg_bitrate

          string — The average amount of bitrate, in kbps.

        • avg_frame_rate

          string — The average amount of frame rate, in fps.

        • avg_jitter

          string — The average amount of jitter, in milliseconds.

        • avg_latency

          string — The average amount of latency, in milliseconds.

        • avg_loss

          string — The average amount of packet loss.

        • max_bitrate

          string — The maximum amount of bitrate, in kbps.

        • max_frame_rate

          string — The maximum amount of frame rate, in fps.

        • max_jitter

          string — The maximum amount of jitter, in milliseconds.

        • max_latency

          string — The maximum amount of latency, in milliseconds.

        • max_loss

          string — The maximum amount of packet loss.

        • min_bitrate

          string — The minimum amount of bitrate, in kbps.

        • min_frame_rate

          string — The minimum amount of frame rate, in fps.

        • min_jitter

          string — The minimum amount of jitter, in milliseconds.

        • min_latency

          string — The minimum amount of latency, in milliseconds.

        • min_loss

          string — The minimum amount of packet loss.

        • resolution

          string — The number of pixels in each dimension that the video camera can display.

        • system_avg_cpu_pressure_level

          string, possible values: "normal", "fair", "serious", "critical" — The system's average CPU pressure level.

        • system_max_cpu_pressure_level

          string, possible values: "critical", "serious", "fair", "normal" — The system's maximum CPU pressure level.

        • system_max_cpu_usage

          string — The system's maximum CPU usage.

        • system_min_cpu_pressure_level

          string, possible values: "normal", "fair", "serious", "critical" — The system's minimum CPU pressure level.

        • zoom_avg_cpu_usage

          string — Zoom's average CPU usage.

        • zoom_max_cpu_usage

          string — Zoom's maximum CPU usage.

        • zoom_min_cpu_usage

          string — Zoom's minimum CPU usage.

      • type

        string, possible values: "audio_input", "audio_output", "video_input", "video_output", "as_input", "as_output", "cpu_usage", "audio_device_from_crc", "audio_device_to_crc", "video_device_from_crc", "video_device_to_crc", "as_device_from_crc", "as_device_to_crc", "audio_device_from_rwg", "audio_device_to_rwg", "video_device_from_rwg", "video_device_to_rwg", "as_device_from_rwg", "as_device_to_rwg" — The type of quality of service (QoS) metrics, from the point of view of the client. * `audio_input` - The QoS metrics for audio received by the client. * `audio_output` - The QoS metrics for audio sent by the client. * `video_input` - The QoS metrics for video input being received by the client. * `video_output` - The QoS metrics for video output being received by the client. * `as_input` - The QoS metrics for screen sharing by a participant. * `as_output` - The QoS metrics for screen sharing output received by a participant. * `cpu_usage` - The QoS metrics for CPU usage. * `audio_device_from_crc` - The QoS metrics for audio sent by a participant who joined the meeting via a Cloud Room Connector (CRC). * `audio_device_to_crc` - The QoS metrics for audio received by a participant who joined the meeting via CRC. * `video_device_from_crc` - The QoS metrics for video input being sent by a participant who joined the meeting via CRC. * `video_device_to_crc` - The QoS metrics for video output being sent by a participant who joined the meeting via CRC. * `as_device_from_crc` - The QoS metrics for screen sharing by a participant who joined the meeting via CRC. * `as_device_to_crc` - The QoS metrics for screen sharing output received by a participant who joined the meeting via CRC. * `audio_device_from_rwg` - The QoS metrics for audio sent by a user who joined via the web gateway. * `audio_device_to_rwg` - The QoS metrics for audio received by a user who joined via the web gateway. * `video_device_from_rwg` - The QoS metrics for video sent by a user who joined via the web gateway. * `video_device_to_rwg` - The QoS metrics for video received by a user who joined via the web gateway. * `as_device_from_rwg` - The QoS metrics for screen sharing sent by a user who joined via the web gateway. * `as_device_to_rwg` - The QoS metrics for screen sharing received by a user who joined via the web gateway.

    • user_name

      string — The participant's display name.

Example:

{
  "next_page_token": "uBTK3NzNksdkuCUAQaFVFd86kyOr59zg4U2",
  "page_size": 30,
  "participants": [
    {
      "id": "zJKyaiAyTNC-MWjiWC18KQ",
      "participant_id": "20161536",
      "user_name": "jchill",
      "email": "user@example.com",
      "qos": [
        {
          "type": "audio_input",
          "details": {
            "min_bitrate": "27.15kbps",
            "avg_bitrate": "27.15kbps",
            "max_bitrate": "27.15kbps",
            "min_latency": "126 ms",
            "avg_latency": "126 ms",
            "max_latency": "126 ms",
            "min_jitter": "0ms",
            "avg_jitter": "0ms",
            "max_jitter": "0ms",
            "min_loss": "0.03%",
            "avg_loss": "0.03%",
            "max_loss": "0.4%",
            "resolution": "1280*720",
            "min_frame_rate": "12 fps",
            "avg_frame_rate": "12 fps",
            "max_frame_rate": "12 fps",
            "zoom_min_cpu_usage": "0%",
            "zoom_avg_cpu_usage": "0%",
            "zoom_max_cpu_usage": "2%",
            "system_max_cpu_usage": "11%",
            "system_min_cpu_pressure_level": "normal",
            "system_avg_cpu_pressure_level": "normal",
            "system_max_cpu_pressure_level": "normal"
          }
        }
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `12702` <br> Can not access a meeting a year ago.<br> <br> **Error Code:** `200` <br> Event subscription not found. Subscribe to the Webinar Participant QoS Summary event in your Marketplace app to get access to this API. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `3001` <br> This meeting's detail info is not available.<br> The Meeting ID is not valid or the meeting has not ended yet. <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 webinar participants QoS Summary

  • Method: GET
  • Path: /metrics/webinars/{webinarId}/participants/qos_summary
  • Tags: Dashboards

Use this API to return a list of webinar participants from live or past webinars and the quality of service they received during the webinar. The data returned indicates the connection quality for sending/receiving video, audio, and shared content.

Note:

This API may return empty values for participants' user_name and email responses when the account calling this API:

  • Does not have a signed HIPAA business associate agreement (BAA).
  • Is a legacy HIPAA BAA account.
  • Displays data for any users who are not part of the host's account (external users) unless they meet certain conditions. See Email address display rules for details.

Prerequisites:

  • A Business, Education, or API Plan with Webinar add-on.
  • Developers must subscribe to the QSS summary event to receive data from this API.

Scopes: dashboard_webinars:read:admin,dashboard:read:admin

Granular Scopes: dashboard:read:list_webinar_participants_qos:admin

Rate Limit Label: HEAVY

Responses

Status: 200 **HTTP Status Code:** `200` <br> Webinar QoS summary 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 available results exceeds the page size. The expiration period is 15 minutes.

  • page_size

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

  • participants

    array — Information about the participant.

    Items:

    • email

      string, format: email — The participant's email address. If the participant is **not** part of the host's account, this returns an empty string value, with some exceptions. See [Email address display rules](https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#email-address) for details.

    • id

      string — The participant's universally unique ID. This value is the same as the participant's user ID if the participant joins the meeting by logging into Zoom. If the participant joins the meeting without logging into Zoom, this returns an empty value.

    • participant_id

      string — The participant's ID. This value is assigned to a participant upon joining a meeting and is only valid for the meeting's duration.

    • qos

      array — The summary of participant's quality of service information.

      Items:

      • details

        object — The participant QoS summary details.

        • avg_bitrate

          string — The average amount of bitrate, in kbps.

        • avg_frame_rate

          string — The average amount of frame rate, in fps.

        • avg_jitter

          string — The average amount of jitter, in milliseconds.

        • avg_latency

          string — The average amount of latency, in milliseconds.

        • avg_loss

          string — The average amount of packet loss.

        • max_bitrate

          string — The maximum amount of bitrate, in kbps.

        • max_frame_rate

          string — The maximum amount of frame rate, in fps.

        • max_jitter

          string — The maximum amount of jitter, in milliseconds.

        • max_latency

          string — The maximum amount of latency, in milliseconds.

        • max_loss

          string — The maximum amount of packet loss.

        • min_bitrate

          string — The minimum amount of bitrate, in kbps.

        • min_frame_rate

          string — The minimum amount of frame rate, in fps.

        • min_jitter

          string — The minimum amount of jitter, in milliseconds.

        • min_latency

          string — The minimum amount of latency, in milliseconds.

        • min_loss

          string — The minimum amount of packet loss.

        • resolution

          string — The number of pixels in each dimension that the video camera can display.

        • system_avg_cpu_pressure_level

          string, possible values: "normal", "fair", "serious", "critical" — The system's average CPU pressure level.

        • system_max_cpu_pressure_level

          string, possible values: "critical", "serious", "fair", "normal" — The system's maximum CPU pressure level.

        • system_max_cpu_usage

          string — The system's maximum CPU usage.

        • system_min_cpu_pressure_level

          string, possible values: "normal", "fair", "serious", "critical" — The system's minimum CPU pressure level.

        • zoom_avg_cpu_usage

          string — Zoom's average CPU usage.

        • zoom_max_cpu_usage

          string — Zoom's maximum CPU usage.

        • zoom_min_cpu_usage

          string — Zoom's minimum CPU usage.

      • type

        string, possible values: "audio_input", "audio_output", "video_input", "video_output", "as_input", "as_output", "cpu_usage", "audio_device_from_crc", "audio_device_to_crc", "video_device_from_crc", "video_device_to_crc", "as_device_from_crc", "as_device_to_crc", "audio_device_from_rwg", "audio_device_to_rwg", "video_device_from_rwg", "video_device_to_rwg", "as_device_from_rwg", "as_device_to_rwg" — Type of the QoS summary: * `audio_input` — The QoS metrics for audio sent by a participant. * `audio_output` — The QoS metrics for audio received by a participant. * `video_input` — The QoS metrics for video input being sent by a participant. * `video_output` — The QoS metrics for video output being sent by a participant. * `as_input` — The QoS metrics for screen sharing by a participant. * `as_output` — The QoS metrics for screen sharing output received by a participant. * `cpu_usage` — The QoS metrics for CPU usage. * `audio_device_from_crc` — The QoS metrics for audio sent by a participant who joined the meeting via a Cloud Room Connector (CRC). * `audio_device_to_crc` — The QoS metrics for audio received by a participant who joined the meeting via CRC. * `video_device_from_crc` — The QoS metrics for video input being sent by a participant who joined the meeting via CRC. * `video_device_to_crc` — The QoS metrics for video output being sent by a participant who joined the meeting via CRC. * `as_device_from_crc` — The QoS metrics for screen sharing by a participant who joined the meeting via CRC. * `as_device_to_crc` — The QoS metrics for screen sharing output received by a participant who joined the meeting via CRC.

    • user_name

      string — The participant's display name.

Example:

{
  "next_page_token": "uBTK3NzNksdkuCUAQaFVFd86kyOr59zg4U2",
  "page_size": 30,
  "participants": [
    {
      "id": "zJKyaiAyTNC-MWjiWC18KQ",
      "participant_id": "20161536",
      "user_name": "jchill",
      "email": "user@example.com",
      "qos": [
        {
          "type": "audio_input",
          "details": {
            "min_bitrate": "27.15kbps",
            "avg_bitrate": "27.15kbps",
            "max_bitrate": "27.15kbps",
            "min_latency": "126 ms",
            "avg_latency": "126 ms",
            "max_latency": "126 ms",
            "min_jitter": "0ms",
            "avg_jitter": "0ms",
            "max_jitter": "0ms",
            "min_loss": "0.03%",
            "avg_loss": "0.03%",
            "max_loss": "0.4%",
            "resolution": "1280*720",
            "min_frame_rate": "12 fps",
            "avg_frame_rate": "12 fps",
            "max_frame_rate": "12 fps",
            "zoom_min_cpu_usage": "0%",
            "zoom_avg_cpu_usage": "0%",
            "zoom_max_cpu_usage": "2%",
            "system_max_cpu_usage": "11%",
            "system_min_cpu_pressure_level": "normal",
            "system_avg_cpu_pressure_level": "normal",
            "system_max_cpu_pressure_level": "normal"
          }
        }
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `12702` <br> Can not access a webinar a year ago.<br> <br> **Error Code:** `200` <br> Event subscription not found. Subscribe to the Webinar Participant QoS Summary event in your Marketplace app to get access to this API. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `3001` <br> This webinar's detail info is not available.<br> The Webinar ID is not valid or the webinar has not ended yet. <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 session users QoS Summary

  • Method: GET
  • Path: /videosdk/sessions/{sessionId}/users/qos_summary
  • Tags: Video SDK Sessions

Use this API to return a list of users from past sessions and a summary of their quality of service received during the session. The data returned indicates the connection quality for sending and receiving video, audio, and shared content.

Note:

This API may return empty values for users' name responses when the account calling this API:

  • Does not have a signed HIPAA business associate agreement (BAA).
  • Is a legacy HIPAA BAA account.
  • Displays data for any users who are not part of the host's account (external users) unless they meet certain conditions.

Prerequisites:

  • A Business or higher plan.
  • Developers must subscribe to the QSS summary event to receive data from this API.

Rate Limit Label: HEAVY

Responses

Status: 200 **HTTP Status Code:** `200` Session users QoS summary returned.
Content-Type: application/json

All of:

  • next_page_token

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

  • page_size

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

  • users

    array — Information about the user.

    Items:

    • id

      string — The user's universally unique ID. This value is the same as the user's user ID if the user joins the session by logging into Zoom. If the user joins the session without logging into Zoom, this returns an empty value.

    • name

      string — The user's display name.

    • qos

      array — The summary of user's quality of service (QoS) information.

      Items:

      • details

        object — The participant QoS summary details.

        • avg_bitrate

          string — The average amount of bitrate, in Kbps.

        • avg_frame_rate

          string — The average amount of frame rate, in fps.

        • avg_jitter

          string — The average amount of jitter, in milliseconds.

        • avg_latency

          string — The average amount of latency, in milliseconds.

        • avg_loss

          string — The average amount of packet loss.

        • max_bitrate

          string — The maximum amount of bitrate, in Kbps.

        • max_frame_rate

          string — The maximum amount of frame rate, in fps.

        • max_jitter

          string — The maximum amount of jitter, in milliseconds.

        • max_latency

          string — The maximum amount of latency, in milliseconds.

        • max_loss

          string — The maximum amount of packet loss.

        • min_bitrate

          string — The minimum amount of bitrate, in Kbps.

        • min_frame_rate

          string — The minimum amount of frame rate, in fps.

        • min_jitter

          string — The minimum amount of jitter, in milliseconds.

        • min_latency

          string — The minimum amount of latency, in milliseconds.

        • min_loss

          string — The minimum amount of packet loss.

        • resolution

          string — The number of pixels in each dimension that the video camera can display.

        • system_avg_cpu_pressure_level

          string, possible values: "normal", "fair", "serious", "critical" — The system's average CPU pressure level.

        • system_max_cpu_pressure_level

          string, possible values: "critical", "serious", "fair", "normal" — The system's maximum CPU pressure level.

        • system_max_cpu_usage

          string — The system's maximum CPU usage.

        • system_min_cpu_pressure_level

          string, possible values: "normal", "fair", "serious", "critical" — The system's minimum CPU pressure level.

        • zoom_avg_cpu_usage

          string — Zoom's average CPU usage.

        • zoom_max_cpu_usage

          string — Zoom's maximum CPU usage.

        • zoom_min_cpu_usage

          string — Zoom's minimum CPU usage.

      • type

        string, possible values: "audio_input", "audio_output", "video_input", "video_output", "as_input", "as_output", "cpu_usage", "audio_device_from_crc", "audio_device_to_crc", "video_device_from_crc", "video_device_to_crc", "as_device_from_crc", "as_device_to_crc" — The type of QoS summary: * `audio_input` — The QoS metrics for audio sent by a user. * `audio_output` — The QoS metrics for audio received by a user. * `video_input` — The QoS metrics for video input sent by a user. * `video_output` — The QoS metrics for video output sent by a user. * `as_input` — The QoS metrics for screen sharing sent by a user. * `as_output` — The QoS metrics for screen sharing output received by a user. * `cpu_usage` — The QoS metrics for CPU usage. * `audio_device_from_crc` — The QoS metrics for audio sent by a user who joined the session via a Cloud Room Connector (CRC). * `audio_device_to_crc` — The QoS metrics for audio received by a user who joined the session via CRC. * `video_device_from_crc` — The QoS metrics for video input sent by a user who joined the session via CRC. * `video_device_to_crc` — The QoS metrics for video output sent by a user who joined the session via CRC. * `as_device_from_crc` — The QoS metrics for screen sharing by a user who joined the session via CRC. * `as_device_to_crc` — The QoS metrics for screen sharing output received by a user who joined the session via CRC.

    • user_key

      string — Another identifier for the user. Set with the `user_identity` key in the Video SDK JWT payload. Can be a number or characters. Maximum length of 36 characters.

Example:

{
  "next_page_token": "uBTK3NzNksdkuCUAQaFVFd86kyOr59zg4U2",
  "page_size": 30,
  "users": [
    {
      "id": "zJKyaiAyTNC-MWjiWC18KQ",
      "name": "jchill",
      "user_key": "myUserKey",
      "qos": [
        {
          "type": "audio_input",
          "details": {
            "min_bitrate": "27.15 Kbps",
            "avg_bitrate": "27.15 Kbps",
            "max_bitrate": "27.15 Kbps",
            "min_latency": "126 ms",
            "avg_latency": "126 ms",
            "max_latency": "126 ms",
            "min_jitter": "0 ms",
            "avg_jitter": "0 ms",
            "max_jitter": "0 ms",
            "min_loss": "0.03%",
            "avg_loss": "0.03%",
            "max_loss": "0.4%",
            "resolution": "1280*720",
            "min_frame_rate": "12 fps",
            "avg_frame_rate": "12 fps",
            "max_frame_rate": "12 fps",
            "zoom_min_cpu_usage": "0%",
            "zoom_avg_cpu_usage": "0%",
            "zoom_max_cpu_usage": "2%",
            "system_max_cpu_usage": "11%",
            "system_min_cpu_pressure_level": "normal",
            "system_avg_cpu_pressure_level": "normal",
            "system_max_cpu_pressure_level": "normal"
          }
        }
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).