---
title: "🛡️ Assign roles."
method: POST
path: "/api/v1/roles/{role}/assignments"
tags: ["Role Assignments"]
---

# 🛡️ Assign roles.

`POST /api/v1/roles/{role}/assignments`

Assign a role to one or more users by creating role assignments. If the user already has the role, the existing assignment will be returned.<br /><hr /><h3>🛡️ Requires Capabilities: <code>RoleAssignments.Create</code></h3>

## Path parameters

- `role` string, required

## Request body

- AssignRolesDto
  - `userIds` string[], required

## Response `201`

- RoleAssignment[]
  - `id` number, required
  - `user` User, required
    - `userId` string, required
    - `cardinalId` string
    - `cachedCloudUser` object, required
      - `subscription` 'free' | 'early_adopter' | 'starter' | 'pro' | 'ultimate'
    - `cachedCloudUserAt` string, date-time
    - `enabled` boolean
    - `role` string, required
    - `designation` string
    - `activityStatus` string
    - `activityStatusUpdatedAt` string, date-time
    - `roles` RoleAssignment[], required
    - `username` string
    - `password` string
    - `id` number, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `deletedAt` string, date-time, required
  - `role` string, required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required
  - `deletedAt` string, date-time, required

## Other responses

- `400` — Possible reasons: Request validation failed, see response for details.
- `401` — Possible reasons: The authorization token is invalid.
- `403` — Possible reasons: The user does not have sufficent capabilities; The role is non-assignable.

---

[API](https://skmtc.net/cardinalapps/apis/cardinal-media-server-api.md) · [All operations](https://skmtc.net/cardinalapps/apis/cardinal-media-server-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cardinalapps/cardinal-media-server-api/versions/0c30e5146acd/schema)
