# Recording Join Token

**URL:** <https://devforum.zoom.us/t/recording-join-token/109816>\
**Category:** API and Webhooks\
**Tags:** api\
**Created:** [May 13, 2024, 1:00pm UTC](https://devforum.zoom.us/t/recording-join-token/109816 "2024-05-13T13:00:49Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![management1](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/management1/32/49650_2.png) [@management1](https://devforum.zoom.us/u/management1)\
**Post date:** [May 13, 2024, 1:00pm UTC](https://devforum.zoom.us/t/recording-join-token/109816/1 "2024-05-13T13:00:49Z")

</div>

@chunsiong.zoom Need some information. For the following scope **meeting\_token:read:local\_recording,** should the app be approved if an oauth token is being used.  
Using token with s2s is working, but for oauth it is not working for some odd reason, I have added the scopes to my zoom app marketplace too,

 ![image](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/4/8/48b76af86c57d7fa6dbeede5d5e5ee07fcd29beb.png)

same credentials for oauth and s2s are being used.  
code is :

```auto
'''
            meeting_id = form.meeting_id.data
            passcode = form.passcode.data
            user_id = str(current_user.id)

            is_zoom_oauth = session.get('is_zoom_oauth', False)
            print(is_zoom_oauth)
            token = session.get('zoom_access_token') if is_zoom_oauth else None
            if is_zoom_oauth and token:
                auth_token = 'Bearer ' + token
                print('auth token',token)
            else:
                token= S2S_Auth()
                auth_token = 'Bearer ' + token

            response = requests.get(
                f'https://api.zoom.us/v2/meetings/{meeting_id}/jointoken/local_recording',
                headers={'Authorization': auth_token}
            )
            print('response',response)
            if response.status_code == 200:
                join_token = response.json().get('token') # Make sure 'token' is the correct key
            else:
                print(f"Failed to obtain local recording join token. Status code: {response.status_code}")
                return jsonify({'success': False, 'message': f'Failed to obtain local recording join token. 
'''

```

When passed, the response is

```auto
response <Response [400]>
Failed to obtain local recording join token. Status code: 400
Status code: {response.status_code}'}), 400

```

Even on postman if we hit the api with correct headers, response is

```auto
{
    "code": 4711,
    "message": "Invalid access token, does not contain scopes:[meeting_token:read:admin:local_recording, meeting_token:read:local_recording]."
}

```

But works fine for s2s auth.  
Please clarify.

---

<div class="post-metadata">

**Author:** ![management1](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/management1/32/49650_2.png) [@management1](https://devforum.zoom.us/u/management1)\
**Post date:** [May 14, 2024, 6:42am UTC](https://devforum.zoom.us/t/recording-join-token/109816/2 "2024-05-14T06:42:11Z")

</div>

@chunsiong.zoom@donte.zoom@amanda-recallai please have a look.

---

<div class="post-metadata">

**Author:** ![donte.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/donte.zoom/32/24412_2.png) [@donte.zoom](https://devforum.zoom.us/u/donte.zoom)\
**Post date:** [May 16, 2024, 2:28pm UTC](https://devforum.zoom.us/t/recording-join-token/109816/3 "2024-05-16T14:28:09Z")

</div>

Thanks for the tag, @management1! I’m happy to help. To clarify my understanding, you’ve enabled the meeting\_token:read:local\_recording scope and you can successfully request the local recording token when using your server-to-server app., but not with OAuth? Could you specify the type of app you’re using? Are you using the New Unified Build Flow Marketplace App type?

> **[Zoom App Creation Build Flow](https://developers.zoom.us/docs/build-flow/)**
>
> 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.

Also, are you trying to get the token for a user within your account or outside of your account?

---

<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 20, 2025, 6:04am UTC](https://devforum.zoom.us/t/recording-join-token/109816/4 "2025-05-20T06:04:44Z")

</div>

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