# Error "This API does not support client credentials for authorization." when trying to call an endpoint with Server-to-Server OAuth App credentials

**URL:** <https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028>\
**Category:** Authentication\
**Created:** [March 21, 2023, 1:25am UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028 "2023-03-21T01:25:08Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![rich1](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/rich1/32/1265_2.png) [@rich1](https://devforum.zoom.us/u/rich1)\
**Post date:** [March 21, 2023, 1:25am UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/1 "2023-03-21T01:25:08Z")

</div>

* * *

**API Endpoint(s) and/or Zoom API Event(s)**  
([https://api.zoom.us/v2/users/:userId/meetings?type=live&page\_size=30&page\_number=1](https://api.zoom.us/v2/users/:userId/meetings?type=live&page_size=30&page_number=1))

**Description**  
I am working on updating our authentication from JWT to OAuth. I followed the instructions to create a Server-to-Server OAuth app, noting the account ID, client key, and client secret. Now I am attempting to do some test calls in Postman, to the meetings API.

I can successfully pull a Bearer Token, but when I then use it to make the call, the endpoint returns:

```
"code": 124,
"message": "This API does not support client credentials for authorization."

```

**Error?**  
“code”: 124,  
“message”: “This API does not support client credentials for authorization.”

**How To Reproduce**  
1.) Create Server-to-Server OAuth application.  
2.) Note account ID, client key, and client secret  
3.) Set up Postman for OAuth 2.0 authentication, and get new access token  
4.) Use that token for a call to the endpoint.  
5.) Error is returned.

---

<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:** [March 21, 2023, 2:07am UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/2 "2023-03-21T02:07:11Z")

</div>

Hi @rich1 ,

please make sure that the grant type is “account\_credentials” and not “client\_credentials” .  
That should fix the issue.

Thanks

---

<div class="post-metadata">

