"Invalid scope" error with meeting/recording scopes on User-managed OAuth app

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

  1. 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]

  2. Authentication method:

  • App Type: User-managed OAuth (General app)
  • Status: Draft (Active for internal users)
  1. 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
1 Like

Yes, meeting and recording scopes are available for User-managed OAuth apps in Zoom. However, it’s important to note that these scopes are only accessible if the app is installed by an administrator. If your app is installed by a regular user, you may encounter the “Invalid scope” error.

To resolve this issue, ensure the following:

  1. Administrator Installation: Confirm that the app is installed by an administrator. Only administrators can grant the necessary permissions for accessing meeting and recording data.

  2. Correct Scopes: Verify that the scopes you’ve requested are appropriate for your app’s functionality. For meeting and recording data, ensure you’re using scopes like meeting:read:admin and cloud_recording:read:admin.

  3. Scope Configuration: Double-check that the scopes are correctly configured in your app’s settings. Any discrepancies here can lead to authorization errors.

  4. App Status: Ensure that your app is in the correct status (e.g., “Active”) and not in draft mode, as this can affect its functionality.

By following these steps, you should be able to resolve the “Invalid scope” error and successfully integrate meeting and recording functionalities into your User-managed OAuth app.