---
title: "Update"
method: POST
path: "/api/v1/iam/roles/{role_id}"
tags: ["Role"]
---

# Update

`POST /api/v1/iam/roles/{role_id}`

Update a role by passing a Role object.

## Path parameters

- `role_id` string, required — The id of the role.

## Request body

- C1ApiIamV1UpdateRoleRequestInput — The UpdateRoleRequest message contains the role to update and the update mask.
  - `role` C1ApiIamV1Role — Role is a role that can be assigned to a user in ConductorOne.
    - `createdAt` string, date-time, nullable
    - `deletedAt` string, date-time, nullable
    - `displayName` string — The display name of the role.
    - `id` string — The id of the role.
    - `name` string — The internal name of the role.
    - `permissions` string[], nullable — The list of permissions this role has.
    - `serviceRoles` string[], nullable — The list of serviceRoles that this role has.
    - `systemApiOnly` boolean — This Role is intended for API keys usage only, and the user interface may not function as expected.
    - `systemBuiltin` boolean — The system builtin field. If this field is set, the role is not editable.
    - `updatedAt` string, date-time, nullable
  - `updateMask` string, nullable

## Response `200`

UpdateRolesResponse is the response message containing the updated role.

- C1ApiIamV1UpdateRolesResponse — UpdateRolesResponse is the response message containing the updated role.
  - `role` C1ApiIamV1Role — Role is a role that can be assigned to a user in ConductorOne.
    - `createdAt` string, date-time, nullable
    - `deletedAt` string, date-time, nullable
    - `displayName` string — The display name of the role.
    - `id` string — The id of the role.
    - `name` string — The internal name of the role.
    - `permissions` string[], nullable — The list of permissions this role has.
    - `serviceRoles` string[], nullable — The list of serviceRoles that this role has.
    - `systemApiOnly` boolean — This Role is intended for API keys usage only, and the user interface may not function as expected.
    - `systemBuiltin` boolean — The system builtin field. If this field is set, the role is not editable.
    - `updatedAt` string, date-time, nullable

## Changes

- **2026-08-21** `f2cf3228f366` — 4 breaking, 13 warning, 1 info
  - the request property `updateMask` became not nullable
  - the `role` request property type/format changed from `object`/`` to ``/``
  - added `#/components/schemas/c1.api.iam.v1.Role, subschema #2` to the `role` response property `oneOf` list for the response status `200`
  - the `role` response's property type/format changed from `object`/`` to ``/`` for status `200`
  - …14 more
- **2025-04-10** `17f9f3bcedd5` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/conductorone/apis/c1-api/changes/api/v1/iam/roles/:role_id/post.md)

---

[API](https://skmtc.dev/conductorone/apis/c1-api.md) · [All operations](https://skmtc.dev/conductorone/apis/c1-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/conductorone/c1-api/revisions/f2cf3228f366/schema)
