Kenso

Permission templates

Reusable sets of member permissions.

Workspace and credits2 endpointsKen-Version: 2026-11-02AuthenticationWorkspacesErrors

List the workspace's permission templates

GET/v1/permission-templatespermission-templates.list

Needs the permissions feature on your workspace. Until it is on, calls answer 404.

Try it on developer.ken.so

The four built-ins first (Admin, Editor, Viewer, Client), then custom templates by creation. The first call for a workspace stores the built-ins from their defaults, so every template has an id. Never paginated: a workspace has a handful of templates. Requires workspace membership.

Parameters

Name
In
Type
Required
Description
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Response 200

data is a list of PermissionTemplateModel. Each item has these fields. The response also carries pagination.

Field
Type
Description
id
integer (int64)
name
string
description
string
builtIn
string
admin, editor, viewer or client; null for a custom template.
locked
boolean
True for the Admin template, which cannot be edited or deleted.
pages
map of string
All eleven pages: off, view or edit.
features
array of string
The features that are on, in catalog order.
accountScope
string
all or own.
monthlyCreditLimit
integer (int64)
Credits per calendar month (UTC); null = no limit, 0 = cannot spend.
memberCount
integer (int32)
Active members on the template.
pageCount
integer (int32)
Pages that are not off.
Request
curl -X GET "https://api.ken.so/v1/permission-templates" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID"
Response 200
{
  "success": true,
  "data": [
    {
      "id": 812,
      "name": "string",
      "description": "string",
      "builtIn": "string",
      "locked": true,
      "pages": {
        "key": "string"
      },
      "features": [
        "string"
      ],
      "accountScope": "string",
      "monthlyCreditLimit": 1,
      "memberCount": 1,
      "pageCount": 1
    }
  ],
  "pagination": {
    "nextCursor": "eyJpZCI6ODE1fQ",
    "hasMore": true,
    "total": 1,
    "isTotalCapped": true
  }
}

Return one permission template

GET/v1/permission-templates/{templateId}permission-templates.get

Needs the permissions feature on your workspace. Until it is on, calls answer 404.

Try it on developer.ken.so

A template of another workspace is 404 not_found. Requires workspace membership.

Parameters

Name
In
Type
Required
Description
templateId
In: path
integer (int64)
required
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Response 200

data is a PermissionTemplateModel.

Field
Type
Description
id
integer (int64)
name
string
description
string
builtIn
string
admin, editor, viewer or client; null for a custom template.
locked
boolean
True for the Admin template, which cannot be edited or deleted.
pages
map of string
All eleven pages: off, view or edit.
features
array of string
The features that are on, in catalog order.
accountScope
string
all or own.
monthlyCreditLimit
integer (int64)
Credits per calendar month (UTC); null = no limit, 0 = cannot spend.
memberCount
integer (int32)
Active members on the template.
pageCount
integer (int32)
Pages that are not off.
Request
curl -X GET "https://api.ken.so/v1/permission-templates/812" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID"
Response 200
{
  "success": true,
  "data": {
    "id": 812,
    "name": "string",
    "description": "string",
    "builtIn": "string",
    "locked": true,
    "pages": {
      "key": "string"
    },
    "features": [
      "string"
    ],
    "accountScope": "string",
    "monthlyCreditLimit": 1,
    "memberCount": 1,
    "pageCount": 1
  }
}