Cloud recording download fails with No Permission

API Endpoint(s) and/or Zoom API Event(s)

  • /v2/users/me/recordings

  • https://eu01web.zoom.us/rec/download

Description
In our SaaS we call /v2/users/me/recordings to fetch recordings and then import files using the returned download_url. For the download, we attach the user’s OAuth token via a access_token query parameter.

Today, this suddenly stopped working, but as it seems only for non-admin users in our account, without any changes on our side. I’m not sure yet whether this already affects any of our customers. The last successful import from a non-admin user in our account was at November 26.

When we try to download a recording of a non-admin user using his Oauth token and the download_url, Zoom returns an HTML file containing the message “No Permission. (200)”.

I’ve already tested passing the token via the Authorization: Bearer header instead of the query parameter, but the result is the same. I also checked the setting “Prevent hosts from accessing their cloud recordings”, but it’s not enabled in our account.

I’m not sure why this fails all of a sudden. I’m not aware of any changes on our side, and this approach has worked without issues for a long time.

Error?
No Permission. (200)

How To Reproduce
*Steps to reproduce the behavior:

  1. Get OAuth token for non-admin user via /oauth/token
  2. Fetch recordings via /v2/users/me/recordings using this token
  3. Try download a file via returned download_url and the same token e.g. https://eu01web.zoom.us/rec/download/abc?access_token=TOKEN.

Hi @jharrer ,

Looking into this. Could you please provide a few zm-tracking-idfrom the response headers of the failed requests? I’ll let you know if there’s anything else needed.

Thanks for looking into this.

Here you have the tracking id from a test import:

Endpoint: https://eu01web.zoom.us/rec/download/<id>?access_token=<token>
Time: 2025-12-12T10:01:51.453Z
x-zm-trackingid: v=2.0;clid=eu01;rid=WEB_5a4dd06ca29595468e5dbe257f0d29a9

Here are some other trackingIds around the same time:

v=2.0;clid=eu01;rid=WEB_1dca97023c526b7b3e08bc39e115c5d7
v=2.0;clid=eu01;rid=WEB_da8cd749a68b785b4f332427e578d875

In case you need more details, just let me know.

Same issue here. It was working well, and now for non admin users the html page with error 200.

Any news?