---
title: "Create Scope"
method: POST
path: "/rbac/scopes"
tags: ["rbac"]
---

# Create Scope

`POST /rbac/scopes`

## Request

- Base URL: `https://platform.tracecat.com/api`
- URL: `https://platform.tracecat.com/api/rbac/scopes`
- Auth: one of:
  - API key in cookie `fastapiusersauth`
  - HTTP bearer

Create a custom scope.

Requires: org:rbac:create scope

## Request body

- ScopeCreate: Create schema for a custom scope.
  - `name` string, required: Scope name in format resource:action (e.g., 'custom:read')
  - `description` string, nullable: Optional description of the scope

## Response `201`

Successful Response

- ScopeRead: Read schema for a scope.
  - `id` string, uuid, required
  - `name` string, required
  - `resource` string, required
  - `action` string, required
  - `description` string, nullable
  - `source` 'platform' | 'custom', required: Source/ownership of a scope definition.
  - `source_ref` string, nullable
  - `organization_id` string, uuid, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400`: Invalid or reserved scope name.
- `409`: A scope with this name already exists.
- `422`: Validation Error

---

[API](https://skmtc.dev/tracecat/apis/tracecat-api.md) - [All operations](https://skmtc.dev/tracecat/apis/tracecat-api/llms.txt) - [OpenAPI document](https://skmtc.dev/tracecat/apis/tracecat-api/revisions/2efdda25045f?raw)
