Hello Zoom Community, ![]()
I’m trying to create a secure course platform where only paid students can join my Zoom meetings. I’ve got most of my requirements working but facing one critical issue:
My Current Setup:
{
topic: `System(workshop) - ${workshop.workshop_title}`,
type: 2, // Scheduled meeting
start_time: "2027-12-31T23:59:59Z", // Far future date for permanent link
duration: 60,
settings: {
approval_type: 0, // Auto-approval
registration_type: 1, // Register once for all occurrences
registrants_email_notification: true,
join_before_host: false,
waiting_room: false,
mute_upon_entry: true
}
}
What Works:
I’ve created a permanent meeting link by setting a far future date
I can programmatically register my paying customers using Zoom’s API
I can update start times as needed while keeping the same link
The Problem:
Anyone with a Zoom account can join my meeting without paying. When they open the link in the Zoom app (where they’re already logged in), they can join directly.
In incognito mode, they can register by simply entering a name and email.
What I Need:
- Complete block for non-registered users - No registration form should appear to public users
- Only backend API registrations allowed - Only my system should be able to add registrants (after payment)
- Maintain permanent meeting link - Keep using the same meeting ID/URL
I’ve tried:
- Using
approval_type: 0(auto) andapproval_type: 1(manual) - Password protection (but then I need to distribute passwords which can be shared)
I considered using registration_close_time set to a past date with approval_type: 1, but I’m not sure if my system can still register users via API after registration is closed.
Has anyone successfully implemented this specific access control pattern? Is there a combination of settings that will block public registration entirely while allowing API registrations?
Thank you for any guidance!
Potential Solution (Is this possible?)
Could this combination work?
{
settings: {
approval_type: 1, // Manual approval
registration_type: 1, // Register once
registration_close_time: "2020-01-01T00:00:00Z", // Past date to disable public registration
allow_registration_after_meeting_starts: false,
meeting_authentication: true,
only_signed_in_users: true
}
}
Would this block the public registration form completely? And would my backend API still be able to add and approve registrants despite the closed registration?