---
title: "Update canvas permissions"
method: PATCH
path: "/v1/canvases/:canvas_key/permissions"
---

# Update canvas permissions

`PATCH /v1/canvases/:canvas_key/permissions`

Add, update, or remove permissions for a canvas. Supports user/group/service account actors, as well as workspace-wide, project-wide, and public access settings.

## Path parameters

- `canvas_key` string, required

## Request body

- object — Canvas permission actions.
  - `actions` object[], required — The list of permission actions to apply.
    - `actor` union, required — The type of actor.
      - 'user' — A workspace member
      - 'group' — A workspace group
      - 'service_account' — A service account
      - 'workspace' — All workspace members
      - 'project' — A project permission
      - 'public' — A public permission (`viewer` or `presentation_viewer` only)
    - `role` union, required — The role to assign. Set to `null` to remove the permission.
      - 'analyst' — Canvas analyst.
      - 'editor' — Canvas editor.
      - 'viewer' — Canvas viewer.
      - 'presentation_viewer' — Canvas presentation viewer.
    - `actor_key` string — The unique identifier for the actor. For users, it is also possible to provide their email address.

## Response `200`

Successful response

- object — Base response envelope for all successful API responses.
  - `success` true, required
  - `request_id` string, required
  - `result` object, required — The updated canvas permissions.
    - `permissions` object[], required — The full list of permissions for this canvas after the changes are applied.
      - `key` string, required — The unique identifier for the actor.
      - `role` union, required — A canvas role.
        - 'analyst' — Canvas analyst.
        - 'editor' — Canvas editor.
        - 'viewer' — Canvas viewer.
        - 'presentation_viewer' — Canvas presentation viewer.
      - `type` union, required — The type of actor.
        - 'user' — A workspace member
        - 'group' — A workspace group
        - 'service_account' — A service account
        - 'workspace' — All workspace members
        - 'project' — A project permission
        - 'public' — A public permission (`viewer` or `presentation_viewer` only)

## Other responses

- `4XX` — Client error. Possible status codes include: 400 (invalid request), 401 (missing or invalid API key), 403 (insufficient permissions), 404 (resource not found), 429 (rate limit exceeded).
- `5XX` — Internal server error.

---

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