Skip to content

List resources you can access ​

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

Return the ids of every resource of one type in the workspace that you can perform an action on. The action defaults to view. The response is an object with one array, resource_ids, and isn't paginated.

An id is in the list when one of these is true:

  • You hold a grant on the resource whose relation allows the action or whose permissions_grant names it, and whose permissions_deny doesn't name it. Only an exact name counts: a wildcard such as * or project:* in permissions_grant doesn't add the id.
  • For resource_type=project only: the project is granted to a teamspace you belong to, and that grant's relation allows the action.

Plane doesn't validate resource_type or action, so an unknown name returns 200, not 400. An unknown resource_type gives an empty resource_ids list.

Access that comes only from a parent doesn't add an id. For example, a workspace admin who hasn't joined a project can still open it, but the project isn't listed for resource_type=project. To test one resource, including inherited access, call Check a permission.

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

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 ​

resource_type:requiredstring

The kind of resource to list, as the permission engine names it, for example project, cycle, module, initiative, or teamspace. Leaving it out returns 400 with resource_type is required.

action:optionalstring

The action you need to be able to perform. Plane joins it to resource_type to form a permission such as project:edit. Defaults to view.

Scopes ​

workspaces.permissions:read

Errors ​

StatusCodeCause
400invalid_requestresource_type is missing.
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 resources you can access
bash
curl -X GET \
  "https://api.plane.so/api/v2/workspaces/my-team/permissions/accessible/?resource_type=project&action=edit" \
  -H "X-Api-Key: $PLANE_API_KEY"
Response200
json
{
  "resource_ids": ["4af68566-94a4-4eb3-94aa-50dc9427067b", "b2d94e71-6c3a-4f58-8e1d-7a0c5b9f2e46"]
}
Response400
json
{
  "type": "invalid_request",
  "code": "invalid_request",
  "detail": "resource_type is required."
}