**Author:** ![rich1](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/rich1/32/1265_2.png) [@rich1](https://devforum.zoom.us/u/rich1)\
**Post date:** [March 21, 2023, 2:59am UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/3 "2023-03-21T02:59:08Z")

</div>

In Postman, how should I enter this in their OAuth authentication flow? I’ve been trying to do a custom call to /oauth/token, but I can’t get it to work. I get a 405 error.

To be more specific, I had a GET call to /oauth/token, with account\_credentials for grant type and account ID specified, plus a Base64 representation of client key and secret (both as an Authorization header and body). I’m unable to get that to work.

I’m trying to prototype and validate in Postman before I start moving this into my production codebase. I appreciate your help and support.

---

<div class="post-metadata">

**Author:** ![rich1](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/rich1/32/1265_2.png) [@rich1](https://devforum.zoom.us/u/rich1)\
**Post date:** [March 21, 2023, 1:21pm UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/4 "2023-03-21T13:21:05Z")

</div>

To be clear, what happens when I do this is a 405 Error is returned.

---

<div class="post-metadata">

**Author:** ![rich1](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/rich1/32/1265_2.png) [@rich1](https://devforum.zoom.us/u/rich1)\
**Post date:** [March 21, 2023, 1:25pm UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/5 "2023-03-21T13:25:40Z")

</div>

I resolved this. I was calling a GET instead of a POST.

---

<div class="post-metadata">

**Author:** ![aparna](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/aparna/32/48150_2.png) [@aparna](https://devforum.zoom.us/u/aparna)\
**Post date:** [May 3, 2023, 5:27am UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/6 "2023-05-03T05:27:45Z")

</div>

Hi I also got the same error . I have a member account . I used the client credentials that admin gave. after taking the token I cant get MeetingDetails. what is the reason. Here is my code,

import requests as rq  
import base64  
import json

cID=‘…’  
cSec=‘…’  
userID=“…”

#credential\_ID:credential\_Secret  
credentials= f"{cID}:{cSec}"  
#encode for base =64  
bStream= credentials.encode(“ascii”) #bit stream  
encode64= base64.b64encode(bStream)  
sEncode= encode64.decode(“ascii”)

auth\_url=“[https://zoom.us/oauth/token?grant\_type=client\_credentials](https://zoom.us/oauth/token?grant_type=client_credentials)”  
header={“Authorization”: f"Basic {sEncode}"}

res = rq.post(auth\_url,headers=header)

token= res.json()[“access\_token”]  
print(token)  
header2 = {“authorization”: f"bearer {token}"}  
#print(header2)  
res2 = rq.get(“[https://api.zoom.us/v2/users/cID](https://api.zoom.us/v2/users/cID)”, headers=header2)

print(res2.json())

---

<div class="post-metadata">

**Author:** ![aparna](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/aparna/32/48150_2.png) [@aparna](https://devforum.zoom.us/u/aparna)\
**Post date:** [May 3, 2023, 5:29am UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/7 "2023-05-03T05:29:09Z")

</div>

I got this : {‘code’: 124, ‘message’: ‘This API does not support client credentials for authorization.’}

---

<div class="post-metadata">

**Author:** ![lamaisondessavoirs](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/lamaisondessavoirs/32/48255_2.png) [@lamaisondessavoirs](https://devforum.zoom.us/u/lamaisondessavoirs)\
**Post date:** [May 7, 2023, 3:33pm UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/8 "2023-05-07T15:33:02Z")

</div>

hello,  
I’ve the same problem with this endpoint :  
“[https://api.zoom.us/v2/meetings/“.$meeting\_id.”/recordings](https://api.zoom.us/v2/meetings/%22.%24meeting_id.%22/recordings)”

my error : "resulted in a `401 Unauthorized` response: {“code”:124,“message”:“This API does not support client credentials for authorization.”} "

I can’t download my meeting recordings.

I have a JWT app that has been doing this for 2 years but it will be deprecated in June 2023.

I tried to create an OAuth app but I can’t whitelist a domain because students need to be able to enter the Zoom meeting as soon as the host starts the room and the students don’t all have the same domain.

can you help me find a solution?

Thanks

Selim

---

<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:** [July 6, 2023, 12:29am UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/9 "2023-07-06T00:29:00Z")

</div>

@lamaisondessavoirs if you are using user authorized OAuth, please use the method mentioned here [[OAuth for user authorized apps](https://developers.zoom.us/docs/integrations/oauth/)]

Use " `grant_type` as “authorization\_code” instead of client\_creentials

---

<div class="post-metadata">

**Author:** ![devang.wappnet](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/devang.wappnet/32/51694_2.png) [@devang.wappnet](https://devforum.zoom.us/u/devang.wappnet)\
**Post date:** [September 13, 2023, 12:10pm UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/10 "2023-09-13T12:10:23Z")

</div>

> [@ojus.zoom](#):
>
> account\_credentials

if we change this then invalid request error while generating access token.

---

<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:** [September 14, 2023, 4:38am UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/11 "2023-09-14T04:38:49Z")

</div>

@devang.wappnet can you make sure that you are making a POST request and not a GET request?

---

<div class="post-metadata">

**Author:** ![zoomx](https://avatars.discourse-cdn.com/v4/letter/z/a9a28c/32.png) [@zoomx](https://devforum.zoom.us/u/zoomx)\
**Post date:** [October 19, 2023, 11:58am UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/12 "2023-10-19T11:58:49Z")

</div>

yeah , I made this mistake,thanks~

---

<div class="post-metadata">

**Author:** ![devang.wappnet](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/devang.wappnet/32/51694_2.png) [@devang.wappnet](https://devforum.zoom.us/u/devang.wappnet)\
**Post date:** [January 4, 2024, 11:31am UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/13 "2024-01-04T11:31:20Z")

</div>

Hi @ojus.zoom,

I intend to purchase a Pro Plan subscription for my Zoom account to manage and create Zoom meetings for my company.

I have a query regarding the creation of licensed users for my Zoom Pro account. After the purchase of the Pro plan, is it necessary to make additional payments for creating licensed users, or can I create licensed users for free within the Pro plan?

Upon attempting to add a new licensed user, I received the following error message:

{  
“code”: 3412,  
“message”: “Your request to add a new Licensed user could not be approved at this time because your account has reached the permitted maximum number of 1 paying users. Please purchase additional licenses or contact the Zoom support team to provision additional users in your account.”  
}

Could you please provide clarification on whether additional payments are required for creating licensed users within the Pro plan?

Thank you.

---

<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:** [January 8, 2024, 4:51pm UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/14 "2024-01-08T16:51:54Z")

</div>

@devang.wappnet You can create upto 9999 basic users (free plan users) in your account with a Pro Account, however if you want to create a licensed users (for ex: create meetings that dont have a 40 minute limit), then you need to pay for the license of the user.

---

<div class="post-metadata">

**Author:** ![mikedlv](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/mikedlv/32/55915_2.png) [@mikedlv](https://devforum.zoom.us/u/mikedlv)\
**Post date:** [January 25, 2024, 12:41am UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/15 "2024-01-25T00:41:44Z")

</div>

Writing in Python. I have the same error. Im using POSt and also using client\_credentials

```auto
def get_access_token():
    token_url = 'https://zoom.us/oauth/token'
    auth_header = {
        'Authorization': f'Basic {base64.b64encode(f"{CLIENT_ID}:{CLIENT_SECRET}".encode()).decode()}',
        'Content-Type': 'application/x-www-form-urlencoded'
    }
    token_data = {
        'grant_type': 'client_credentials'
    }
    response = requests.post(token_url, headers=auth_header, data=token_data)
    if response.status_code == 200:
        return response.json()['access_token']
    else:
        raise Exception(f"Could not get an access token. Status Code: {response.status_code}")

# Use the access token to create headers for Zoom API
access_token = get_access_token()
headers = {
    'authorization': f'Bearer {access_token}',
    'content-type': 'application/json'
}

```

---

<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:** [January 25, 2024, 3:43am UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/16 "2024-01-25T03:43:46Z")

</div>

@mikedlv if your error is the same one, then you need to buy additional licenses or create basic users.

---

<div class="post-metadata">

**Author:** ![mikedlv](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/mikedlv/32/55915_2.png) [@mikedlv](https://devforum.zoom.us/u/mikedlv)\
**Post date:** [January 25, 2024, 10:24pm UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/17 "2024-01-25T22:24:28Z")

</div>

Thanks, Ojus. I managed to fix it. Here’s the updated Python code or anyone wanting to use Python to get the Bearer auth token.

```auto
def fetch_bearer_token():
    credentials = base64.b64encode(f"{CLIENT_ID}:{CLIENT_SECRET}".encode()).decode()
    token_url = f"https://zoom.us/oauth/token?grant_type=account_credentials&account_id={ACCOUNT_ID}"
    headers = {
        'Authorization': f'Basic {credentials}',
        'Content-Type': 'application/x-www-form-urlencoded',
    }
    response = requests.post(token_url, headers=headers)
    if response.status_code == 200:
        return response.json()['access_token']
    else:
        raise Exception(f"Error fetching bearer token: {response.text}")

```

Enjoy!

---

<div class="post-metadata">

**Author:** ![eparshall](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/eparshall/32/59212_2.png) [@eparshall](https://devforum.zoom.us/u/eparshall)\
**Post date:** [May 1, 2024, 3:40pm UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/18 "2024-05-01T15:40:39Z")

</div>

I am experiencing this same issue when using a Server-to-Server authentication token.

C# class that first does a POST to the [https://zoom.us/oauth/token](https://zoom.us/oauth/token) url using form url encoded values for grant\_type and account\_id (per the developer docs) with Base64 endoded clientId:clientSecret. This returns the access\_token (Bearer) successfully.

However, when I make a subsequent request using the standard .net6 http client with an Authorization header set to “Bearer ${access\_token}” the subsequent GET requests (such as [https://api.zoom.us/v2/users?page\_size=100&page\_number=1](https://api.zoom.us/v2/users?page_size=100&page_number=1)) fail with the “API does not support client credentials for authorization” error.

What is strange to me is that I can make the IDENTICAL requests in a REST client (aka Postman, but we use Insomnia) to get the access token and then use that token in other requests and the requests succeed.

I’m really confused and any assistance would be greatly appreciated.

---

<div class="post-metadata">

**Author:** ![eparshall](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/eparshall/32/59212_2.png) [@eparshall](https://devforum.zoom.us/u/eparshall)\
**Post date:** [May 1, 2024, 3:57pm UTC](https://devforum.zoom.us/t/error-this-api-does-not-support-client-credentials-for-authorization-when-trying-to-call-an-endpoint-with-server-to-server-oauth-app-credentials/85028/19 "2024-05-01T15:57:20Z")

</div>

Ok, so I figured this out…programmer error.
