# API Change user role from Member to Admin

**URL:** <https://devforum.zoom.us/t/api-change-user-role-from-member-to-admin/144123>\
**Category:** API and Webhooks\
**Created:** [June 11, 2026, 5:54pm UTC](https://devforum.zoom.us/t/api-change-user-role-from-member-to-admin/144123 "2026-06-11T17:54:41Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Paul18](https://avatars.discourse-cdn.com/v4/letter/p/9fc348/32.png) [@Paul18](https://devforum.zoom.us/u/Paul18)\
**Post date:** [June 11, 2026, 5:54pm UTC](https://devforum.zoom.us/t/api-change-user-role-from-member-to-admin/144123/1 "2026-06-11T17:54:42Z")

</div>

Hi Everone,

Relatively simple question. I’ve been searching Google for a method to change a zoom users role from Member to Admin using the API’s. I’m sure I’m just not seeing the API’s to do this. We’re currently using an off the shelf Okta connector for provisioning, but parts of it are manual so we would like to automate everything including changing roles. So any help would be greatly appreciated!

Paul T. Juno

---

<div class="post-metadata">

**Author:** ![freelancer.nak](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/freelancer.nak/32/40968_2.png) [@freelancer.nak](https://devforum.zoom.us/u/freelancer.nak)\
**Post date:** [June 11, 2026, 6:41pm UTC](https://devforum.zoom.us/t/api-change-user-role-from-member-to-admin/144123/2 "2026-06-11T18:41:27Z")

</div>

Hi Paul, yes, this is absolutely doable via the Zoom API! You need to use the Roles API endpoint:

POST /v2/roles/{roleId}/members

Pass the user IDs in the request body:  
{ “members”: [{ “id”: “userId” }] }

The default role IDs are the same across all Zoom accounts:  
• 0 - Owner  
• 1 - Admin  
• 2 - Member

So, to promote a user to Admin, just call POST /v2/roles/1/members with their user ID. You’ll need the `role:write:admin` scope on your app. Full docs here: [Accounts APIs - API - Zoom Developer Docs](https://developers.zoom.us/docs/api/accounts/#tag/roles)

Note: Avoid using PATCH /users/{userId} with `role_name` in the body - it returns a 204 success but doesn’t actually update the role. The `/roles/{roleId}/members` endpoint is the correct way to do it.

Thanks,  
Naeem Ahmed

> **[SimuLive - SimuLive | Automate Your Webinars & Meetings](https://simulive.us)**
>
> SimuLive turns prerecorded videos into live quality simulive webinars and meetings, with chat simulation and virtual participants no other platform offers.

---

<div class="post-metadata">

**Author:** ![Paul18](https://avatars.discourse-cdn.com/v4/letter/p/9fc348/32.png) [@Paul18](https://devforum.zoom.us/u/Paul18)\
**Post date:** [June 11, 2026, 7:34pm UTC](https://devforum.zoom.us/t/api-change-user-role-from-member-to-admin/144123/3 "2026-06-11T19:34:17Z")

</div>

Thanks for the recommendation Naeem. I do recall trying this before without any success. My granular scopes for role that I see in the bearer token response are as follows and believe I have what I need:

role:read:role:admin role:write:member:admin role:update:role:admin role:delete:role:admin role:read:list\_roles:admin role:delete:member:admin role:write:role:admin role:read:list\_members:admin role:read:role:master role:write:member:master role:update:role:master role:delete:role:master role:read:list\_roles:master role:delete:member:master role:write:role:master role:read:list\_members:master

I then made a POSTMAN request to update the role as described below.

EndPoint:

POST /v2/roles/1/members

Body:

{  
“members”: [  
{  
“id”: “OZISUZBwTU6a2twEX-4snw”  
}  
]  
}

Response:

{  
“code”: 2300,  
“message”: “This API endpoint is not recognized.”  
}

I’m sure I’m doing something stupid, but have no idea. Any ideas from what you can see?

---

<div class="post-metadata">

**Author:** ![freelancer.nak](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/freelancer.nak/32/40968_2.png) [@freelancer.nak](https://devforum.zoom.us/u/freelancer.nak)\
**Post date:** [June 11, 2026, 7:43pm UTC](https://devforum.zoom.us/t/api-change-user-role-from-member-to-admin/144123/4 "2026-06-11T19:43:55Z")

</div>

You are sending the wrong payload. Also, first check the list of roles you have, then add them to members or create a new role and add it for testing.

Also, read the docs carefully and follow all **Prerequisites**.

Note: After adding new scopes, you need to re-authorize and get a new access token that reflects the changed scopes.

If you still have any queries, share them here.

Thanks.
