Members
Workspace members and their permissions.
Return a member's permission template, overrides and effective permissions
GET
/v1/members/{memberId}/permissionsmembers.get-permissionsNeeds the permissions feature on your workspace. Until it is on, calls answer 404.
overrides holds only the differences from the template; changeCount counts them. Members read their own; reading someone else's needs the members permission (403 forbidden otherwise). A user who is not a member of the workspace is 404 not_found. Behind the permissions flag.
Parameters
Name
In
Type
Required
Description
memberId
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 MemberPermissionsModel.
Field
Type
Description
template
MemberPermissionTemplateModel
overrides
PermissionOverridesModel
Only the differences from the template.
effective
PermissionSetModel
changeCount
integer (int32)
How many rows differ from the template.
Request
curl -X GET "https://api.ken.so/v1/members/812/permissions" \ -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": {
"template": {
"id": 812,
"name": "string",
"builtIn": "string"
},
"overrides": {
"pages": {
"key": "string"
},
"features": {
"key": true
},
"accountScope": "string",
"credits": {
"monthlyLimit": 1
}
},
"effective": {
"pages": {
"key": "string"
},
"features": [
"string"
],
"accountScope": "string",
"monthlyCreditLimit": 1
},
"changeCount": 1
}
}