# Zoom API for user meetings QOS

**URL:** <https://devforum.zoom.us/t/zoom-api-for-user-meetings-qos/28107>\
**Category:** API and Webhooks\
**Created:** [August 25, 2020, 2:07pm UTC](https://devforum.zoom.us/t/zoom-api-for-user-meetings-qos/28107 "2020-08-25T14:07:32Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![lauren.olphert](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/lauren.olphert/32/13525_2.png) [@lauren.olphert](https://devforum.zoom.us/u/lauren.olphert)\
**Post date:** [September 1, 2020, 10:14am UTC](https://devforum.zoom.us/t/zoom-api-for-user-meetings-qos/28107/4 "2020-09-01T10:14:34Z")

</div>

Hi @tommy,

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

 ![UserQOS-empty](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/b/b363f9ce30739ed6feef58dfb7eaa25da651e67b.png)

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 🙂

$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](https://api.zoom.us/v2/metrics/meetings/%24ListOfMeetingId/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  
$requests++  
$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
    }
```

---

_[View the full topic](https://devforum.zoom.us/t/zoom-api-for-user-meetings-qos/28107)._
