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:

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:

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:

  • "previous_meetings" = All previous meetings (default)

  • "scheduled" = All valid previous, live, and upcoming scheduled meetings

  • "upcoming" = All upcoming meetings, including live meetings

  • "upcoming_meetings" = All upcoming meetings, including live meetings

  • "live" = Currently ongoing meetings

page_size

Number of records per page. Maximum 300, default 300.

Details

Important Limitations:

For Enhanced Historical Data Access: Users with Pro+ Zoom accounts can access the Reports API endpoint /report/users/{userId}/meetings which offers:

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:

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