-
On Tuesday 4/29/25 I created a new api route in my app that connects to https://api.zoom.us/v2/users/${userEmail}/webinars. On Tuesday it worked to create a webinar using a templateId that was accessible to all users that I made in the admin account. I created the webinar with a non-admin email address still within my organization successfully, and it showed up on that users zoom dashboard.
-
Then on Wednesday the route did not work to create a webinar using a templateId, unless I used the email of the administrator of the account. I did not release any code that would have caused this change.
-
I confirmed in the admin’s Zoom account under Account Management > Account Settings > Schedule Webinar the “Allow Admins to define ‘Webinar Templates’ and make them available to users.” Is switched to on, and I turned that setting on and off.
-
I confirmed the error message of “Only the template owner has the permission to use this template for Webinar creation.” Shows up when I use the api with a email address of a user in our organization, but when it’s a fake email but still with our domain the error message is “User does not exist”.
-
On Tuesday while testing the routes functionality I did create additional Admin templates in the Zoom admin dashboard, and I’m wondering if I somehow triggered some bug that caused the settings to show up as Admin templates are available to be used by non admins, but it doesn’t actually work through the api.
-
I confirmed that when I logged in as a non-admin into their zoom account, I can use an Admin template to create a webinar manually, so it is only not working through the api.
Authentication method:
- We use Zoom OAuth to authenticate users
curl --location 'https://{ourUrl}’ \
–header ‘Content-Type: application/json’ \
–header 'Authorization: Bearer {token}’ \
–data-raw '{
“topic”: “Topic”,
“agenda”: “Agenda”,
“emailOfHost”: “not.admin@example.com",
“webinarCoHosts”: [“othernot.admin@example.com"],
“startTime”: 1752697556000,
“endTime”: 1752701156000,
“webinarUuid”: “uuid”,
“templateId”: “ourAdminTemplateId”
}’