---
title: "Updates an existing organization role."
method: POST
path: "/organization/roles/{role_id}"
tags: ["Roles"]
---

# Updates an existing organization role.

`POST /organization/roles/{role_id}`

## Path parameters

- `role_id` string, required

## Request body

- PublicUpdateOrganizationRoleBody — Request payload for updating an existing role.
  - `permissions` string[], nullable — Updated set of permissions for the role.
  - `description` string, nullable — New description for the role.
  - `role_name` string, nullable — New name for the role.

## Response `200`

Role updated successfully.

- Role — Details about a role that can be assigned through the public Roles API.
  - `object` 'role', required — Always `role`.
  - `id` string, required — Identifier for the role.
  - `name` string, required — Unique name for the role.
  - `description` string, nullable, required — Optional description of the role.
  - `permissions` string[], required — Permissions granted by the role.
  - `resource_type` string, required — Resource type the role is bound to (for example `api.organization` or `api.project`).
  - `predefined_role` boolean, required — Whether the role is predefined and managed by OpenAI.

## Other responses

- `429` — The request was rejected because a rate limit was exceeded.

## Changes

> 82 revisions in range; 18 could not be searched.

- **2026-08-14** `6ac2618eefd7` — 1 info
  - added the non-success response with the status `429`
- **2026-05-13** `74cbcf73838f` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/openai/apis/openapi/changes/organization/roles/:role_id/post.md)

---

[API](https://skmtc.dev/openai/apis/openapi.md) · [All operations](https://skmtc.dev/openai/apis/openapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/openai/openapi/revisions/959ef977e135/schema)
