Generated banner for Build Zoom Rest API App
Generated logo for Build Zoom Rest API App

Build Zoom Rest API App

OpenAIOfficialCreated by ZoomDistributed by OpenAI

  • Skill
  • Tool integration
  • Software development
  • MIT
  • Medium risk

From the author

Use when calling REST APIs.
— the description by Zoom

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides a structured approach to interacting with the Zoom REST API. It offers guidance on selecting appropriate authentication flows, managing resources such as meetings and users, and implementing robust API interaction patterns like pagination and rate-limit handling. It includes reference documentation for various Zoom product areas, including account management and AI Companion services, to assist developers in building API-integrated applications.

What it does

  • Provides endpoint inventories for Zoom API product areas.
  • Outlines authentication requirements for user-level, account-level, and server-to-server workflows.
  • Defines patterns for implementing API wrappers with pagination and retry logic.
  • Offers guidance on webhook processing, including signature verification.
  • Assists in troubleshooting common API issues like scope mismatches and rate limits.

When to use it

  • When developing applications that need to programmatically manage Zoom meetings, users, or recordings.
  • When integrating Zoom account settings or dashboard metrics into custom software.
  • When setting up event-driven workflows using Zoom webhooks.
  • When debugging authentication or scope-related errors during Zoom API integration.

Advantages

  • Centralizes access to official Zoom API endpoint documentation.
  • Standardizes the implementation of API interaction patterns.
  • Clarifies the selection of correct authentication scopes for different API operations.
  • Provides a clear methodology for handling API rate limits and resource management.

Usage examples

“How do I list meeting participants using the Zoom API?”
The agent provides the correct endpoint path from the dashboard references and explains the necessary OAuth scopes and pagination requirements.
“What authentication should I use for an account-level Zoom integration?”
The agent guides you through the account-level OAuth flow requirements as defined in the authentication documentation.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/openai/build-zoom-rest-api-app/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip build-zoom-rest-api-app.zip -d .agents/skills

Documentation by Zoom

Build Zoom REST API App

Use this skill when the task needs deterministic Zoom API calls or resource management from application code.

Workflow

  1. Define the resource and actor: user, meeting, webinar, recording, docs, chat, phone, account, or admin-level workflow.

  2. Select the endpoint and required scopes from the reference files before coding.

  3. Confirm auth fit: user-level OAuth for user-owned resources, account-level OAuth for admin workflows, and only use server-to-server OAuth where the target API documents support for it.

  4. Implement narrow API wrappers with explicit pagination, retry, idempotency, and rate-limit handling.

  5. Treat webhook processing as a separate event-ingestion path with signature verification and replay protection.

  6. Debug by checking token audience, missing scopes, resource ownership, account settings, API enablement, and rate-limit headers.

References

Files

references/meetings.md

Zoom Meetings API

Authoritative endpoint inventory for Meetings. This file mirrors the official Zoom API Hub OpenAPI document for this product area.

Canonical Source

Notes

  • Endpoint methods and paths below are generated from the official Zoom API Hub paths object.

  • Scope names are defined per operation and frequently use granular scope names. Check the API Hub operation page for the exact scopes before implementation.

  • Use this file for endpoint discovery and inventory. Use ../examples/ for orchestration patterns, not as the canonical source of path names.

Coverage

MetricValue
Endpoint operations183
Path templates128
Tags19

Tag Index

TagOperations
Archiving6
Cloud Recording17
Devices13
H323 Devices4
In-Meeting Apps2
In-Meeting Features5
Invitation & Registration10
Live streaming4
Meetings13
PAC1
Polls7
Reports23
SIP Phone4
Summaries3
Surveys3
Templates2
Tracking Field5
TSP8
Webinars53

Endpoints by Tag

