# Invalid access token api

**URL:** <https://devforum.zoom.us/t/invalid-access-token-api/53234>\
**Category:** API and Webhooks\
**Created:** [June 28, 2021, 12:45am UTC](https://devforum.zoom.us/t/invalid-access-token-api/53234 "2021-06-28T00:45:42Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![andreydevelops](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/andreydevelops/32/17366_2.png) [@andreydevelops](https://devforum.zoom.us/u/andreydevelops)\
**Post date:** [June 28, 2021, 12:45am UTC](https://devforum.zoom.us/t/invalid-access-token-api/53234/1 "2021-06-28T00:45:43Z")

</div>

Hi! I want to integrate zoom into my app but I can’t solve this problem

Where do I get the API keys for zoom? I can see Client ID and Client Secret ID, but other services provide 4 keys. I am a little confused.

I want to be able to create zoom users attached to my zoom account when they register, I can see that there is a method for that in the API docs. But I don’t know if having to renew my access token every hour is efficient. How can I solve this problem? I kinda like zoom and I want to be able to use it in my app.

My setup is as follows: Django app + python wrapper ([GitHub - prschmid/zoomus: Python client library for the Zoom.us REST API v1 and v2](https://github.com/prschmid/zoomus)) + ngrok (for https)

I put the OAuth Client and Client Secret into the `API_KEY` and `API_KEY_SECRET` but I get an error:

```auto
{'code': 124, 'message': 'Invalid access token.'}

```

What am I doing wrong?

---

<div class="post-metadata">

**Author:** ![MaxM](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maxm/32/42303_2.png) [@MaxM](https://devforum.zoom.us/u/MaxM)\
**Post date:** [June 28, 2021, 11:50pm UTC](https://devforum.zoom.us/t/invalid-access-token-api/53234/2 "2021-06-28T23:50:57Z")

</div>

Hey @andreydevelops,

Thank you for reaching out to the Zoom Developer Forum. If you want to avoid the need to refresh the access\_token, try using a [JWT App](https://marketplace.zoom.us/docs/guides/auth/jwt) instead.

Please see our guide on building an app with JWT:

> **[JSON Web Tokens (JWT) - Build an App - Documentation](https://marketplace.zoom.us/docs/guides/build/jwt-app)**
>
> Create a JWT App
> 
> JSON Web Tokens are strings of text which are passed on every request to verify the authorization of the server. They contain a combin...

Thanks,  
Max

---

<div class="post-metadata">

**Author:** ![andreydevelops](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/andreydevelops/32/17366_2.png) [@andreydevelops](https://devforum.zoom.us/u/andreydevelops)\
**Post date:** [June 28, 2021, 11:55pm UTC](https://devforum.zoom.us/t/invalid-access-token-api/53234/3 "2021-06-28T23:55:37Z")

</div>

JWT was the answer, the wrapper i was using did not specify which type of token I was supposed to use. Correct token is from JWT app

---

<div class="post-metadata">

**Author:** ![MaxM](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maxm/32/42303_2.png) [@MaxM](https://devforum.zoom.us/u/MaxM)\
**Post date:** [June 29, 2021, 9:16pm UTC](https://devforum.zoom.us/t/invalid-access-token-api/53234/4 "2021-06-29T21:16:44Z")

</div>

Awesome! I’m glad that helped. I’ll go ahead and close this topic now but feel free to open a new topic if you encounter any further issues or questions.

Max

---

<div class="post-metadata">

**Author:** ![MaxM](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maxm/32/42303_2.png) [@MaxM](https://devforum.zoom.us/u/MaxM)\
**Post date:** [June 29, 2021, 9:16pm UTC](https://devforum.zoom.us/t/invalid-access-token-api/53234/5 "2021-06-29T21:16:48Z")

</div>


