API ReferenceMembers
Update a member's role
Change the role of an existing member. Cannot demote the last Owner or the primary owner without first transferring ownership.
Requires members:write scope.
Authorization
bearerAuth members:writeAuthorizationBearer <token>
API token from your dashboard.
Format: so_live_... (production) or so_test_... (test mode).
Tokens carry one or more scopes. Request only the scopes your integration needs:
| Scope | Grants |
|---|---|
media:read | List and retrieve files |
media:write | Upload and delete files |
logs:read | Read log entries |
logs:write | Ingest log entries |
cases:read | Read cases |
cases:write | Create and update cases |
apps:read | Read apps |
apps:write | Submit apps |
usage:read | Read quota usage |
members:read | List organisation members |
members:write | Invite and remove members |
billing:read | Read billing and subscription info |
tokens:write | Create and revoke API tokens |
In: header
Scope: members:write
Path Parameters
orgId*string
Organisation ID (ULID)
userId*string
User ID of the member (the id field from the list response)
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
roleId*string
ID of the new role to assign. Must belong to this org.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/orgs/01HZXXXXXXXXXXXXXXXXXXXXX/members/string" \ -H "Content-Type: application/json" \ -d '{ "roleId": "rol_01HXYZ" }'{
"ok": true
}{
"error": {
"code": "bad_request",
"message": "missing required field"
}
}{
"error": {
"code": "unauthorized",
"message": "missing or invalid authorization token"
}
}{
"error": {
"code": "forbidden",
"message": "token does not have the required scope"
}
}{
"error": {
"code": "not_found",
"message": "file not found"
}
}{
"error": {
"code": "internal",
"message": "an unexpected error occurred"
}
}