Title: | Connect to Your 'Zoom' Data |
Version: | 0.4.0 |
Description: | Facilitates making a connection to the 'Zoom' API and executing various queries. You can use it to get data on 'Zoom' webinars and 'Zoom' meetings. The 'Zoom' documentation is available at https://developers.zoom.us/docs/api/. This package is not supported by 'Zoom' (owner of the software). |
URL: | https://github.com/chrisumphlett/zoomr |
BugReports: | https://github.com/chrisumphlett/zoomr/issues |
License: | CC0 |
Encoding: | UTF-8 |
Imports: | dplyr (≥ 1.0.0), magrittr (≥ 1.5), jsonlite (≥ 1.6.1), httr (≥ 1.4.1), glue (≥ 1.4.2), rlang (≥ 1.0.4), tidyr (≥ 1.1.4), janitor (≥ 2.1.0), tidyselect (≥ 1.1.1), purrr (≥ 0.3.4) |
RoxygenNote: | 7.3.2 |
NeedsCompilation: | no |
Packaged: | 2025-07-28 13:47:48 UTC; c.umphlett |
Author: | Chris Umphlett [aut, cre], Paul Schmidt [ctb] |
Maintainer: | Chris Umphlett <christopher.umphlett@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2025-07-28 14:20:02 UTC |
Generate Query Parameters for specific API query
Description
This is based on the 'generate_url()' function.
Usage
generate_query_params(query, ...)
Arguments
query |
string. The specific API query desired. Generally named the same as associated functions but without underscores, so the request for 'getwebinardetails()' would be be "getwebinardetails". |
... |
Named query parameter elements for desired api endpoint, such as 'next_page_token'. |
Value
Query parameters to be passed to querying tools
Generate URL for specific API query by type and (if appropriate) ID
Description
This is based on the function of the same name in the qualtRics package.
Usage
generate_url(query, ...)
Arguments
query |
string. The specific API query desired. Generally named the same as associated functions but without underscores, so the request for 'getwebinardetails()' would be be "getwebinardetails". |
... |
Named elements of URL for specific query desired, such as 'webinar_id'. |
Value
Endpoint URL to be passed to querying tools
Get Access token
Description
Request a new token each time user executes a package function.
Usage
get_access_token(account_id, client_id, client_secret)
Arguments
account_id |
Zoom API app Account Id. |
client_id |
Zoom API app Client Id. |
client_secret |
Zoom API app Client Secret. |
Get All Users in an Account
Description
Get all users in a zoom account. The user id is required to get a list of webinars hosted by a particular user.
Usage
get_account_users(account_id, client_id, client_secret)
Arguments
account_id |
Account Id granted by the Zoom developer app. |
client_id |
Client Id granted by the Zoom developer app. |
client_secret |
Client secret granted by the Zoom developer app. |
Value
A data frame with the list of all users in the account.
See Also
See <https://marketplace.zoom.us/docs/api-reference/zoom-api/> for documentation on the Zoom API.
Examples
## Not run:
dat <- get_account_users(your_account_id,
your_client_id,
your_client_secret)
## End(Not run)
Get Meeting Details
Description
Get metadata about a single meeting including participant count, duration, and other meeting statistics.
Usage
get_meeting_details(meeting_id, account_id, client_id, client_secret)
Arguments
meeting_id |
Zoom Meeting ID (from list_meetings). |
account_id |
Account ID granted by the Zoom developer app. |
client_id |
Client ID granted by the Zoom developer app. |
client_secret |
Client secret granted by the Zoom developer app. |
Details
This function retrieves basic meeting metadata. For more comprehensive meeting analytics and participant data, users with Pro+ Zoom accounts can access the Reports API endpoints which provide enhanced meeting details and participant information.
Value
A data frame with the metadata about a meeting. The type
column contains integer codes describing the meeting structure/format,
while meeting_format_label
provides human-readable descriptions:
1 = Instant meeting
2 = Scheduled meeting
3 = Recurring meeting (no fixed time)
8 = Recurring meeting (fixed time)
10 = Screen share only meeting
See Also
Official Zoom API documentation: https://developers.zoom.us/docs/api/meetings/#tag/meetings/get/meetings/{meetingId}
Examples
## Not run:
dat <- get_meeting_details(meeting_id = "81753923023",
your_account_id,
your_client_id,
your_client_secret)
## End(Not run)
Get Meeting Format Labels
Description
Returns a named vector mapping Zoom meeting type codes to human-readable labels.
Usage
get_meeting_format_labels()
Value
A named character vector where names are meeting type codes (as strings) and values are human-readable descriptions.
Get Meeting Participants
Description
Get participant information from all instances of a meeting. For recurring meetings, this function automatically retrieves participants from all occurrences, making it ideal for workshop attendance tracking.
Usage
get_meeting_participants(
meeting_id,
account_id,
client_id,
client_secret,
page_size = 300
)
Arguments
meeting_id |
Zoom Meeting ID (from list_meetings). |
account_id |
Account ID granted by the Zoom developer app. |
client_id |
Client ID granted by the Zoom developer app. |
client_secret |
Client secret granted by the Zoom developer app. |
page_size |
Number of records per page. Default is 300. |
Details
Important Limitations:
Meeting instances older than 15 months cannot be retrieved
This function works with all Zoom account types
Enhanced Features for Pro+ Users: Users with Pro+ Zoom accounts can access additional Reports API endpoints that provide more detailed participant analytics, custom date ranges, and enhanced filtering capabilities.
Value
A data frame with data on each participant at a meeting. Includes an 'instance_date' column to identify which occurrence each participant attended (NA for non-recurring meetings).
See Also
Official Zoom API documentation: https://developers.zoom.us/docs/api/meetings/#tag/meetings/get/past_meetings/{meetingId}/instances and https://developers.zoom.us/docs/api/meetings/#tag/reports/get/report/meetings/{meetingUuid}/participants
Examples
## Not run:
# Get participants from all instances of a meeting
dat <- get_meeting_participants(
meeting_id = "81753923023",
your_account_id,
your_client_id,
your_client_secret)
## End(Not run)
Get Webinar Panelists
Description
Get the list of attendees who were also panelists from a single webinar.
Usage
get_panelists(webinar_id, account_id, client_id, client_secret)
Arguments
webinar_id |
Zoom Webinar Id, typically an 11 digit number. |
account_id |
Account Id granted by the Zoom developer app. |
client_id |
Client Id granted by the Zoom developer app. |
client_secret |
Client secret granted by the Zoom developer app. |
Value
A data frame with the list of panelists from that webinar.
See Also
See <https://marketplace.zoom.us/docs/api-reference/zoom-api/> for documentation on the Zoom API.
Examples
## Not run:
dat <- get_webinar_panelists(webinar_id = "99911112222",
your_account_id,
your_client_id,
your_client_secret)
## End(Not run)
Get Webinar Registration Question Responses
Description
Get registration question answers from all registrants for a single webinar.
Usage
get_registration_questions(
webinar_id,
account_id,
client_id,
client_secret,
registrant_status = c("approved")
)
Arguments
webinar_id |
Zoom Webinar Id, typically an 11 digit number. |
account_id |
Account Id granted by the Zoom developer app. |
client_id |
Client Id granted by the Zoom developer app. |
client_secret |
Client secret granted by the Zoom developer app. |
registrant_status |
One or more of "approved", "pending", or "denied". Default is "approved" only. |
Value
A data frame with the registration question answers.
See Also
See <https://marketplace.zoom.us/docs/api-reference/zoom-api/> for documentation on the Zoom API.
Examples
## Not run:
dat <- get_registration_questions(webinar_id = "99911112222",
your_account_id,
your_client_id,
your_client_secret,
c("approved", "denied", "pending"))
## End(Not run)
Get Webinar Tracking Sources
Description
Get a summary of registrations and visitors by tracking source for a specific webinar.
Usage
get_tracking_sources(webinar_id, account_id, client_id, client_secret)
Arguments
webinar_id |
Zoom Webinar Id, typically an 11 digit number. |
account_id |
Account Id granted by the Zoom developer app. |
client_id |
Client Id granted by the Zoom developer app. |
client_secret |
Client secret granted by the Zoom developer app. |
Value
A data frame with the list of panelists from that webinar.
See Also
See <https://marketplace.zoom.us/docs/api-reference/zoom-api/> for documentation on the Zoom API.
Examples
## Not run:
dat <- get_tracking_sources(webinar_id = "99911112222",
your_account_id,
your_client_id,
your_client_secret)
## End(Not run)
Get Webinar Details
Description
Get metadata about a single webinar.
Usage
get_webinar_details(webinar_id, account_id, client_id, client_secret)
Arguments
webinar_id |
Zoom Webinar Id, typically an 11 digit number. |
account_id |
Account Id granted by the Zoom developer app. |
client_id |
Client Id granted by the Zoom developer app. |
client_secret |
Client secret granted by the Zoom developer app. |
Value
A data frame with the metadata about a webinar.
See Also
See <https://marketplace.zoom.us/docs/api-reference/zoom-api/> for documentation on the Zoom API.
Examples
## Not run:
dat <- get_webinar_details(webinar_id = "99911112222",
your_account_id,
your_client_id,
your_client_secret)
## End(Not run)
Get Webinar Participants
Description
Get participant info about a single webinar.
Usage
get_webinar_participants(webinar_id, account_id, client_id, client_secret)
Arguments
webinar_id |
Zoom Webinar Id, typically an 11 digit number. |
account_id |
Account Id granted by the Zoom developer app. |
client_id |
Client Id granted by the Zoom developer app. |
client_secret |
Client secret granted by the Zoom developer app. |
Value
A data frame with data on each participant at a webinar.
See Also
See <https://marketplace.zoom.us/docs/api-reference/zoom-api/> for documentation on the Zoom API.
Examples
## Not run:
dat <- get_webinar_participants(webinar_id = "99911112222",
your_account_id,
your_client_id,
your_client_secret)
## End(Not run)
Get Webinar Polls
Description
Get the polls summary from a single webinar.
Usage
get_webinar_polls(webinar_id, account_id, client_id, client_secret)
Arguments
webinar_id |
Zoom Webinar Id, typically an 11 digit number. |
account_id |
Account Id granted by the Zoom developer app. |
client_id |
Client Id granted by the Zoom developer app. |
client_secret |
Client secret granted by the Zoom developer app. |
Value
A data frame with poll results from a webinar.
See Also
See <https://marketplace.zoom.us/docs/api-reference/zoom-api/> for documentation on the Zoom API.
Examples
## Not run:
dat <- get_webinar_polls(webinar_id = "99911112222",
your_account_id,
your_client_id,
your_client_secret)
## End(Not run)
Get Webinar Q & A
Description
Get the Q&A summary from a single webinar.
Usage
get_webinar_qanda(webinar_id, account_id, client_id, client_secret)
Arguments
webinar_id |
Zoom Webinar Id, typically an 11 digit number. |
account_id |
Account Id granted by the Zoom developer app. |
client_id |
Client Id granted by the Zoom developer app. |
client_secret |
Client secret granted by the Zoom developer app. |
Value
A data frame with all of the Q&A data from a webinar.
See Also
See <https://marketplace.zoom.us/docs/api-reference/zoom-api/> for documentation on the Zoom API.
Examples
## Not run:
dat <- get_webinar_qanda(webinar_id = "99911112222",
your_account_id,
your_client_id,
your_client_secret)
## End(Not run)
Get Webinar Registrants
Description
Get registrant info about a single webinar.
Usage
get_webinar_registrants(
webinar_id,
account_id,
client_id,
client_secret,
registrant_status = c("approved")
)
Arguments
webinar_id |
Zoom Webinar Id, typically an 11 digit number. |
account_id |
Account Id granted by the Zoom developer app. |
client_id |
Client Id granted by the Zoom developer app. |
client_secret |
Client secret granted by the Zoom developer app. |
registrant_status |
One or more of "approved", "pending", or "denied". Default is "approved" only. |
Value
A data frame with data on all the registrants for a webinar.
See Also
See <https://marketplace.zoom.us/docs/api-reference/zoom-api/> for documentation on the Zoom API.
Examples
## Not run:
dat <- get_webinar_registrants(webinar_id = "99911112222",
your_account_id,
your_client_id,
your_client_secret,
c("approved", "denied", "pending"))
## End(Not run)
Get List of Meetings for a User
Description
Get list of meetings for a User. This function retrieves meeting IDs and UUIDs to pass into other functions for detailed analysis.
Usage
list_meetings(
user_id,
account_id,
client_id,
client_secret,
meeting_type = "previous_meetings",
page_size = 300
)
Arguments
user_id |
Zoom User ID or email address. |
account_id |
Account ID granted by the Zoom developer app. |
client_id |
Client ID granted by the Zoom developer app. |
client_secret |
Client secret granted by the Zoom developer app. |
meeting_type |
Type of meetings to retrieve. Options are:
|
page_size |
Number of records per page. Maximum 300, default 300. |
Details
Important Limitations:
-
6-month historical limit: When using "upcoming", "upcoming_meetings", or "previous_meetings", only meetings from the last 6 months are returned
-
Scheduled meetings only: Does not return instant meetings
-
Unexpired meetings only: Only returns meetings that haven't expired
For Enhanced Historical Data Access:
Users with Pro+ Zoom accounts can access the Reports API endpoint
/report/users/{userId}/meetings
which offers:
Date range filtering with
from
andto
parametersEnhanced meeting details including participant information
Better historical data retrieval capabilities
Value
A data frame with meetings hosted by the specified user.
The meetings_type
column contains integer codes describing the
meeting structure/format, while meeting_format_label
provides
human-readable descriptions:
1 = Instant meeting
2 = Scheduled meeting
3 = Recurring meeting (no fixed time)
8 = Recurring meeting (fixed time)
10 = Screen share only meeting
See Also
Official Zoom API documentation: https://developers.zoom.us/docs/api/meetings/#tag/meetings/get/users/{userId}/meetings
Examples
## Not run:
dat <- list_meetings(user_id = "user_id_string",
your_account_id,
your_client_id,
your_client_secret,
meeting_type = "previous_meetings")
## End(Not run)
Get List of Webinars for a User.
Description
Get list of webinars for a User. This is used to get the webinar Id's to pass into other functions.
Usage
list_webinars(user_id, account_id, client_id, client_secret)
Arguments
user_id |
Zoom User Id. |
account_id |
Account Id granted by the Zoom developer app. |
client_id |
Client Id granted by the Zoom developer app. |
client_secret |
Client secret granted by the Zoom developer app. |
Value
A data frame with all of the webinars hosted by a specific user.
See Also
See <https://marketplace.zoom.us/docs/api-reference/zoom-api/> for documentation on the Zoom API.
Examples
## Not run:
dat <- get_webinar_details(user_id = "user_id_string",
your_account_id,
your_client_id,
your_client_secret)
## End(Not run)
Send httr requests to Zoom API
Description
This is based on the function of the same name in the qualtRics package.
Usage
zoom_api_request(
verb = c("GET", "POST"),
url = url,
body = NULL,
as = c("parsed", "raw"),
token,
query_params = query_params,
...
)
Arguments
verb |
Type of request to be sent (@seealso [httr::VERB()]) |
url |
Zoom endpoint URL created by [generate_url()] functions |
... |
arguments passed to httr::content when parsing |
Checks responses against Zoom response codes and returns error message.
Description
Checks responses against Zoom response codes and returns error message.
Usage
zoom_response_codes(res)
Arguments
res |
results object from httr |