# No working auth method for account-level REST API access on General app (Admin-managed) — recordings/transcript endpoints

**URL:** <https://devforum.zoom.us/t/no-working-auth-method-for-account-level-rest-api-access-on-general-app-admin-managed-recordings-transcript-endpoints/145761>\
**Category:** API and Webhooks\
**Created:** [August 21, 2026, 3:11am UTC](https://devforum.zoom.us/t/no-working-auth-method-for-account-level-rest-api-access-on-general-app-admin-managed-recordings-transcript-endpoints/145761 "2026-08-21T03:11:49Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Hannah2](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/hannah2/32/76148_2.png) [@Hannah2](https://devforum.zoom.us/u/Hannah2)\
**Post date:** [August 21, 2026, 3:11am UTC](https://devforum.zoom.us/t/no-working-auth-method-for-account-level-rest-api-access-on-general-app-admin-managed-recordings-transcript-endpoints/145761/1 "2026-08-21T03:11:49Z")

</div>

### No working auth method for account-level REST API access on General app (Admin-managed) — recordings/transcript endpoints

* * *

Description:  
I have a General app (Admin-managed) and I’m trying to get account-level  
access — no per-user OAuth consent screen — to the Cloud Recording API, to  
build a server-side integration that automatically processes recordings.  
I’ve tried all three auth approaches I’m aware of and each fails a  
different way. I’d like to know what the currently correct method is for  
this use case now that the standalone Server-to-Server OAuth app type has  
been deprecated in favor of General apps.

API Endpoint(s) and/or Zoom API Event(s):  
POST [https://zoom.us/oauth/token](https://zoom.us/oauth/token) (tried grant\_type=account\_credentials, client\_credentials, and authorization\_code)  
GET [https://api.zoom.us/v2/users/{userId}/recordings](https://api.zoom.us/v2/users/%7BuserId%7D/recordings)

(Note: the recording.transcript\_completed webhook itself works fine — this  
is purely about getting a working access token to call the REST API.)

* * *

* * *

Error?:

1. grant\_type=account\_credentials returns:  
{“reason”:“The application doesn’t support account\_credential”,“error”:“unsupported\_grant\_type”}

2. grant\_type=client\_credentials succeeds and returns an access token, but  
using that token against the recordings endpoint returns:  
{“code”:124,“message”:“This API does not support client credentials for authorization.”}

3. Standard OAuth authorization\_code flow: I added and saved an OAuth  
Redirect URL ([https://localhost/callback](https://localhost/callback)) on the Basic Information page  
(confirmed it persists after a page refresh). Visiting the authorize URL  
with that exact same redirect\_uri returns:  
“Invalid redirect: [https://localhost/callback](https://localhost/callback) (4,700)”

Additionally, “Add app now” under the Local Test menu stays greyed out with  
no tooltip and no visible checklist showing what’s missing, even after  
completing Basic Information, Scopes (cloud\_recording:read:recording:admin),  
and the Access/Event Subscription setup.

* * *

How To Reproduce:

1. Request URL / Headers / Body:

2. Authentication method / app type:  
General app, Admin-managed. Scopes added: cloud\_recording:read:recording:admin

3. Errors: see the three responses listed above under “Error?”

---

<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:** [August 24, 2026, 4:40pm UTC](https://devforum.zoom.us/t/no-working-auth-method-for-account-level-rest-api-access-on-general-app-admin-managed-recordings-transcript-endpoints/145761/2 "2026-08-24T16:40:20Z")

</div>

> [@Hannah2](#):
>
> I’d like to know what the currently correct method is for  
> this use case now that the standalone Server-to-Server OAuth app type has  
> been deprecated in favor of General apps.

Hi @Hannah2 , S2S apps are still supported and seems like it would be appropriate in your use case if this will be used internally only. Here is [the guidance](https://developers.zoom.us/docs/internal-apps/) 🙂

> [@Hannah2](#):
>
> Error?:
> 
> 1. grant\_type=account\_credentials returns:  
> {“reason”:“The application doesn’t support account\_credential”,“error”:“unsupported\_grant\_type”}
> 
> 2. grant\_type=client\_credentials succeeds and returns an access token, but  
> using that token against the recordings endpoint returns:  
> {“code”:124,“message”:“This API does not support client credentials for authorization.”}
> 
> 3. Standard OAuth authorization\_code flow: I added and saved an OAuth  
> Redirect URL ([https://localhost/callback](https://localhost/callback)) on the Basic Information page  
> (confirmed it persists after a page refresh). Visiting the authorize URL  
> with that exact same redirect\_uri returns:  
> “Invalid redirect: [https://localhost/callback](https://localhost/callback) (4,700)”

Yes, so `grant_type:account_credentials` is for S2S, not general OAuth apps so that explains errors 1 and 2. Here is what your request URL should look like:

`[https://zoom.us/oauth/authorize?response\_type=code&client\_id={{oAuthDevClientId}](https://zoom.us/oauth/authorize?response_type=code&client_id=%7B%7BoAuthDevClientId%7D)}&redirect\_uri={{oAuthDevRedirectUri}}`

See docs [here](https://developers.zoom.us/docs/integrations/oauth/#app-type-general) and you can test this in [Postman](https://www.postman.com/zoom-developer/zoom-public-workspace/request/5iguml9/request-user-authorization). You can use [this sample app](https://github.com/zoom/zoom-oauth-sample-app) for OAuth for additional guidance/set up.
