A valid request URL is required to generate request examples{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}Replace a role's permissions
Requires roles:manage. The permission set is replaced, not merged — the editor sends the full set, and a merge would make removing a permission impossible.
A system role’s permissions can be edited (that is how an organization tailors admin to itself) but its name cannot: the seeding code and the last-owner guard match on owner by name. The owner role must keep roles:manage, or nobody could grant it back.
A valid request URL is required to generate request examples{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}Authorizations
A staff session token, uk_st_…. Minted by sign-up, sign-in or the two-factor exchange. Only a 401 means it is spent; not_a_member (403) is about the organization named in X-Organization-Id and leaves the token good for the others.
Headers
The organization the caller is acting on — the org_… code that appears in the panel URL. It identifies; the membership JOIN is what authorizes, so a forged code reads nothing: the answer is not_a_member (403), which does not mean the session is over. Absent, the session's default organization answers, or — if that membership was revoked while the session was open — any other one the caller still holds.
Path Parameters
Body
The complete set. Duplicates are collapsed; an unknown value is refused.
A fine-grained capability. The catalogue lives in Go; which role holds which lives in the database.
organization:update, organization:delete, members:read, members:write, roles:read, roles:manage, api_keys:read, api_keys:write, customers:read, customers:write Response
Updated.