# Authenticate in a machine-to-machine context

**URL:** <https://devforum.zoom.us/t/authenticate-in-a-machine-to-machine-context/95525>\
**Category:** Authentication\
**Created:** [September 21, 2023, 11:01am UTC](https://devforum.zoom.us/t/authenticate-in-a-machine-to-machine-context/95525 "2023-09-21T11:01:10Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![stefan.norinder](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/stefan.norinder/32/36843_2.png) [@stefan.norinder](https://devforum.zoom.us/u/stefan.norinder)\
**Post date:** [September 21, 2023, 11:01am UTC](https://devforum.zoom.us/t/authenticate-in-a-machine-to-machine-context/95525/1 "2023-09-21T11:01:11Z")

</div>

We have an integration flow that uses Zoom Api to read and write user information. Now I’m trying to migrate our current authentication flow away from JWT tokens. So I created a server-to-server oauth flow, but when I communicate with the api I get

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

```

How am I suppose to authenticate in a machine-to-machine context to be able to communicate with Zoom api?

---

<div class="post-metadata">

**Author:** ![chunsiong.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chunsiong.zoom/32/35488_2.png) [@chunsiong.zoom](https://devforum.zoom.us/u/chunsiong.zoom)\
**Post date:** [September 22, 2023, 3:05am UTC](https://devforum.zoom.us/t/authenticate-in-a-machine-to-machine-context/95525/2 "2023-09-22T03:05:36Z")

</div>

@stefan.norinder what programming language are you using?  
I might be able to provide some code samples to help

---

<div class="post-metadata">

**Author:** ![stefan.norinder](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/stefan.norinder/32/36843_2.png) [@stefan.norinder](https://devforum.zoom.us/u/stefan.norinder)\
**Post date:** [September 22, 2023, 4:45am UTC](https://devforum.zoom.us/t/authenticate-in-a-machine-to-machine-context/95525/3 "2023-09-22T04:45:16Z")

</div>

@chunsiong.zoom Thanks for you reply. The integration application is written in dotnet c#, but as a first step I’m trying to get it to work in Postman. Here’s the configuration:

 ![image](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/7/67e977901be63d54a7c3481f5ee25395870951fd.png)

Maybe I’m missing some header? For example, I’m not using `account_id` which was provided in the registration process.

With that said, I’d love some example code. Thanks in advance!

---

<div class="post-metadata">

**Author:** ![chunsiong.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chunsiong.zoom/32/35488_2.png) [@chunsiong.zoom](https://devforum.zoom.us/u/chunsiong.zoom)\
**Post date:** [September 22, 2023, 5:26am UTC](https://devforum.zoom.us/t/authenticate-in-a-machine-to-machine-context/95525/4 "2023-09-22T05:26:14Z")

</div>

@stefan.norinder ,

Do check out the blog by my colleague

> **[Setting up Server-to-Server (S2S) OAuth to test Zoom APIs via Postman](https://jenzushsu.medium.com/setting-up-server-to-server-s2s-oauth-to-test-zoom-apis-via-postman-32c9cd7a73)**
>
> For those who have been integrating and developing on Zoom Developer Platform, this shouldn’t not be new to you. But, for those who are…

For the account\_id, it is directly entered into the **Access Token URL**

---

<div class="post-metadata">

**Author:** ![stefan.norinder](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/stefan.norinder/32/36843_2.png) [@stefan.norinder](https://devforum.zoom.us/u/stefan.norinder)\
**Post date:** [September 22, 2023, 5:47am UTC](https://devforum.zoom.us/t/authenticate-in-a-machine-to-machine-context/95525/5 "2023-09-22T05:47:19Z")

</div>

Thanks @chunsiong.zoom. I had missed adding my account id to the Access Token Url. Now it works. (Confusing error message from Zoom though…)

For anyone else experiencing the same problem, the Access Token Url must look like this `https://zoom.us/oauth/token?grant_type=account_credentials&account_id=<your_account_id>`.
