---
title: "Create role"
method: POST
path: "/tenants/{tenant_id}/roles"
tags: ["Roles"]
---

# Create role

`POST /tenants/{tenant_id}/roles`

Creates a custom role with a permission tree spanning tenant + division + environment scopes. New id returned in `ld-role` header. System roles cannot be created via this API.

## Path parameters

- `tenant_id` integer, required

## Request body

- AddRole
  - `name` string, required
  - `permissions` RolePermissions, required
    - `division` string[], nullable
    - `divisions` object, nullable
    - `environment` string[], nullable
    - `tenant` string[], nullable

## Response `201`

Role created. The new role ID is returned in the ld-role header

## Other responses

- `400` — Invalid name, invalid permissions tree, or roles limit reached
- `403` — Insufficient permissions
- `409` — Name already used

---

[API](https://skmtc.net/laserdata/apis/laserdata-cloud-core-api.md) · [All operations](https://skmtc.net/laserdata/apis/laserdata-cloud-core-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/laserdata/laserdata-cloud-core-api/revisions/db81a447bba9/schema)
