---
title: "Get document permissions"
method: GET
path: "/v1/documents/{documentId}/permissions"
tags: ["Document permissions"]
---

# Get document permissions

`GET /v1/documents/{documentId}/permissions`

Retrieve the document-level ability values (the **Abilities** toggles in the document's settings), plus the resolved permits for a specific user when `userId` is provided.

## Path parameters

- `documentId` string, required

## Query parameters

- `userId` string, uuid

## Response `200`

Document abilities, plus user permits when `userId` is provided

- object
  - `abilities` DocumentAbilities, required — Document-level ability values, as stored on the document. These settings control what actions users can perform on a document, and correspond to the toggles in the **Abilities** section of the document's settings.
    - `canAnalyze` boolean, required — Allow exploring from this document
    - `canDownload` boolean, required — Allow downloading
    - `canDrill` boolean, required — Allow drill-down
    - `canDuplicate` boolean, required — Allow duplicating
    - `canRequestAccess` boolean, required — Allow requesting access
    - `canSaveSpreadsheets` boolean, required — Allow creating spreadsheets
    - `canSchedule` boolean, required — Allow scheduling
    - `canUpload` boolean, required — Allow uploads
    - `canUseDashboardAi` boolean, required — Allow using dashboard AI
    - `canUseTimezoneOverride` boolean, required — Allow timezone override
    - `canViewWorkbook` boolean, required — Allow viewing workbook
    - `requirePullRequestToPublish` boolean, required — Require pull request to publish changes
  - `permits` object[] — User permits for the document. Present only when `userId` is provided.
    - `description` string — Description of the permission type. For example, `Organization`
    - `id` string — ID of the user
    - `name` string — Name of the user
    - `type` string — The type of the permission holder (e.g., "user")
    - `direct` object — Direct permissions assigned to the user
      - `accessBoost` boolean — If `true`, AccessBoost is enabled for the user
      - `isOwner` boolean — If `true`, the user is the owner of the document
      - `role` string — The content role assigned to the user
    - `folder` object — Permissions inherited from a folder
      - `accessBoost` boolean — If `true`, AccessBoost is enabled via folder permissions
      - `isOwner` boolean — If `true`, the user is the owner via folder permissions
      - `role` string — The content role inherited from folder permissions

## Other responses

- `400` — Bad Request. Possible causes: - Invalid `userId` value
- `403` — Forbidden. The user sending the API request must have **Manager** permissions for the document.
- `404` — Document not found
- `429` — Too Many Requests - Rate limit exceeded (60 requests/minute)

---

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