---
title: "Update user roles (add/remove)"
method: PATCH
path: "/users/{id}/roles"
tags: ["Users"]
---

# Update user roles (add/remove)

`PATCH /users/{id}/roles`

## Request body

- union — At least one of addRoles or removeRoles must be provided.
  - object
    - `addRoles` AddRoleRequest[], required
      - `roleId` integer, required
      - `expiresAt` string, date-time, nullable
    - `removeRoles` integer[]
  - object
    - `addRoles` AddRoleRequest[]
      - `roleId` integer, required
      - `expiresAt` string, date-time, nullable
    - `removeRoles` integer[], required

## Response `200`

OK

- ApiResponseUserRoles
  - `success` boolean, required
  - `message` string, nullable
  - `timestamp` string, date-time, required
  - `data` UserRoleEntry[]
    - `roleId` integer, required
    - `roleName` string, required
    - `roleDisplayName` string, required
    - `expiresAt` string, date-time, nullable

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found

---

[API](https://skmtc.net/lobehub/apis/lobechat-openapi.md) · [All operations](https://skmtc.net/lobehub/apis/lobechat-openapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lobehub/lobechat-openapi/versions/7be2ebcf191c/schema)
