# Just Want to Make Some Simple API Calls

**URL:** <https://devforum.zoom.us/t/just-want-to-make-some-simple-api-calls/87733>\
**Category:** API and Webhooks\
**Created:** [May 2, 2023, 8:06pm UTC](https://devforum.zoom.us/t/just-want-to-make-some-simple-api-calls/87733 "2023-05-02T20:06:54Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Unhandled\_Exception](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/unhandled_exception/32/48138_2.png) [@Unhandled\_Exception](https://devforum.zoom.us/u/Unhandled_Exception)\
**Post date:** [May 2, 2023, 8:06pm UTC](https://devforum.zoom.us/t/just-want-to-make-some-simple-api-calls/87733/1 "2023-05-02T20:06:54Z")

</div>

I just want to make some simple API calls for the meetings I’ve hosted. Simple stuff like fetch meetings, duration, attendance, etc.

I’ve found the docs. Read up on JWT (going away in a month) and OAuth.

I’ve got the JWT stuff figured out. But since it’s going away in June, seems like I should use OAuth.

But for the life of me I can’t figure out OAuth.

I just want to run a python script, fetch some data from Zoom, massage it, and send it elsewhere (outside of Zoom).

It looks like I’ve got a couple of options:

- Server-to-Server OAuth
- OAuth

But I can’t get past “Redirect URL for OAuth”. And both OAuth options seems to require it.

Do I really have to spin up some external facing listener just to make this happen?

Surely, I’m missing something.

---

<div class="post-metadata">

**Author:** ![elisa.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/elisa.zoom/32/47836_2.png) [@elisa.zoom](https://devforum.zoom.us/u/elisa.zoom)\
**Post date:** [May 2, 2023, 8:38pm UTC](https://devforum.zoom.us/t/just-want-to-make-some-simple-api-calls/87733/2 "2023-05-02T20:38:33Z")

</div>

Hey @Unhandled_Exception  
Thanks for reaching out to us and welcome to the Developer forum!  
Yes, the JWT app is going to be deprecated next month so you are on the right path while trying to use either OAuth or Server-to-Server OAuth app types.

Let me share with you a post I created a while ago on how to use our S2S OAuth app with Postman:

> [@How to user Server-to-Sever OAuth app with Postman](https://devforum.zoom.us/t/how-to-user-server-to-sever-oauth-app-with-postman/70848):
>
> How to use our Server-to-Server OAuth with Postman? As some of you might be aware of, our JWT app is being deprecated by June 2023 and we encourage you to migrate to the newly introduced [Server-to-Server OAuth App](https://marketplace.zoom.us/docs/guides/build/server-to-server-oauth-app) That being said, here is a quick and simple guide on how to use or new app with Postman As stated in our documentation here: This new app type facilitates OAuth-authenticated requests between servers without end-user involvement. And this grant type enable your private server a…

This post might give you an idea of how to use it and if you are just trying to do some basic account-level operations (such as get a meeting, or get meeting participant data) I think you will be just fine with our Server to Server Oauth app.

We also have a sample app available on Github that might be worth taking a look at:  
[GitHub - zoom/server-to-server-oauth-starter-api: Starting point for developing a Zoom S2S OAuth API](https://github.com/zoom/server-to-server-oauth-starter-api)

Link to our docs here:

> **[Internal apps (Server-to-server)](https://developers.zoom.us/docs/internal-apps/#make-api-calls-to-zoom-endpoints)**
>
> The Zoom Developer Platform is an open platform that allows third-party developers to build applications and integrations upon Zoom’s video-first unified communications platform.

Hope this helps and let me know if you need anything else 🙂  
Cheers,  
Elisa

---

<div class="post-metadata">

**Author:** ![Unhandled\_Exception](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/unhandled_exception/32/48138_2.png) [@Unhandled\_Exception](https://devforum.zoom.us/u/Unhandled_Exception)\
**Post date:** [May 2, 2023, 8:51pm UTC](https://devforum.zoom.us/t/just-want-to-make-some-simple-api-calls/87733/3 "2023-05-02T20:51:44Z")

</div>

Thanks.

Reading your response, i see a bit of shorthand I see A LOT:

```auto
Step 1

Create a new Post request to https://zoom.us/oauth/token

```

Ok.

(looks around)

Ok, pulling apart some powershell, it looks like there’s a base64 encoded custom header, it’s sent as a POST, and there is a query string too,

. . .

Mods can close this.

I’m giving up.

I’ve wasted the better part of a day on this.

Contrast with Slack’s API and Docebo’s API. I was able to get up and running quickly with both.

---

<div class="post-metadata">

**Author:** ![elisa.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/elisa.zoom/32/47836_2.png) [@elisa.zoom](https://devforum.zoom.us/u/elisa.zoom)\
**Post date:** [May 3, 2023, 12:30pm UTC](https://devforum.zoom.us/t/just-want-to-make-some-simple-api-calls/87733/4 "2023-05-03T12:30:04Z")

</div>

Hi @Unhandled_Exception  
Sorry to hear that this has been challenging for you.

I just wanted to come back and maybe provide a quick overview of how to generate the token in simple steps, once you get the gist of it, it is pretty straightforward.

Once you have your [Server-to-Sever OAuth app](https://developers.zoom.us/docs/internal-apps/#prerequisite) created with all the basic information and scopes in your account, you will have a set of credentials that will be used to request the access token:

1. Account ID
2. Client ID
3. Client Secret

With these credentials, you will make a request to the Zoom Oauth endpoint in order to get an access token.

As you mentioned you were using Powershell, I have created a request with my credentials using Postman and grabbed the code-snippet for Powershell and it looks like this:

```auto
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"

$headers.Add("Authorization", "Basic {myClientID}:{myClientSecret}")

$response = Invoke-RestMethod 'https://zoom.us/oauth/token?grant_type=account_credentials&account_id={myAccountID}' -Method 'POST' -Headers $headers

$response | ConvertTo-Json

```

And this is the response I am getting:

 ![Screenshot 2023-05-03 at 8.26.13 AM](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/0/2/0203824c1859471a418296c7519fc3d5e366774b.png)

Once you get this reponse, you will use the access\_token the same way you are using the JWT token.  
The only thing that changes is the way you generate the token, for the Server-to-Sever OAuth app you request a token to our OAuth endpoint using account credentials, whereas with the JWT app you generate a token using your API key and API secret.

Lastly, here is a video that I created a while ago on how to set up a Server-to-Server OAuth app step by step and also how to make requests via Postman.

https://www.youtube.com/embed/OkBE7CHVzho?feature=oembed&wmode=opaque&list=PLKpRxBfeD1kGN-0QgQ6XtSwtxI3GQM16R

Please let me know if this helped and feel free to ask as many questions as you would like, I am happy to guide and provide you with support on this 🙂

Cheers,  
Elisa

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/1/614bdd549b610bbaa46ff934617683a02bdaa03c.png) [@system](https://devforum.zoom.us/u/system)\
**Post date:** [May 6, 2024, 4:06am UTC](https://devforum.zoom.us/t/just-want-to-make-some-simple-api-calls/87733/5 "2024-05-06T04:06:28Z")

</div>

Closed on May 6, 2024, 4:06am UTC

This topic was automatically closed 368 days after the last reply. New replies are no longer allowed.
