VX Agents

API directory · Marketing & Analytics

Zoom Webinars & Registrants

v1.0.0 · 14 endpoints · 0 connections · shared by vx.ai

Who signed up, who got approved, and who actually showed? Run Zoom webinars end to end: schedule or edit a webinar, add and approve registrants, read the registration questions and tracking sources behind each sign-up, then pull past participants, absentees and the attendance report for follow-up.

Connect this API to an AI agent Browse all specs

What you can do with Zoom Webinars & Registrants via MCP

Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.

MethodPathOperationDescription
GET /users/{userId}/webinars listWebinars List a host's scheduled or upcoming webinars
POST /users/{userId}/webinars createWebinar Schedule a new webinar for a host
GET /webinars/{webinarId} getWebinar Get a webinar's time, agenda, join and registration links
PATCH /webinars/{webinarId} updateWebinar Change a webinar's topic, time, agenda or settings
GET /webinars/{webinarId}/registrants listRegistrants List registrants by status (pending, approved, denied)
POST /webinars/{webinarId}/registrants addRegistrant Register a person for a webinar
GET /webinars/{webinarId}/registrants/{registrantId} getRegistrant Get one registrant's answers and join link
PUT /webinars/{webinarId}/registrants/status updateRegistrantStatus Approve, deny or cancel registrants
GET /webinars/{webinarId}/registrants/questions listRegistrationQuestions See the questions asked on the registration form
GET /webinars/{webinarId}/tracking_sources listTrackingSources See which tracking links brought in registrations
GET /past_webinars/{webinarId}/instances listPastWebinarInstances List the past sessions of a webinar
GET /past_webinars/{webinarId}/participants listPastParticipants List who attended a past webinar
GET /past_webinars/{webinarId}/absentees listAbsentees List registrants who did not attend
GET /report/webinars/{webinarId}/participants getAttendanceReport Attendance report with join and leave times per participant

Authentication

zoom_oauth

OAuth 2.0

Scopes: webinar:read:list_webinars webinar:read:webinar webinar:write:webinar webinar:update:webinar webinar:read:list_registrants webinar:read:registrant webinar:read:list_registration_questions webinar:read:list_tracking_sources webinar:write:registrant webinar:update:registrant_status webinar:read:list_past_instances webinar:read:list_past_participants webinar:read:list_absentees report:read:list_webinar_participants:admin

Zoom OAuth 2.0 (authorization code) for a user-managed Zoom app.

How to get a credential

  1. Sign in to the Zoom App Marketplace (https://marketplace.zoom.us) and choose Develop > Build App > General App.
  2. Set it to User-managed, and add the VX Agents OAuth redirect URL shown on the credential form.
  3. Under Scopes, add the webinar and report scopes in the table below.
  4. Copy the Client ID and Client Secret into a VX Agents OAuth2 credential and sign in with the Zoom user who hosts the webinars. The host needs a Zoom Webinars license; the report scope also needs a Pro or higher account and report access.

Permissions used

Scope Operations
webinar:read:list_webinars, webinar:read:webinar listWebinars, getWebinar
webinar:write:webinar, webinar:update:webinar createWebinar, updateWebinar
webinar:read:list_registrants, webinar:read:registrant, webinar:read:list_registration_questions, webinar:read:list_tracking_sources listRegistrants, getRegistrant, listRegistrationQuestions, listTrackingSources
webinar:write:registrant, webinar:update:registrant_status addRegistrant, updateRegistrantStatus
webinar:read:list_past_instances, webinar:read:list_past_participants, webinar:read:list_absentees listPastWebinarInstances, listPastParticipants, listAbsentees
report:read:list_webinar_participants:admin getAttendanceReport

Common errors

Status Meaning Fix
401 Token expired or revoked Reconnect the credential; access tokens last one hour and are refreshed automatically.
403 Scope missing or no Webinars license Add the scope above to the app and reconnect; check the host has a Webinars license.
404 Webinar or registrant not found Use ids from listWebinars / listRegistrants; past-webinar calls need a webinar that has ended.
400 Bad field or registration closed Check required fields (email, first_name) and that registration is enabled.
429 Rate limit Wait and retry; report calls have lower daily limits.

Store it as a VX Agents OAuth2 credential.

Usage guide

Setup

  1. Connect a Zoom OAuth2 credential (user-managed General App) with the webinar scopes, signed in as the webinar host. The host needs a Zoom Webinars license.
  2. Pin userId to me for the signed-in host (or a host's email / user id if the app is admin-managed).

Run a webinar campaign

  1. listWebinars (type=scheduled or upcoming) to find the webinar; getWebinar for its time, registration_url and settings.approval_type.
  2. To schedule one, confirm topic, start time, time zone and duration with the user, then createWebinar (type 5 = one-time, start_time ISO 8601, settings.approval_type 0 automatic / 1 manual). updateWebinar changes only the fields you send.
  3. listRegistrationQuestions shows the form fields; listRegistrants with status=pending lists people awaiting approval; getRegistrant shows one person's answers.
  4. To approve or deny, confirm the list with the user, then updateRegistrantStatus with {"action": "approve", "registrants": [{"id": "..."}]} (deny and cancel also work). Zoom emails each registrant.
  5. To sign someone up, confirm, then addRegistrant with at least email and first_name plus any required questions; the response has their join_url.
  6. listTrackingSources shows registrations and visits per tracking link.

After the webinar

  1. listPastWebinarInstances gives each session's uuid (use it as webinarId for a single occurrence of a recurring webinar).
  2. listPastParticipants lists who joined; listAbsentees lists registrants who did not, ready for a follow-up list.
  3. getAttendanceReport adds join and leave times and duration per person (needs the report scope).

Good to know

  • Webinar ids are numbers; a past-instance uuid that starts with / or contains // must be double URL-encoded.
  • Times are ISO 8601; start_time without Z uses the webinar's timezone.
  • Past-webinar and report data appear only after the session ends and may lag by a few minutes; reports keep about 12 months.
  • Lists page with next_page_token (page_size up to 300).
  • Creating webinars and changing registrant status send emails: always confirm first. Deleting webinars or registrants is not part of this spec.

Source: Zoom Meetings API reference, Webinars and Reports sections (https://developers.zoom.us/docs/api/meetings/), checked 2026-10-20.

How to use this spec

  1. Create a free VX Agents account (sandbox tools included).
  2. Open the marketplace and connect “Zoom Webinars & Registrants” to an agent.
  3. Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.

Related APIs