Foxpro / Zoom API / Get meeting quality scores
Back to Collection Items
LOCAL loHttp
LOCAL lnSuccess
LOCAL loQueryParams
LOCAL loResp
LOCAL loSbResponseBody
LOCAL loJResp
LOCAL lnRespStatusCode
LOCAL lnGood
LOCAL lnFair
LOCAL lnPoor
LOCAL lnBad
LOCAL lnVideoGood
LOCAL lnVideoFair
LOCAL lnVideoPoor
LOCAL lnVideoBad
LOCAL lnScreen_shareGood
LOCAL lnScreen_shareFair
LOCAL lnScreen_sharePoor
LOCAL lnScreen_shareBad
LOCAL lcFrom
LOCAL lcV_to
LOCAL i
LOCAL lnCount_i
* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Http')
loHttp = CreateObject('Chilkat.Http')
* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject')
loQueryParams = CreateObject('Chilkat.JsonObject')
loQueryParams.UpdateString("from","1989-05-07")
loQueryParams.UpdateString("to","1989-05-07")
loQueryParams.UpdateString("type","meeting")
* Adds the "Authorization: Bearer <access_token>" header.
loHttp.AuthToken = "<access_token>"
loResp = loHttp.QuickRequestParams("GET","https://api.zoom.us/v2/metrics/quality",loQueryParams)
IF (loHttp.LastMethodSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loHttp
RELEASE loQueryParams
CANCEL
ENDIF
* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringBuilder')
loSbResponseBody = CreateObject('Chilkat.StringBuilder')
loResp.GetBodySb(loSbResponseBody)
* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject')
loJResp = CreateObject('Chilkat.JsonObject')
loJResp.LoadSb(loSbResponseBody)
loJResp.EmitCompact = 0
? "Response Body:"
? loJResp.Emit()
lnRespStatusCode = loResp.StatusCode
? "Response Status Code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode >= 400) THEN
? "Response Header:"
? loResp.Header
? "Failed."
RELEASE loResp
RELEASE loHttp
RELEASE loQueryParams
RELEASE loSbResponseBody
RELEASE loJResp
CANCEL
ENDIF
RELEASE loResp
* Sample JSON response:
* (Sample code for parsing the JSON response is shown below)
* {
* "from": "2019-02-28",
* "to": "2019-03-28",
* "quality": [
* {
* "audio": {
* "good": 13,
* "fair": 2,
* "poor": 1,
* "bad": 0
* },
* "video": {
* "good": 16,
* "fair": 0,
* "poor": 0,
* "bad": 0
* },
* "screen_share": {
* "good": 6,
* "fair": 4,
* "poor": 3,
* "bad": 3
* }
* }
* ]
* }
* Sample code for parsing the JSON response...
* Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
lcFrom = loJResp.StringOf("from")
lcV_to = loJResp.StringOf("to")
i = 0
lnCount_i = loJResp.SizeOfArray("quality")
DO WHILE i < lnCount_i
loJResp.I = i
lnGood = loJResp.IntOf("quality[i].audio.good")
lnFair = loJResp.IntOf("quality[i].audio.fair")
lnPoor = loJResp.IntOf("quality[i].audio.poor")
lnBad = loJResp.IntOf("quality[i].audio.bad")
lnVideoGood = loJResp.IntOf("quality[i].video.good")
lnVideoFair = loJResp.IntOf("quality[i].video.fair")
lnVideoPoor = loJResp.IntOf("quality[i].video.poor")
lnVideoBad = loJResp.IntOf("quality[i].video.bad")
lnScreen_shareGood = loJResp.IntOf("quality[i].screen_share.good")
lnScreen_shareFair = loJResp.IntOf("quality[i].screen_share.fair")
lnScreen_sharePoor = loJResp.IntOf("quality[i].screen_share.poor")
lnScreen_shareBad = loJResp.IntOf("quality[i].screen_share.bad")
i = i + 1
ENDDO
RELEASE loHttp
RELEASE loQueryParams
RELEASE loSbResponseBody
RELEASE loJResp
Curl Command
curl -G -d "from=1989-05-07"
-d "to=1989-05-07"
-d "type=meeting"
-H "Authorization: Bearer <access_token>"
https://api.zoom.us/v2/metrics/quality
Postman Collection Item JSON
{
"name": "Get meeting quality scores",
"request": {
"auth": {
"type": "oauth2"
},
"method": "GET",
"header": [
],
"url": {
"raw": "{{baseUrl}}/metrics/quality?from=1989-05-07&to=1989-05-07&type=meeting",
"host": [
"{{baseUrl}}"
],
"path": [
"metrics",
"quality"
],
"query": [
{
"key": "from",
"value": "1989-05-07",
"description": "(Required) Start date in 'yyyy-mm-dd' format. The date range defined by the \"from\" and \"to\" parameters should only be one month as the report includes only one month worth of data at once."
},
{
"key": "to",
"value": "1989-05-07",
"description": "(Required) End date."
},
{
"key": "type",
"value": "meeting",
"description": "The type of meeting quality score to query: \n* `meeting` — Query by meetings. \n* `participants` — Query by meeting participants."
}
]
},
"description": "Use this API to return [meeting quality score](https://support.zoom.us/hc/en-us/articles/360061244651-Meeting-quality-scores-and-network-alerts-on-Dashboard) information. Meeting quality scores are based on the mean opinion score (MOS). The MOS measures a meeting's quality on a scale of \"Good\" (5-4), \"Fair\" (4-3), \"Poor\" (3-2), or \"Bad\" (2-1). \n\n**Scopes:** `dashboard_home:read:admin` <br> **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `Heavy` \n\n**Prerequisites:** \n* A Business or a higher plan."
},
"response": [
{
"name": "**HTTP Status Code:** `200`<br>\nMeeting quality returned",
"originalRequest": {
"method": "GET",
"header": [
{
"description": "Added as a part of security scheme: oauth2",
"key": "Authorization",
"value": "<token>"
}
],
"url": {
"raw": "{{baseUrl}}/metrics/quality?from=1989-05-07&to=1989-05-07&type=meeting",
"host": [
"{{baseUrl}}"
],
"path": [
"metrics",
"quality"
],
"query": [
{
"key": "from",
"value": "1989-05-07"
},
{
"key": "to",
"value": "1989-05-07"
},
{
"key": "type",
"value": "meeting"
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"from\": \"2019-02-28\",\n \"to\": \"2019-03-28\",\n \"quality\": [\n {\n \"audio\": {\n \"good\": 13,\n \"fair\": 2,\n \"poor\": 1,\n \"bad\": 0\n },\n \"video\": {\n \"good\": 16,\n \"fair\": 0,\n \"poor\": 0,\n \"bad\": 0\n },\n \"screen_share\": {\n \"good\": 6,\n \"fair\": 4,\n \"poor\": 3,\n \"bad\": 3\n }\n }\n ]\n}"
}
]
}