Skip to content

Reference

Zoom

Set up Zoom OAuth for meetings, webinars, and recordings

Connect your users to Zoom for meetings, webinars, and cloud recordings.

PropertyValue
Provider IDzoom
CategoryCommunication
PKCENot supported (confidential clients)
Token refreshAutomatic (rotating refresh tokens)
Redirect URIShown in Developer Portal

Go to the Zoom App Marketplace

Navigate to the Zoom App Marketplace and sign in.

Create a General App

Click Develop > Build App and create a General App. Set the app type to User-managed app so each user authorizes their own account.

Configure the redirect URL

Add the Alter callback URL (from the Developer Portal) to the OAuth Redirect URL field on the app’s Basic Information page.

Add scopes

Open the Scopes tab and add every API scope the integration needs. Zoom grants scopes from the app configuration — not from the authorization URL.

Get credentials

Copy the Client ID and Client Secret from the app’s Basic Information page.

Open the Developer Portal

Go to portal.alterauth.com and navigate to the application.

Add Zoom provider

Go to OAuth Providers > Add Provider > Zoom.

Enter credentials

  • Client ID: Paste your Zoom Client ID
  • Client Secret: Paste your Zoom Client Secret

Save

Click Save. The provider is now active.

Zoom does not accept a scope parameter in the authorization URL. Scopes are configured on the Marketplace app’s Scopes tab and granted as a bundle when the user consents. After changing scopes, users must re-authorize the app.

Account-level (:admin) scopes require authorization by a user with the matching admin role permissions.

  • Zoom uses rotating refresh tokens — each refresh returns a new refresh token. Alter Vault stores the latest token automatically.
  • Access tokens expire after 1 hour; refresh tokens expire after roughly 90 days of inactivity, after which the user must re-authorize.
  • See the Zoom OAuth documentation for more details.

Alter policy rules can target these attested operations and families for operation-level and parameter-aware controls.

Operation IDFamiliesMethodProvider path
meetingsreadGET/users/{userId}/meetings
meetingreadGET/meetings/{meetingId}
meetingCreatewritePOST/users/{userId}/meetings
meetingUpdatewritePATCH/meetings/{meetingId}
meetingDeletedeleteDELETE/meetings/{meetingId}
meetingInvitationreadGET/meetings/{meetingId}/invitation
usersreadGET/users
userreadGET/users/{userId}
userCreateadminPOST/users
userDeleteadmin, deleteDELETE/users/{userId}
reportMeetingsreadGET/report/users/{userId}/meetings
sendaChatMessagesendPOST/chat/users/{userId}/messages
getChatMessagesreadGET/chat/users/{userId}/messages
editMessagewritePUT/chat/users/{userId}/messages/{messageId}
deleteChatMessagedeleteDELETE/chat/users/{userId}/messages/{messageId}
createChannelwritePOST/chat/users/{userId}/channels
getChannelsreadGET/chat/users/{userId}/channels
deleteChanneldeleteDELETE/chat/users/{userId}/channels/{channelId}
inviteChannelMembersadminPOST/chat/users/{userId}/channels/{channelId}/members
joinChannelwritePOST/chat/channels/{channelId}/members/me
leaveChannelwriteDELETE/chat/channels/{channelId}/members/me
recordingsListreadGET/users/{userId}/recordings
recordingDeletedeleteDELETE/meetings/{meetingId}/recordings
webinarsreadGET/users/{userId}/webinars
webinarCreatewritePOST/users/{userId}/webinars
webinarDeletedeleteDELETE/webinars/{webinarId}

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.