Description
I’m building a custom integration using User-managed OAuth that needs read-only access to meetings and recordings data. Authorization works successfully with the user:read:user scope alone, but fails with “Invalid scope” error when any meeting or recording scopes are added.
I’ve verified all scopes are properly configured in the app, tested with multiple users including admins, and confirmed the organization has paid Zoom accounts. Zoom Support confirmed this is configuration-related and directed me to the forum.
My question: Are meeting/recording scopes available for User-managed OAuth apps, or do I need Server-to-Server OAuth instead?
API Endpoint(s) and/or Zoom API Event(s)
OAuth Authorization Endpoint: https://marketplace.zoom.us/v2/authorize
Related API endpoints that would be accessed after authorization:
- GET /users/{userId}/meetings
- GET /meetings/{meetingId}
- GET /past_meetings/{meetingId}
- GET /users/{userId}/recordings
Error?
These errors appear on Zoom’s authorization page before the OAuth callback is reached:
- “You cannot authorize [App Name]”
- “Invalid scope.”
How To Reproduce
-
Request URL:
https://marketplace.zoom.us/v2/authorize?client_id=[REDACTED]&response_type=code&redirect_uri=https://[my-domain]/zoom/callback&scope=user:read:usermeeting:read:list_meetings meeting:read:meeting&state=[STATE] -
Authentication method:
- App Type: User-managed OAuth (General app)
- Status: Draft (Active for internal users)
- Scopes configured in app:
- user:read:user - Works alone
- meeting:read:list_meetings - Causes error when added
- meeting:read:meeting - Causes error when added
- meeting:read:past_meeting - Causes error when added
- meeting:read:list_past_participants - Causes error when added
- cloud_recording:read:list_user_recordings - Causes error when added
- cloud_recording:read:recording - Causes error when added
- cloud_recording:read:meeting_transcript - Causes error when added