---
title: "Add a role-action grant (admin)"
method: POST
path: "/admin/role-permissions"
tags: ["admin"]
---

# Add a role-action grant (admin)

`POST /admin/role-permissions`

## Request

- Base URL: `https://api.qualityclouds.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.qualityclouds.ai/admin/role-permissions`
- Auth: one of:
  - HTTP bearer
  - OpenID Connect (`https://account.qualityclouds.com//realms/ai-production/.well-known/openid-configuration`)

Inserts a new role-action grant (req 5). Returns 409 when the (role_name, action) pair already exists.

## Request body

- CreateRolePermissionRequest: Request body for POST /admin/role-permissions (req 5).
  - `role_name` string, required: Canonical role name (e.g. 'org_admin').
  - `action` string, required: Action string to grant (e.g. 'repo:view').
  - `description` string, nullable: Human-readable description of the grant.

## Response `201`

Successful Response

- RolePermissionAdminResponse: Response schema for a single role_permissions row (req 3, 4, 5).
  - `id` string, uuid, required
  - `role_name` string, required
  - `action` string, required
  - `description` string, nullable, required
  - `is_active` boolean, required
  - `created_at` string, date-time, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `422`: Validation Error

---

[API](https://skmtc.dev/qualityclouds/apis/qai-orchestrator-api.md) · [All operations](https://skmtc.dev/qualityclouds/apis/qai-orchestrator-api/llms.txt) · [OpenAPI document](https://skmtc.dev/qualityclouds/apis/qai-orchestrator-api/revisions/250c849925af?raw)
