Zoom API for user meetings QOS

We are trying to get our API to pass back QOS information from meetings we are holding via powershell scripting and using the JWT token to connect with the API, the API seems to be connecting and retrieving the information- however, the first half of the response always seems to be empty. At the minuet we are working on audio input/output QOS ($response.participants.user_qos.audio_input.jitter) and the table results show empty for the first half of the script and then start returning values (Please see attached image). Is this expected behavior or is there something missing?

Which App Type (OAuth / Chatbot / JWT / Webhook)?

Screenshots (If applicable)
If applicable, add screenshots to help explain your problem.


Hey @lauren.olphert,

This is not expected. Can you share the script you are using or the meeting UUID? Maybe your script is inserting an empty object at the start of the array?


Hi @tommy,

It actually looks like its coming back from the api? When I run only the response this is what I’m seeing

Below is a snippet of the code i’m using - please note that I have put in foreach statements to try and get rid of the blank responses from the api- I’ve put in a meeting id of 123456 for example purposes :slight_smile:

$ListOfMeetingId = “1234567”
#foreach($meetinguuid in $ListOfMeetingId){
Write-Output "Meeting ID: " $ListOfMeetingId
$headers = New-ZoomHeaders -ApiKey $ApiKey -ApiSecret $ApiSecret
[int]$requests = 0
$type = “live”
#$ConnectionType = @()
$meetingId = $ListOfMeetingId
$Request = [System.UriBuilder]“https://api.zoom.us/v2/metrics/meetings/$ListOfMeetingId/participants/qos
$query = [System.Web.HttpUtility]::ParseQueryString([String]::Empty)
$Request.Query = $query.ToString()
try {
$response = Invoke-RestMethod -Uri $request.Uri -Headers $headers -Method GET
$nextPageToken = $response.next_page_token
$PageCount2 = $response.page_count
Write-Output “UserName:” $response.participants.user_name
Write-Output “NetworkType:” $response.participants.network_type
##Trigger if seeing SSL Proxy
foreach($audio in $response.participants.user_qos){
if($audio.audio_input -inotmatch “bitrate=;”){
Write-Output “Audio Input:” $audio.audio_input | Format-Table
if($audio.audio_output -inotmatch “bitrate=;”){
Write-Output “Audio Output:” $audio.audio_output | Format-Table
#Write-Output “Jitter Output:” $response.participants.user_qos.audio_input.jitter
#$UserJitterForMeeting += $response.participants.user_qos.audio_input.jitter

        } catch {
        Write-Error -Message "$($_.Exception.Message)" -ErrorId $_.Exception.Code -Category InvalidOperation

Hey @lauren.olphert,

Thanks for the additional details. Can you have the JWT App Owner check the API call logs here to see if the response body has the empty data?

Let me know what you find! :slight_smile:


Hi @tommy ! So from looking at the JWT call logs… it looks like they are coming through with no information attached :frowning:

Hey @lauren.olphert,

Thanks so much for double checking those logs—I’ve gone ahead and raised this with our Engineering team to have a closer look. I should hear back from them shortly and will be sure to update you here! (ZOOM-194537)


I just DM’d you for some additional details when you have a chance, @lauren.olphert!


This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.