---
title: "Update group role"
method: PATCH
path: "/v1/workspaces/{workspace_id}/groups/{group_id}"
tags: ["Groups"]
---

# Update group role

`PATCH /v1/workspaces/{workspace_id}/groups/{group_id}`

## Path parameters

- `workspace_id` string, uuid, required — Id of the workspace that owns the resource.
- `group_id` string, uuid, required — Id of the group.

## Headers

- `Idempotency-Key` string

## Request body

- UpdateGroupBody
  - `role` 'admin' | 'editor' | 'settings_admin' | 'art_director' | 'artist' | 'member', required
  - `role_id` string, uuid, nullable — Id of a custom role to grant instead of a builtin `role`.

## Response `200`

Successful Response

- GroupOut
  - `group_id` string, uuid, required — The group's unique identifier.
  - `name` string, required — The group's name.
  - `role` 'admin' | 'editor' | 'settings_admin' | 'art_director' | 'artist' | 'member'
  - `role_id` string, uuid, nullable — Id of the role actually assigned. A custom role reports its own id here while `role` reports the builtin floor it grants, so read this to tell the two apart.

## Other responses

- `401` — Unauthenticated — missing or invalid Bearer token.
- `403` — Forbidden — insufficient permissions, or the access token lacks the scope the operation requires.
- `404` — Resource not found.
- `409` — The request with this `Idempotency-Key` is still running — retry after the number of seconds in `Retry-After`.
- `422` — Invalid input parameters, or an `Idempotency-Key` reused for a different request.
- `429` — Rate limited — retry after the number of seconds in `Retry-After`.
- `500` — Internal server error.

---

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