# Granular Scopes Not Appearing

**URL:** <https://devforum.zoom.us/t/granular-scopes-not-appearing/110556>\
**Category:** Cloud Recordings\
**Tags:** dc, recording, api\
**Created:** [May 23, 2024, 1:16pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556 "2024-05-23T13:16:34Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![rita.curti](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/rita.curti/32/59990_2.png) [@rita.curti](https://devforum.zoom.us/u/rita.curti)\
**Post date:** [May 23, 2024, 1:16pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/1 "2024-05-23T13:16:34Z")

</div>

We do not see the granular scopes expected within the developer console.

In particular, we’re looking to enable the following:  
`recording:read:admin,recording:read`  
`user:read:list_recordings,user:read:list_recordings:admin,user:read:list_recordings:master`

What setting on the Admin side needs to be enabled for this to appear on the developer console side? (I’ve found other posts about this in the forum, but none that show the solution, thanks.)

---

<div class="post-metadata">

**Author:** ![ch-a3n](https://avatars.discourse-cdn.com/v4/letter/c/58956e/32.png) [@ch-a3n](https://devforum.zoom.us/u/ch-a3n)\
**Post date:** [May 23, 2024, 3:56pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/2 "2024-05-23T15:56:48Z")

</div>

FWIW, enabling the scopes that _seem_ correct (`cloud_recording:read:list_recording_files:admin`,`cloud_recording:read:list_account_recordings:admin`,`cloud_recording:read:recording:admin`, `cloud_recording:read:list_user_recordings:admin`) is sufficient for listing and retrieving recordings for some user accounts but leads to 4711 errors when attempting to access other user accounts (`Invalid access token, does not contain scopes:[cloud_recording:read:list_user_recordings, cloud_recording:read:list_user_recordings:admin]`) . This seems like a bug?

---

<div class="post-metadata">

**Author:** ![kara.enomoto](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/kara.enomoto/32/59992_2.png) [@kara.enomoto](https://devforum.zoom.us/u/kara.enomoto)\
**Post date:** [May 28, 2024, 4:07pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/3 "2024-05-28T16:07:43Z")

</div>

Hi @gianni.zoom I see that you responded to a couple of other posts regarding granular scope and I am hoping that you could take a look at our issue as well!

---

<div class="post-metadata">

**Author:** ![it\_epsn](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/it_epsn/32/17798_2.png) [@it\_epsn](https://devforum.zoom.us/u/it_epsn)\
**Post date:** [May 29, 2024, 12:06am UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/4 "2024-05-29T00:06:29Z")

</div>

Hi @rita.curti ,

As I am myself struggling with recording deletion issues in a production setup, and have the scopes you mention in our configs, I dug a little, and here’s my understanding on the situation.

[In March 2024, Zoom changed/evolved its scope system](https://developers.zoom.us/changelog/platform/granular-and-optional-scopes-announcement/), and we have now “Classic” and “Granular”.

The `recording:read:admin` and alike are part of the Classic/old scopes, and aren’t available anymore if you recently (i.e. past March 2024) created an app in the Marketplace/Dev console. I checked and tested in our account:

- App configs that pre-date the Granular scopes only list the Classic ones
- New apps only offer the Granular scopes

But it would appear that Zoom has not updated its API documentation to those new Granular scopes. So we’re stuck with doc that only mentions “Classic” scopes, and an app config that only shows “Granular” ones. As your post shows, that certainly isn’t helping.

**Edit** : _Actually, some endpoints mention scope+granular, and others only have the (old) scopes… On top of that, the [“Granular scopes” doc](https://developers.zoom.us/docs/integrations/oauth-scopes-granular/) only gives a partial list of available new scopes._

As @ch-a3n points out, you may want to try, browse and select scopes based on what you’re looking to achieve, as the ones I’ve looked at seem rather self-explainatory.

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [May 30, 2024, 5:21pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/5 "2024-05-30T17:21:29Z")

</div>

> [@rita.curti](#):
>
> In particular, we’re looking to enable the following:  
> `recording:read:admin,recording:read`  
> `user:read:list_recordings,user:read:list_recordings:admin,user:read:list_recordings:master`

Hi @rita.curti can you please confirm if you have a [master-subaccount structure](https://developers.zoom.us/docs/api/rest/master-account-apis/)? If not, you are using the wrong endpoints.

If this is your account structure, [the permissions to access these endpoints](https://developers.zoom.us/docs/api/rest/master-account-apis/) need to be provided for [the user role](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0064983) who is querying the Zoom APIs.

The first link says enabling for Server-to-Server OAuth apps, but the directions apply to General Apps as well.

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [May 30, 2024, 5:24pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/6 "2024-05-30T17:24:22Z")

</div>

> [@ch-a3n](#):
>
> FWIW, enabling the scopes that _seem_ correct (`cloud_recording:read:list_recording_files:admin`,`cloud_recording:read:list_account_recordings:admin`,`cloud_recording:read:recording:admin`, `cloud_recording:read:list_user_recordings:admin`) is sufficient for listing and retrieving recordings for some user accounts but leads to 4711 errors when attempting to access other user accounts (`Invalid access token, does not contain scopes:[cloud_recording:read:list_user_recordings, cloud_recording:read:list_user_recordings:admin]`) .

Hi @ch-a3n , are those users external to your account?

What app-type are you using and when was it created?

Is it an internal app (server-to-server), unlisted (approved for access to external accounts but not on the marketplace), or published app (approved for access to external accounts and on the marketplace)?

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [May 30, 2024, 5:25pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/7 "2024-05-30T17:25:02Z")

</div>

Hi @kara.enomoto , could you please link your issue?

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [May 30, 2024, 5:27pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/8 "2024-05-30T17:27:55Z")

</div>

> [@it\_epsn](#):
>
> But it would appear that Zoom has not updated its API documentation to those new Granular scopes. So we’re stuck with doc that only mentions “Classic” scopes, and an app config that only shows “Granular” ones. As your post shows, that certainly isn’t helping.
> 
> **Edit** : _Actually, some endpoints mention scope+granular, and others only have the (old) scopes… On top of that, the [“Granular scopes” doc](https://developers.zoom.us/docs/integrations/oauth-scopes-granular/) only gives a partial list of available new scopes._

Hi @it_epsn , thanks for adding this part. Did locating this information help you to resolve your issue?

---

<div class="post-metadata">

**Author:** ![rita.curti](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/rita.curti/32/59990_2.png) [@rita.curti](https://devforum.zoom.us/u/rita.curti)\
**Post date:** [May 30, 2024, 5:43pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/10 "2024-05-30T17:43:05Z")

</div>

Hi @gianni.zoom - confirmed we have the master-subaccount structure.

The role is already assigned the ability to manage the sub-account “with the same privileges as this account”.

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [May 30, 2024, 6:14pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/11 "2024-05-30T18:14:39Z")

</div>

Hi @rita.curti ,

The scopes you shared are our legacy scopes. Could you please clarify the following:

- approximate date when app was created
- app type (if relevant)
- endpoints you’re attempting to use

---

<div class="post-metadata">

**Author:** ![ch-a3n](https://avatars.discourse-cdn.com/v4/letter/c/58956e/32.png) [@ch-a3n](https://devforum.zoom.us/u/ch-a3n)\
**Post date:** [May 31, 2024, 5:52pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/12 "2024-05-31T17:52:33Z")

</div>

Hey @gianni.zoom ,

This an internal server to server oauth account and the users we receive permission errors are internal users. They are not in a different subaccount either.

To your response on @rita.curti’s question, the scopes she listed are on the scopes supplied by the api documentation: /docs/api/rest/reference/zoom-api/methods/#operation/recordingsList

We are use a newer application that requires the granular scopes, but we are unable to find the appropriate scopes in the admin panel.

To sum up:

1. We receive a permission error when accessing attempting to read recordings from some users in our account. This permission error occurs when I supply a token with the scopes: `cloud_recording:read:list_recording_files:admin` ,`cloud_recording:read:list_account_recordings:admin` ,`cloud_recording:read:recording:admin` , `cloud_recording:read:list_user_recordings:admin`
2. In our attempt to fix errors, we attempted to enable the scopes listed in the error message ( (`Invalid access token, does not contain scopes:[cloud_recording:read:list_user_recordings, cloud_recording:read:list_user_recordings:admin]` ) AND the scopes listed in the API documentation. `cloud_recording:read:list_user_recordings:admin` was already enabled and we could not find `cloud_recording:read:list_user_recordings` presumably because this is an account scoped app vs a user scoped app. We also could not find any of the scopes listed in the API documentation.

This leads me to two conclusions:

1. The API documentation is outdated
2. There is likely a bug that is blocking us from accessing specific users’ recordings

---

<div class="post-metadata">

**Author:** ![ojus.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ojus.zoom/32/734_2.png) [@ojus.zoom](https://devforum.zoom.us/u/ojus.zoom)\
**Post date:** [June 3, 2024, 7:50pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/13 "2024-06-03T19:50:27Z")

</div>

@ch-a3n can you let me know when was the app created? was it created after March 30th? Also, your server to server OAuth app will show you admin scopes since its an admin level app. But I agree with you that we need to fix this in our documentation and we will work with the correct team.

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [June 6, 2024, 8:00pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/14 "2024-06-06T20:00:50Z")

</div>

Hey @ch-a3n @it_epsn @rita.curti @kara.enomoto I created a new S2S OAuth app with master sub account structure and all permissions enabled and was able to reproduce what you’re describing. I opened a ticket (ZSEE-131411) for this fix.

---

<div class="post-metadata">

**Author:** ![kara.enomoto](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/kara.enomoto/32/59992_2.png) [@kara.enomoto](https://devforum.zoom.us/u/kara.enomoto)\
**Post date:** [June 6, 2024, 8:51pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/15 "2024-06-06T20:51:10Z")

</div>

Thanks Gianni! How can we track the status of this ticket? When i plug it into the search bar, I am unable to see it.

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [June 6, 2024, 9:07pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/16 "2024-06-06T21:07:44Z")

</div>

Hi @kara.enomoto , this is an internal reference for other Zoom technical staff, but I will share updates on this thread as they become available.

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [June 12, 2024, 2:09pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/17 "2024-06-12T14:09:40Z")

</div>

Hi @kara.enomoto @ch-a3n @it_epsn @rita.curti @ojus.zoom ,

Apparently our documentation for the error was incorrect and the missing granular scope is `cloud_recording:read:list_user_recordings: admin`. I’m waiting to hear clarification on if the error code will also be updated for the endpoint to confirm if it is working for you now.

Please add this scope and try the endpoint.

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [June 14, 2024, 8:37pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/18 "2024-06-14T20:37:29Z")

</div>

Hi all, please let me know if it is working.

---

<div class="post-metadata">

**Author:** ![Manuel2](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/manuel2/32/60782_2.png) [@Manuel2](https://devforum.zoom.us/u/Manuel2)\
**Post date:** [June 19, 2024, 9:04pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/19 "2024-06-19T21:04:14Z")

</div>

Hi, Gianni. It isn’t working yet

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [June 25, 2024, 11:57am UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/21 "2024-06-25T11:57:48Z")

</div>

Hi @Manuel2 , can you please clarify if you added `cloud_recording:read:list_user_recordings: admin` with correct user permissions/role enabled? Asking for clarity since you were not a part of the original correspondence.

---

<div class="post-metadata">

**Author:** ![Manuel2](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/manuel2/32/60782_2.png) [@Manuel2](https://devforum.zoom.us/u/Manuel2)\
**Post date:** [June 25, 2024, 5:06pm UTC](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556/22 "2024-06-25T17:06:37Z")

</div>

Hi @gianni.zoom . That scope doesn’t appear. All available recording scopes have been enabled.

[Next page](https://devforum.zoom.us/t/granular-scopes-not-appearing/110556.md?page=2)
