Skip to content

Get workspace features

GET/api/v2/workspaces/{slug}/features/

Read the workspace's feature flags. There is one feature record per workspace, so this returns a single object rather than a list.

Call it during client start-up. is_work_item_types_enabled tells you which surface accepts work item type and property writes, and the remaining flags tell you which parts of your UI or sync are worth showing at all.

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

None. This endpoint takes no filters, no pagination, and no ?expand= — passing one is not a supported way to widen the response.

Scopes

workspaces.features:read

Errors

StatusCodeCause
401unauthorizedMissing or invalid credentials.
403forbiddenYour role or token scope can't read this workspace's features.
404resource_not_foundNo such workspace, or it's outside your tenant.
429rate_limitedThrottled. Honor the Retry-After header before retrying.

This is the mode check

is_work_item_types_enabled: true means the workspace manages work item types at the workspace level; false means each project does. Writes sent to the other surface return 409, with work_item_types_managed_at_workspace or work_item_types_managed_at_project. Reads are unaffected. See Work item type modes.

Cache it, but not forever

The flags change rarely, so caching the response for the life of a request batch is reasonable. Re-read it whenever a write returns 409 work_item_types_managed_at_workspace or work_item_types_managed_at_project — that code means your cached mode is stale.

Get workspace features
bash
curl -X GET \
  "https://api.plane.so/api/v2/workspaces/my-team/features/" \
  -H "X-Api-Key: $PLANE_API_KEY"
Response200
json
{
  "id": "a72f1c40-5b8e-4d19-9f2a-3c6d8e1b7a55",
  "is_work_item_types_enabled": true,
  "work_item_type_default_level": 0,
  "is_workitem_hierarchy_enabled": false,
  "is_project_grouping_enabled": false,
  "is_teams_enabled": true,
  "is_wiki_enabled": true,
  "is_initiative_enabled": false,
  "is_customer_enabled": false,
  "is_release_enabled": false,
  "is_state_duration_enabled": false,
  "is_pi_enabled": false,
  "created_at": "2026-01-14T09:22:41.478363Z"
}
Response404
json
{
  "type": "https://api.plane.so/errors/resource_not_found",
  "title": "Not Found",
  "status": 404,
  "code": "resource_not_found",
  "detail": "No Workspace matches the given query."
}