---
title: "Create team role"
method: POST
path: "/teams/{key}/roles"
tags: ["Permissions"]
---

# Create team role

`POST /teams/{key}/roles`

Creates a team-scoped permission role.

## Path parameters

- `key` string, required — Team identifier (ID or slug)

## Request body

- object
  - `name` string, required — Role display name
  - `description` string — Optional role description
  - `permissions` string[], required — Non-empty array of permission nodes. Supports wildcard and negation.

## Response `200`

OK

- object
  - `role` object, required — Team-scoped permission role
    - `id` string, required — Permission role ID
    - `teamId` string, required — Team that owns this role
    - `name` string, required — Role display name
    - `description` string — Optional role description
    - `permissions` string[], required — Permission nodes granted by this role
    - `createdAt` string, date-time, required — Timestamp in ISO 8601 format when the role was created
    - `updatedAt` string, date-time, required — Timestamp in ISO 8601 format when the role was last updated

## Other responses

- `400` — 400
- `401` — 401
- `403` — 403
- `404` — 404
- `409` — 409
- `412` — 412
- `422` — 422
- `429` — 429
- `500` — 500
- `501` — 501
- `503` — 503

---

[API](https://skmtc.net/session/apis/session-services-api.md) · [All operations](https://skmtc.net/session/apis/session-services-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/session/session-services-api/versions/bec3de84da9e/schema)
