---
title: "Grant a user, org or group a role on this site"
method: POST
path: "/api/sites/{slug}/access"
tags: ["site-controller"]
---

# Grant a user, org or group a role on this site

`POST /api/sites/{slug}/access`

## Request

- Base URL: `https://api.pagegoat.com`
- URL: `https://api.pagegoat.com/api/sites/{slug}/access`
- Auth: HTTP bearer

## Path parameters

- `slug` string, required

## Request body

- AddAccessRequest: Grant someone a role on a site.
  - `principalType` 'user' | 'org' | 'group', required
  - `principalId` string, required: A token `sub`, an organization id, or a group name, per `principalType`.
  - `role` 'viewer' | 'commenter' | 'admin', required

## Response `201`

The created grant.

## Other responses

- `400`: Missing principalType/principalId, or an unknown role.
- `404`: No such site, or not an admin on it.

---

[API](https://skmtc.dev/pagegoat/apis/pagegoat-api.md) · [All operations](https://skmtc.dev/pagegoat/apis/pagegoat-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pagegoat/apis/pagegoat-api/revisions/3e87219680af?raw)
