---
title: "Create grant"
method: POST
path: "/v1/permissions"
tags: ["Permission"]
---

# Create grant

`POST /v1/permissions`

Create a new grant for a principal on the given scope. Either role_id or actions is required. Grants are immutable; delete and recreate to change them.

## Request body

- object — Create a grant. Either role_id or a non-empty actions array is required.
  - `principal` object, required — Principal that receives the grant. Must be User, Team, or Organization.
    - `resourceType` 'User' | 'Team' | 'Organization', required — Principal kinds that can hold grants.
    - `id` string, required
  - `scope` object, required — Resource the grant applies to.
    - `resourceType` 'Assignment' | 'Attachment' | 'Comment' | 'Document' | 'Issue' | 'IssueRelation' | 'Label' | 'Namespace' | 'Notification' | 'Organization' | 'Permission' | 'Project' | 'ResourceType' | 'Role' | 'Team' | 'Todo' | 'User' | 'UserToken' | 'Folder' | 'Installation', required
    - `id` string, required
  - `role_id` string — Optional role whose bundled actions are granted on the scope.
  - `actions` Action[] — Optional explicit actions granted on the scope.

## Response `201`

Example response

- object
  - `id` string, required — ID of the newly created resource.

## Other responses

- `400` — Bad request
- `401` — Unauthorized request
- `403` — Forbidden
- `500` — Internal Server Error

---

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