# Scope for Recordings /v2/users/{userid}/recordings

**URL:** <https://devforum.zoom.us/t/scope-for-recordings-v2-users-userid-recordings/5577>\
**Category:** API and Webhooks\
**Created:** [August 19, 2019, 6:39pm UTC](https://devforum.zoom.us/t/scope-for-recordings-v2-users-userid-recordings/5577 "2019-08-19T18:39:20Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![eric](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/eric/32/1490_2.png) [@eric](https://devforum.zoom.us/u/eric)\
**Post date:** [August 19, 2019, 6:39pm UTC](https://devforum.zoom.us/t/scope-for-recordings-v2-users-userid-recordings/5577/1 "2019-08-19T18:39:20Z")

</div>

When requesting recordings from a user account, I get an “Invalid access token, does not contain scopes: [recording:write:admin, recording:read:admin]” Error. Even though that request in the documentation says it can take the recording:read scope too. I just want access to the recordings the specific user has access to. I would rather not require account level admin scope if possible.

Documentation: [https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingslist](https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingslist)

Endpoint: /v2/users/{userid}/recordings

The actual response: {“code”:4700,“message”:“Invalid access token, does not contain scopes: [recording:write:admin, recording:read:admin]”}

---

<div class="post-metadata">

**Author:** ![eric](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/eric/32/1490_2.png) [@eric](https://devforum.zoom.us/u/eric)\
**Post date:** [August 19, 2019, 6:50pm UTC](https://devforum.zoom.us/t/scope-for-recordings-v2-users-userid-recordings/5577/2 "2019-08-19T18:50:20Z")

</div>

I wanted to add on a couple more afterthoughts…

The user requesting the recordings is the account owner, but I would expect it to behave the same way for any user on the account. The auth token does have valid recording:read recording:write scope

Thanks.

---

<div class="post-metadata">

**Author:** ![michael\_p.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/michael_p.zoom/32/18105_2.png) [@michael\_p.zoom](https://devforum.zoom.us/u/michael_p.zoom)\
**Post date:** [August 19, 2019, 8:02pm UTC](https://devforum.zoom.us/t/scope-for-recordings-v2-users-userid-recordings/5577/3 "2019-08-19T20:02:05Z")

</div>

Hi @eric,

What is the appID and userID that you’re requesting?

Thanks

---

<div class="post-metadata">

**Author:** ![eric](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/eric/32/1490_2.png) [@eric](https://devforum.zoom.us/u/eric)\
**Post date:** [August 19, 2019, 8:18pm UTC](https://devforum.zoom.us/t/scope-for-recordings-v2-users-userid-recordings/5577/4 "2019-08-19T20:18:02Z")

</div>

Hey Michael,

The ClientID: 71U\_nHMCSkqU1BWQuPAGOA  
The UserID: D1AT2iX6R3m6To0cWTWkOA

---

<div class="post-metadata">

**Author:** ![eric](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/eric/32/1490_2.png) [@eric](https://devforum.zoom.us/u/eric)\
**Post date:** [August 19, 2019, 9:32pm UTC](https://devforum.zoom.us/t/scope-for-recordings-v2-users-userid-recordings/5577/5 "2019-08-19T21:32:04Z")

</div>

Ok…so I was testing a theory about the /me variable you guys use sometimes. Apparently that allows this to work without the admin scope. Interesting that the userid doesn’t work, even though “me” and the userid were the same user. So my issue is resolved for this, since I can just use “me”, but you should update your documentation or fix the /users/{userid}/recordings API so it actually works when requesting recordings and using the userid that matches the authorization token.

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [August 19, 2019, 9:52pm UTC](https://devforum.zoom.us/t/scope-for-recordings-v2-users-userid-recordings/5577/6 "2019-08-19T21:52:01Z")

</div>

Thanks for the feedback @eric. We will continue looking into this. Glad you were able to resolve using the [me context](https://marketplace.zoom.us/docs/guides/authorization/oauth/oauth-with-zoom#me-context).

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [August 19, 2019, 10:30pm UTC](https://devforum.zoom.us/t/scope-for-recordings-v2-users-userid-recordings/5577/8 "2019-08-19T22:30:08Z")

</div>

@eric, I see there are two issues here:

1. Our [documentation states](https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingslist) you need the `user:read:admin` and `user:read` scopes, when you actually need the `recording:read`, and `recording:read:admin` scopes.
2. The userID and email do not work for the userID when using a User-Level OAuth app to [List All Recordings](https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingslist). Only the [me context](https://marketplace.zoom.us/docs/guides/authorization/oauth/oauth-with-zoom#me-context) works.

Thanks for sharing this, we will work on a fix.  
-Tommy

---

<div class="post-metadata">

**Author:** ![eric](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/eric/32/1490_2.png) [@eric](https://devforum.zoom.us/u/eric)\
**Post date:** [August 19, 2019, 11:34pm UTC](https://devforum.zoom.us/t/scope-for-recordings-v2-users-userid-recordings/5577/9 "2019-08-19T23:34:08Z")

</div>

Yes, you summarized perfectly @tommy, thanks for following up. I didn’t even realize how far off the scopes where in the docs, glad you are on top of it. Now if the other problem of the 403 error on recording downloads gets fixed, I can actually test all of this 😃

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [August 20, 2019, 8:26pm UTC](https://devforum.zoom.us/t/scope-for-recordings-v2-users-userid-recordings/5577/10 "2019-08-20T20:26:53Z")

</div>

Hey @eric,

[The docs are updated now with the correct scopes.](https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingslist)

[Engineering is working on the 403 error related to downloading recordings](https://devforum.zoom.us/t/update-recording-download-url-403-error/5608), and then will take a look at the userID and email not working for the [List All Recordings endpoint.](https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingslist)

Ticket `ZOOM-104779`

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [August 21, 2019, 3:35pm UTC](https://devforum.zoom.us/t/scope-for-recordings-v2-users-userid-recordings/5577/11 "2019-08-21T15:35:25Z")

</div>

Hey @eric,

Thanks for your patience, the issue is now fixed.

> [@Update: Recording download url 403 error](https://devforum.zoom.us/t/update-recording-download-url-403-error/5608/10):
>
> Hi @Everyone, Good news! Our Engineers have worked tirelessly overnight to resolve the download url issue which you are experiencing. Now that the fix is in place, please try to use your access token with the download url to confirm that it is working. Let us know if you are still experiencing this or any other issues. Thanks

-Tommy

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [September 5, 2019, 11:05pm UTC](https://devforum.zoom.us/t/scope-for-recordings-v2-users-userid-recordings/5577/12 "2019-09-05T23:05:37Z")

</div>

Hey @eric,

Update, this is the intended functionality. We will update our docs to make this more clear.

User-level OAuth apps with the `recording:read` scope can only call the [GET /users/{userId}/recordings](https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingslist) by passing in `me` as the `{userId}`. Email or userId will not work.

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![eric](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/eric/32/1490_2.png) [@eric](https://devforum.zoom.us/u/eric)\
**Post date:** [September 5, 2019, 11:20pm UTC](https://devforum.zoom.us/t/scope-for-recordings-v2-users-userid-recordings/5577/13 "2019-09-05T23:20:29Z")

</div>

Thanks Tommy. Might want to put that up front in the docs, not just for this endpoint, that /me/ is not synonymous with your /{userid}/. I expected they would resolve to the same thing as they are the same user.

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [September 6, 2019, 7:15pm UTC](https://devforum.zoom.us/t/scope-for-recordings-v2-users-userid-recordings/5577/14 "2019-09-06T19:15:54Z")

</div>

Hey @eric,

Yes we are updating our documentation! I will post back here with the link.

> [@eric](#):
>
> I expected they would resolve to the same thing as they are the same user.

I expected the same.

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [September 7, 2019, 1:25am UTC](https://devforum.zoom.us/t/scope-for-recordings-v2-users-userid-recordings/5577/15 "2019-09-07T01:25:16Z")

</div>

Posting with updated docs.

> **[List All Recordings - Cloud Recording - Zoom API - API Reference](https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingslist)**
>
> List all recordings.
> Scopes: recording:read:admin recording:read
> 
> While using the recording:read scope for a user-level app, provide me as the value for...

“While using the recording:read scope for a user-level app, provide me as the value for userId in the path parameter.”

-Tommy

---

<div class="post-metadata">

**Author:** ![DeveloperBot](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/developerbot/32/12632_2.png) [@DeveloperBot](https://devforum.zoom.us/u/DeveloperBot)\
**Post date:** [August 21, 2020, 6:39pm UTC](https://devforum.zoom.us/t/scope-for-recordings-v2-users-userid-recordings/5577/17 "2020-08-21T18:39:35Z")

</div>

Closed on August 21, 2020, 6:39pm UTC


