SQL Server / Zoom API / Get meeting details
Back to Collection Items
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
DECLARE @iTmp0 int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
DECLARE @http int
-- Use "Chilkat_9_5_0.Http" for versions of Chilkat < 10.0.0
EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
DECLARE @success int
DECLARE @queryParams int
-- Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @queryParams OUT
EXEC sp_OAMethod @queryParams, 'UpdateString', @success OUT, 'type', 'live'
-- Adds the "Authorization: Bearer <access_token>" header.
EXEC sp_OASetProperty @http, 'AuthToken', '<access_token>'
DECLARE @resp int
EXEC sp_OAMethod @http, 'QuickRequestParams', @resp OUT, 'GET', 'https://api.zoom.us/v2/metrics/meetings/:meetingId', @queryParams
EXEC sp_OAGetProperty @http, 'LastMethodSuccess', @iTmp0 OUT
IF @iTmp0 = 0
BEGIN
EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @queryParams
RETURN
END
DECLARE @sbResponseBody int
-- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0
EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbResponseBody OUT
EXEC sp_OAMethod @resp, 'GetBodySb', @success OUT, @sbResponseBody
DECLARE @jResp int
-- Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jResp OUT
EXEC sp_OAMethod @jResp, 'LoadSb', @success OUT, @sbResponseBody
EXEC sp_OASetProperty @jResp, 'EmitCompact', 0
PRINT 'Response Body:'
EXEC sp_OAMethod @jResp, 'Emit', @sTmp0 OUT
PRINT @sTmp0
DECLARE @respStatusCode int
EXEC sp_OAGetProperty @resp, 'StatusCode', @respStatusCode OUT
PRINT 'Response Status Code = ' + @respStatusCode
IF @respStatusCode >= 400
BEGIN
PRINT 'Response Header:'
EXEC sp_OAGetProperty @resp, 'Header', @sTmp0 OUT
PRINT @sTmp0
PRINT 'Failed.'
EXEC @hr = sp_OADestroy @resp
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @queryParams
EXEC @hr = sp_OADestroy @sbResponseBody
EXEC @hr = sp_OADestroy @jResp
RETURN
END
EXEC @hr = sp_OADestroy @resp
-- Sample JSON response:
-- (Sample code for parsing the JSON response is shown below)
-- {
-- "uuid": "carreter@-2c9b447f3",
-- "id": 33281536,
-- "topic": "My meeting",
-- "host": "cool host",
-- "email": "example@example.com",
-- "user_type": "Pro|Webinar1000",
-- "start_time": "2007-06-16T16:55:42.078Z",
-- "end_time": "2007-06-16T16:59:42.078Z",
-- "duration": "30:00",
-- "participants": 4874645,
-- "has_pstn": false,
-- "has_voip": false,
-- "has_3rd_party_audio": false,
-- "has_video": false,
-- "has_screen_share": false,
-- "has_recording": false,
-- "has_sip": false,
-- "has_archiving": false,
-- "in_room_participants": 3
-- }
-- Sample code for parsing the JSON response...
-- Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
DECLARE @uuid nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @uuid OUT, 'uuid'
DECLARE @id int
EXEC sp_OAMethod @jResp, 'IntOf', @id OUT, 'id'
DECLARE @topic nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @topic OUT, 'topic'
DECLARE @host nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @host OUT, 'host'
DECLARE @email nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @email OUT, 'email'
DECLARE @user_type nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @user_type OUT, 'user_type'
DECLARE @start_time nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @start_time OUT, 'start_time'
DECLARE @end_time nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @end_time OUT, 'end_time'
DECLARE @duration nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @duration OUT, 'duration'
DECLARE @participants int
EXEC sp_OAMethod @jResp, 'IntOf', @participants OUT, 'participants'
DECLARE @has_pstn int
EXEC sp_OAMethod @jResp, 'BoolOf', @has_pstn OUT, 'has_pstn'
DECLARE @has_voip int
EXEC sp_OAMethod @jResp, 'BoolOf', @has_voip OUT, 'has_voip'
DECLARE @has_3rd_party_audio int
EXEC sp_OAMethod @jResp, 'BoolOf', @has_3rd_party_audio OUT, 'has_3rd_party_audio'
DECLARE @has_video int
EXEC sp_OAMethod @jResp, 'BoolOf', @has_video OUT, 'has_video'
DECLARE @has_screen_share int
EXEC sp_OAMethod @jResp, 'BoolOf', @has_screen_share OUT, 'has_screen_share'
DECLARE @has_recording int
EXEC sp_OAMethod @jResp, 'BoolOf', @has_recording OUT, 'has_recording'
DECLARE @has_sip int
EXEC sp_OAMethod @jResp, 'BoolOf', @has_sip OUT, 'has_sip'
DECLARE @has_archiving int
EXEC sp_OAMethod @jResp, 'BoolOf', @has_archiving OUT, 'has_archiving'
DECLARE @in_room_participants int
EXEC sp_OAMethod @jResp, 'IntOf', @in_room_participants OUT, 'in_room_participants'
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @queryParams
EXEC @hr = sp_OADestroy @sbResponseBody
EXEC @hr = sp_OADestroy @jResp
END
GO
Curl Command
curl -G -d "type=live"
-H "Authorization: Bearer <access_token>"
https://api.zoom.us/v2/metrics/meetings/:meetingId
Postman Collection Item JSON
{
"name": "Get meeting details",
"request": {
"auth": {
"type": "oauth2"
},
"method": "GET",
"header": [
],
"url": {
"raw": "{{baseUrl}}/metrics/meetings/:meetingId?type=live",
"host": [
"{{baseUrl}}"
],
"path": [
"metrics",
"meetings",
":meetingId"
],
"query": [
{
"key": "type",
"value": "live",
"description": "The type of meeting to query: \n* `past` — All past meetings. \n* `pastOne` — All past one-user meetings. \n* `live` - All live meetings. \n\nThis value defaults to `live`."
}
],
"variable": [
{
"key": "meetingId",
"value": "quis officia in reprehenderit",
"description": "(Required) The meeting's ID or universally unique ID (UUID). \n* If you provide a meeting ID, the API will return a response for the latest meeting instance. \n* If you provide a meeting UUID that begins with a `/` character or contains the `//` characters, you **must** double-encode the meeting UUID before making an API request."
}
]
},
"description": "Get details on live or past meetings. This overview will show if features such as audio, video, screen sharing, and recording were being used in the meeting. You can also see the license types of each user on your account.<br> You can specify a monthly date range for the dashboard data using the `from` and `to` query parameters. The month should fall within the last six months. <br>\n**Scopes:** `dashboard_meetings:read:admin`<br>\n **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `Heavy`<br>\n**Prerequisites:** <br>\n* Business or a higher plan."
},
"response": [
{
"name": "**HTTP Status Code:** `200`<br>\nMeeting returned.<br>\nOnly available for paid accounts that have enabled the dashboard feature.",
"originalRequest": {
"method": "GET",
"header": [
{
"description": "Added as a part of security scheme: oauth2",
"key": "Authorization",
"value": "<token>"
}
],
"url": {
"raw": "{{baseUrl}}/metrics/meetings/:meetingId?type=live",
"host": [
"{{baseUrl}}"
],
"path": [
"metrics",
"meetings",
":meetingId"
],
"query": [
{
"key": "type",
"value": "live"
}
],
"variable": [
{
"key": "meetingId",
"value": "quis officia in reprehenderit",
"description": "(Required) The meeting's ID or universally unique ID (UUID). \n* If you provide a meeting ID, the API will return a response for the latest meeting instance. \n* If you provide a meeting UUID that begins with a `/` character or contains the `//` characters, you **must** double-encode the meeting UUID before making an API request."
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"uuid\": \"carreter@-2c9b447f3\",\n \"id\": 33281536,\n \"topic\": \"My meeting\",\n \"host\": \"cool host\",\n \"email\": \"example@example.com\",\n \"user_type\": \"Pro|Webinar1000\",\n \"start_time\": \"2007-06-16T16:55:42.078Z\",\n \"end_time\": \"2007-06-16T16:59:42.078Z\",\n \"duration\": \"30:00\",\n \"participants\": 4874645,\n \"has_pstn\": false,\n \"has_voip\": false,\n \"has_3rd_party_audio\": false,\n \"has_video\": false,\n \"has_screen_share\": false,\n \"has_recording\": false,\n \"has_sip\": false,\n \"has_archiving\": false,\n \"in_room_participants\": 3\n}"
},
{
"name": "**Error Code:** `300`<br>\nCan not access webinar info, {meetingId}.",
"originalRequest": {
"method": "GET",
"header": [
{
"description": "Added as a part of security scheme: oauth2",
"key": "Authorization",
"value": "<token>"
}
],
"url": {
"raw": "{{baseUrl}}/metrics/meetings/:meetingId?type=live",
"host": [
"{{baseUrl}}"
],
"path": [
"metrics",
"meetings",
":meetingId"
],
"query": [
{
"key": "type",
"value": "live"
}
],
"variable": [
{
"key": "meetingId",
"value": "quis officia in reprehenderit",
"description": "(Required) The meeting's ID or universally unique ID (UUID). \n* If you provide a meeting ID, the API will return a response for the latest meeting instance. \n* If you provide a meeting UUID that begins with a `/` character or contains the `//` characters, you **must** double-encode the meeting UUID before making an API request."
}
]
}
},
"status": "Multiple Choices",
"code": 300,
"_postman_previewlanguage": "text",
"header": [
{
"key": "Content-Type",
"value": "text/plain"
}
],
"cookie": [
],
"body": ""
},
{
"name": "**HTTP Status Code:** `404`<br>\n**Error Code:** `3001`<br>\nMeeting ID is invalid or the meeting has not ended yet.<br>\nThis meeting's details are not available.\n",
"originalRequest": {
"method": "GET",
"header": [
{
"description": "Added as a part of security scheme: oauth2",
"key": "Authorization",
"value": "<token>"
}
],
"url": {
"raw": "{{baseUrl}}/metrics/meetings/:meetingId?type=live",
"host": [
"{{baseUrl}}"
],
"path": [
"metrics",
"meetings",
":meetingId"
],
"query": [
{
"key": "type",
"value": "live"
}
],
"variable": [
{
"key": "meetingId",
"value": "quis officia in reprehenderit",
"description": "(Required) The meeting's ID or universally unique ID (UUID). \n* If you provide a meeting ID, the API will return a response for the latest meeting instance. \n* If you provide a meeting UUID that begins with a `/` character or contains the `//` characters, you **must** double-encode the meeting UUID before making an API request."
}
]
}
},
"status": "Not Found",
"code": 404,
"_postman_previewlanguage": "text",
"header": [
{
"key": "Content-Type",
"value": "text/plain"
}
],
"cookie": [
],
"body": ""
}
]
}