Archiving
MethodEndpointSummaryOperation ID
GET/archive_filesList archived fileslistArchivedFiles
GET/archive_files/statisticsGet archived file statisticsgetArchivedFileStatistics
PATCH/archive_files/{fileId}Update an archived file's auto-delete statusupdateArchivedFile
GET/meetings/{meetingId}/jointoken/local_archivingGet a meeting's archive token for local archivingmeetingLocalArchivingArchiveToken
DELETE/past_meetings/{meetingUUID}/archive_filesDelete a meeting's archived filesdeleteArchivedFiles
GET/past_meetings/{meetingUUID}/archive_filesGet a meeting's archived filesgetArchivedFiles
Cloud Recording
MethodEndpointSummaryOperation ID
DELETE/meetings/{meetingId}/recordingsDelete meeting or webinar recordingsrecordingDelete
GET/meetings/{meetingId}/recordingsGet meeting recordingsrecordingGet
GET/meetings/{meetingId}/recordings/analytics_detailsGet a meeting or webinar recording's analytics detailsanalytics_details
GET/meetings/{meetingId}/recordings/analytics_summaryGet a meeting or webinar recording's analytics summaryanalytics_summary
GET/meetings/{meetingId}/recordings/registrantsList recording registrantsmeetingRecordingRegistrants
POST/meetings/{meetingId}/recordings/registrantsCreate a recording registrantmeetingRecordingRegistrantCreate
GET/meetings/{meetingId}/recordings/registrants/questionsGet registration questionsrecordingRegistrantsQuestionsGet
PATCH/meetings/{meetingId}/recordings/registrants/questionsUpdate registration questionsrecordingRegistrantQuestionUpdate
PUT/meetings/{meetingId}/recordings/registrants/statusUpdate a registrant's statusmeetingRecordingRegistrantStatus
GET/meetings/{meetingId}/recordings/settingsGet meeting recording settingsrecordingSettingUpdate
PATCH/meetings/{meetingId}/recordings/settingsUpdate meeting recording settingsrecordingSettingsUpdate
DELETE/meetings/{meetingId}/recordings/{recordingId}Delete a recording file for a meeting or webinarrecordingDeleteOne
PUT/meetings/{meetingId}/recordings/{recordingId}/statusRecover a single recordingrecordingStatusUpdateOne
DELETE/meetings/{meetingId}/transcriptDelete a meeting or webinar transcriptDeleteMeetingTranscript
GET/meetings/{meetingId}/transcriptGet a meeting transcriptGetMeetingTranscript
PUT/meetings/{meetingUUID}/recordings/statusRecover meeting recordingsrecordingStatusUpdate
GET/users/{userId}/recordingsList all recordingsrecordingsList
Devices
MethodEndpointSummaryOperation ID
GET/devicesList deviceslistDevices
POST/devicesAdd a new deviceaddDevice
GET/devices/groupsGet ZDM group infoGetzdmgroupinfo
POST/devices/zpa/assignmentAssign a device to a user or commonareaAssigndevicetoauser/commonarea
GET/devices/zpa/settingsGet Zoom Phone Appliance settings by user IDGetZpaDeviceListProfileSettingOfaUser
POST/devices/zpa/upgradeUpgrade ZPA firmware or appUpgradeZpas/app
DELETE/devices/zpa/vendors/{vendor}/mac_addresses/{macAddress}Delete ZPA device by vendor and mac addressDeleteZpaDeviceByVendorAndMacAddress
GET/devices/zpa/zdm_groups/{zdmGroupId}/versionsGet ZPA version infoGetZpaVersioninfo
DELETE/devices/{deviceId}Delete devicedeleteDevice
GET/devices/{deviceId}Get device detailgetDevice
PATCH/devices/{deviceId}Change deviceupdateDevice
PATCH/devices/{deviceId}/assign_groupAssign a device to a groupassginGroup
PATCH/devices/{deviceId}/assignmentChange device associationchangeDeviceAssociation
H323 Devices
MethodEndpointSummaryOperation ID
GET/h323/devicesList H.323/SIP devicesdeviceList
POST/h323/devicesCreate a H.323/SIP devicedeviceCreate
DELETE/h323/devices/{deviceId}Delete a H.323/SIP devicedeviceDelete
PATCH/h323/devices/{deviceId}Update a H.323/SIP devicedeviceUpdate
In-Meeting Apps
MethodEndpointSummaryOperation ID
DELETE/meetings/{meetingId}/open_appsDelete a meeting appmeetingAppDelete
POST/meetings/{meetingId}/open_appsAdd a meeting appmeetingAppAdd
In-Meeting Features
MethodEndpointSummaryOperation ID
DELETE/live_meetings/{meetingId}/chat/messages/{messageId}Delete a live meeting messagedeleteMeetingChatMessageById
PATCH/live_meetings/{meetingId}/chat/messages/{messageId}Update a live meeting messageupdateMeetingChatMessageById
PATCH/live_meetings/{meetingId}/eventsIn-meeting controlsinMeetingControl
GET/meetings/{meetingId}/jointoken/local_recordingGet a meeting's join token for local recordingmeetingLocalRecordingJoinToken
GET/meetings/{meetingId}/tokenGet meeting's tokenmeetingToken
Invitation & Registration
MethodEndpointSummaryOperation ID
POST/meetings/{meetingId}/batch_registrantsPerform batch registrationaddBatchRegistrants
GET/meetings/{meetingId}/invitationGet meeting invitationmeetingInvitation
POST/meetings/{meetingId}/invite_linksCreate a meeting's invite linksmeetingInviteLinksCreate
GET/meetings/{meetingId}/registrantsList meeting registrantsmeetingRegistrants
POST/meetings/{meetingId}/registrantsAdd a meeting registrantmeetingRegistrantCreate
GET/meetings/{meetingId}/registrants/questionsList registration questionsmeetingRegistrantsQuestionsGet
PATCH/meetings/{meetingId}/registrants/questionsUpdate registration questionsmeetingRegistrantQuestionUpdate
PUT/meetings/{meetingId}/registrants/statusUpdate registrant's statusmeetingRegistrantStatus
DELETE/meetings/{meetingId}/registrants/{registrantId}Delete a meeting registrantmeetingregistrantdelete
GET/meetings/{meetingId}/registrants/{registrantId}Get a meeting registrantmeetingRegistrantGet
Live streaming
MethodEndpointSummaryOperation ID
GET/meetings/{meetingId}/jointoken/live_streamingGet a meeting's join token for live streamingmeetingLiveStreamingJoinToken
GET/meetings/{meetingId}/livestreamGet livestream detailsgetMeetingLiveStreamDetails
PATCH/meetings/{meetingId}/livestreamUpdate a livestreammeetingLiveStreamUpdate
PATCH/meetings/{meetingId}/livestream/statusUpdate livestream statusmeetingLiveStreamStatusUpdate
Meetings
MethodEndpointSummaryOperation ID
PATCH/live_meetings/{meetingId}/rtms_app/statusUpdate participant Real-Time Media Streams (RTMS) app statusmeetingRTMSStatusUpdate
DELETE/meetings/{meetingId}Delete a meetingmeetingDelete
GET/meetings/{meetingId}Get a meetingmeeting
PATCH/meetings/{meetingId}Update a meetingmeetingUpdate
POST/meetings/{meetingId}/sip_dialingGet a meeting SIP URI with passcodegetSipDialingWithPasscode
PUT/meetings/{meetingId}/statusUpdate meeting statusmeetingStatus
GET/past_meetings/{meetingId}Get past meeting detailspastMeetingDetails
GET/past_meetings/{meetingId}/instancesList past meeting instancespastMeetings
GET/past_meetings/{meetingId}/participantsGet past meeting participantspastMeetingParticipants
GET/past_meetings/{meetingId}/qaList past meetings' Q&AlistPastMeetingQA
GET/users/{userId}/meetingsList meetingsmeetings
POST/users/{userId}/meetingsCreate a meetingmeetingCreate
GET/users/{userId}/upcoming_meetingsList upcoming meetingslistUpcomingMeeting
PAC
MethodEndpointSummaryOperation ID
GET/users/{userId}/pacList a user's PAC accountsuserPACs
Polls
MethodEndpointSummaryOperation ID
POST/meetings/{meetingId}/batch_pollsPerform batch poll creationcreateBatchPolls
GET/meetings/{meetingId}/pollsList meeting pollsmeetingPolls
POST/meetings/{meetingId}/pollsCreate a meeting pollmeetingPollCreate
DELETE/meetings/{meetingId}/polls/{pollId}Delete a meeting pollmeetingPollDelete
GET/meetings/{meetingId}/polls/{pollId}Get a meeting pollmeetingPollGet
PUT/meetings/{meetingId}/polls/{pollId}Update a meeting pollmeetingPollUpdate
GET/past_meetings/{meetingId}/pollsList past meeting's poll resultslistPastMeetingPolls
Reports
MethodEndpointSummaryOperation ID
GET/report/activitiesGet sign In / sign out activity reportreportSignInSignOutActivities
GET/report/billingGet billing reportsgetBillingReport
GET/report/billing/invoicesGet billing invoice reportsgetBillingInvoicesReports
GET/report/cloud_recordingGet cloud recording usage reportreportCloudRecording
GET/report/dailyGet daily usage reportreportDaily
GET/report/history_meetingsGet history meeting and webinar listGethistorymeetingandwebinarlist
GET/report/meeting_activitiesGet a meeting activities reportreportMeetingactivitylogs
GET/report/meetings/{meetingId}Get meeting detail reportsreportMeetingDetails
GET/report/meetings/{meetingId}/participantsGet meeting participant reportsreportMeetingParticipants
GET/report/meetings/{meetingId}/pollsGet meeting poll reportsreportMeetingPolls
GET/report/meetings/{meetingId}/qaGet meeting Q&A reportreportMeetingQA
GET/report/meetings/{meetingId}/surveyGet meeting survey reportreportMeetingSurvey
GET/report/operationlogsGet operation logs reportreportOperationLogs
GET/report/remote_supportGet remote support reportGetremotesupportreport
GET/report/telephoneGet telephone reportsreportTelephone
GET/report/upcoming_eventsGet upcoming events reportreportUpcomingEvents
GET/report/usersGet active or inactive host reportsreportUsers
GET/report/users/{userId}/meetingsGet meeting reportsreportMeetings
GET/report/webinars/{webinarId}Get webinar detail reportsreportWebinarDetails
GET/report/webinars/{webinarId}/participantsGet webinar participant reportsreportWebinarParticipants
GET/report/webinars/{webinarId}/pollsGet webinar poll reportsreportWebinarPolls
GET/report/webinars/{webinarId}/qaGet webinar Q&A reportreportWebinarQA
GET/report/webinars/{webinarId}/surveyGet webinar survey reportreportWebinarSurvey
SIP Phone
MethodEndpointSummaryOperation ID
GET/sip_phones/phonesList SIP phonesListSIPPhonePhones
POST/sip_phones/phonesEnable SIP phoneEnableSIPPhonePhones
DELETE/sip_phones/phones/{phoneId}Delete SIP phonedeleteSIPPhonePhones
PATCH/sip_phones/phones/{phoneId}Update SIP phoneUpdateSIPPhonePhones
Summaries
MethodEndpointSummaryOperation ID
GET/meetings/meeting_summariesList an account's meeting or webinar summariesListmeetingsummaries
DELETE/meetings/{meetingId}/meeting_summaryDelete a meeting or webinar summaryDeletemeetingorwebinarsummary
GET/meetings/{meetingId}/meeting_summaryGet a meeting or webinar summaryGetameetingsummary
Surveys
MethodEndpointSummaryOperation ID
DELETE/meetings/{meetingId}/surveyDelete a meeting surveymeetingSurveyDelete
GET/meetings/{meetingId}/surveyGet a meeting surveymeetingSurveyGet
PATCH/meetings/{meetingId}/surveyUpdate a meeting surveymeetingSurveyUpdate
Templates
MethodEndpointSummaryOperation ID
GET/users/{userId}/meeting_templatesList meeting templateslistMeetingTemplates
POST/users/{userId}/meeting_templatesCreate a meeting template from an existing meetingmeetingTemplateCreate
Tracking Field
MethodEndpointSummaryOperation ID
GET/tracking_fieldsList tracking fieldstrackingfieldList
POST/tracking_fieldsCreate a tracking fieldtrackingfieldCreate
DELETE/tracking_fields/{fieldId}Delete a tracking fieldtrackingfieldDelete
GET/tracking_fields/{fieldId}Get a tracking fieldtrackingfieldGet
PATCH/tracking_fields/{fieldId}Update a tracking fieldtrackingfieldUpdate
TSP
MethodEndpointSummaryOperation ID
GET/tspGet account's TSP informationtsp
PATCH/tspUpdate an account's TSP informationtspUpdate
GET/users/{userId}/tspList user's TSP accountsuserTSPs
POST/users/{userId}/tspAdd a user's TSP accountuserTSPCreate
PATCH/users/{userId}/tsp/settingsSet global dial-in URL for a TSP usertspUrlUpdate
DELETE/users/{userId}/tsp/{tspId}Delete a user's TSP accountuserTSPDelete
GET/users/{userId}/tsp/{tspId}Get a user's TSP accountuserTSP
PATCH/users/{userId}/tsp/{tspId}Update a TSP accountuserTSPUpdate
Webinars
MethodEndpointSummaryOperation ID
DELETE/live_webinars/{webinarId}/chat/messages/{messageId}Delete a live webinar messagedeleteWebinarChatMessageById
GET/past_webinars/{webinarId}/absenteesGet webinar absenteeswebinarAbsentees
GET/past_webinars/{webinarId}/instancesList past webinar instancespastWebinars
GET/past_webinars/{webinarId}/participantsList webinar participantslistWebinarParticipants
GET/past_webinars/{webinarId}/pollsList past webinar poll resultslistPastWebinarPollResults
GET/past_webinars/{webinarId}/qaList Q&As of a past webinarlistPastWebinarQA
GET/users/{userId}/webinar_templatesList webinar templateslistWebinarTemplates
POST/users/{userId}/webinar_templatesCreate a webinar templatewebinarTemplateCreate
GET/users/{userId}/webinarsList webinarswebinars
POST/users/{userId}/webinarsCreate a webinarwebinarCreate
DELETE/webinars/{webinarId}Delete a webinarwebinarDelete
GET/webinars/{webinarId}Get a webinarwebinar
PATCH/webinars/{webinarId}Update a webinarwebinarUpdate
POST/webinars/{webinarId}/batch_registrantsPerform batch registrationaddBatchWebinarRegistrants
GET/webinars/{webinarId}/brandingGet webinar's session brandinggetWebinarBranding
DELETE/webinars/{webinarId}/branding/name_tagsDelete a webinar's branding name tagdeleteWebinarBrandingNameTag
POST/webinars/{webinarId}/branding/name_tagsCreate a webinar's branding name tagcreateWebinarBrandingNameTag
PATCH/webinars/{webinarId}/branding/name_tags/{nameTagId}Update a webinar's branding name tagupdateWebinarBrandingNameTag
DELETE/webinars/{webinarId}/branding/virtual_backgroundsDelete a webinar's branding virtual backgroundsdeleteWebinarBrandingVB
PATCH/webinars/{webinarId}/branding/virtual_backgroundsSet webinar's default branding virtual backgroundsetWebinarBrandingVB
POST/webinars/{webinarId}/branding/virtual_backgroundsUpload a webinar's branding virtual backgrounduploadWebinarBrandingVB
DELETE/webinars/{webinarId}/branding/wallpaperDelete a webinar's branding wallpaperdeleteWebinarBrandingWallpaper
POST/webinars/{webinarId}/branding/wallpaperUpload a webinar's branding wallpaperuploadWebinarBrandingWallpaper
POST/webinars/{webinarId}/invite_linksCreate webinar's invite linkswebinarInviteLinksCreate
GET/webinars/{webinarId}/jointoken/live_streamingGet a webinar's join token for live streamingwebinarLiveStreamingJoinToken
GET/webinars/{webinarId}/jointoken/local_archivingGet a webinar's archive token for local archivingwebinarLocalArchivingArchiveToken
GET/webinars/{webinarId}/jointoken/local_recordingGet a webinar's join token for local recordingwebinarLocalRecordingJoinToken
GET/webinars/{webinarId}/livestreamGet live stream detailsgetWebinarLiveStreamDetails
PATCH/webinars/{webinarId}/livestreamUpdate a live streamwebinarLiveStreamUpdate
PATCH/webinars/{webinarId}/livestream/statusUpdate live stream statuswebinarLiveStreamStatusUpdate
DELETE/webinars/{webinarId}/panelistsRemove all panelistswebinarPanelistsDelete
GET/webinars/{webinarId}/panelistsList panelistswebinarPanelists
POST/webinars/{webinarId}/panelistsAdd panelistswebinarPanelistCreate
DELETE/webinars/{webinarId}/panelists/{panelistId}Remove a panelistwebinarPanelistDelete
GET/webinars/{webinarId}/pollsList a webinar's pollswebinarPolls
POST/webinars/{webinarId}/pollsCreate a webinar's pollwebinarPollCreate
DELETE/webinars/{webinarId}/polls/{pollId}Delete a webinar pollwebinarPollDelete
GET/webinars/{webinarId}/polls/{pollId}Get a webinar pollwebinarPollGet
PUT/webinars/{webinarId}/polls/{pollId}Update a webinar pollwebinarPollUpdate
GET/webinars/{webinarId}/registrantsList webinar registrantswebinarRegistrants
POST/webinars/{webinarId}/registrantsAdd a webinar registrantwebinarRegistrantCreate
GET/webinars/{webinarId}/registrants/questionsList registration questionswebinarRegistrantsQuestionsGet
PATCH/webinars/{webinarId}/registrants/questionsUpdate registration questionswebinarRegistrantQuestionUpdate
PUT/webinars/{webinarId}/registrants/statusUpdate registrant's statuswebinarRegistrantStatus
DELETE/webinars/{webinarId}/registrants/{registrantId}Delete a webinar registrantdeleteWebinarRegistrant
GET/webinars/{webinarId}/registrants/{registrantId}Get a webinar registrantwebinarRegistrantGet
POST/webinars/{webinarId}/sip_dialingGet a webinar SIP URI with passcodegetWebinarSipDialingWithPasscode
PUT/webinars/{webinarId}/statusUpdate webinar statuswebinarStatus
DELETE/webinars/{webinarId}/surveyDelete a webinar surveywebinarSurveyDelete
GET/webinars/{webinarId}/surveyGet a webinar surveywebinarSurveyGet
PATCH/webinars/{webinarId}/surveyUpdate a webinar surveywebinarSurveyUpdate
GET/webinars/{webinarId}/tokenGet webinar's tokenwebinarToken
GET/webinars/{webinarId}/tracking_sourcesGet webinar tracking sourcesgetTrackingSources

Requirements and compatibility

Written for: OpenAI Codex

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

What our scanner noticed· Medium risk

  • Possible data-exfiltration endpoints
  • Instructions that use the network

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Zoom
Publisher
OpenAI (Official)
Distributed by
OpenAI
Source
openai/plugins · plugins/zoom/skills/rest-api · commit d420d13
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from plugins/zoom/LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Zoom or OpenAI.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download build-zoom-rest-api-app.zip