Skip to content

List your permissions on a resource ​

GET/api/v2/workspaces/{slug}/permissions/resource/

Return the actions for one resource as an alphabetical list of can_<action> names, for example can_view and can_edit. The response wraps the list in an object, {"permissions": [...]}.

An unknown resource_type returns 200 with an empty list, not an error.

Any member of the workspace can call this endpoint, guests included.

The list doesn't depend on your access

In this release, permissions names every action the resource type supports, including actions you can't perform. Two callers with different roles get the same list. To find out whether you can perform an action, call Check a permission.

Path Parameters ​

slug:requiredstring

The workspace slug. It appears in your Plane URLs. In https://app.plane.so/my-team/projects/, the slug is my-team.

Query Parameters ​

Both parameters are required. Leaving either out returns 400 with resource_type and resource_id are required.

resource_type:requiredstring

The kind of resource, as the permission engine names it, for example workspace, project, workitem, cycle, module, page for a project page, wiki for a workspace page, initiative, or teamspace.

resource_id:requiredstring (uuid)

The id of the resource. A value that isn't a UUID returns 400 with resource_id must be a UUID.

Scopes ​

workspaces.permissions:read

Errors ​

StatusCodeCause
400invalid_requestresource_type or resource_id is missing, or resource_id isn't a UUID.
401unauthorizedMissing or invalid credentials.
402payment_requiredThe feature this endpoint belongs to isn't enabled on your plan, or is switched off.
403forbiddenYou aren't a member of the workspace, or your token scope doesn't allow this.
404not_foundNo such workspace.
406not_acceptableThe Accept header asks for a representation the API can't produce.
429rate_limitedThrottled. Honor the Retry-After header before retrying.
List your permissions on a resource
bash
curl -X GET \
  "https://api.plane.so/api/v2/workspaces/my-team/permissions/resource/?resource_type=project&resource_id=4af68566-94a4-4eb3-94aa-50dc9427067b" \
  -H "X-Api-Key: $PLANE_API_KEY"
Response200
json
{
  "permissions": [
    "can_archive",
    "can_browse",
    "can_create",
    "can_delete",
    "can_edit",
    "can_manage",
    "can_publish",
    "can_react",
    "can_view"
  ]
}
Response400
json
{
  "type": "invalid_request",
  "code": "invalid_request",
  "detail": "resource_type and resource_id are required."
}