Skip to content
Dashboard

Change a team member's role.

POST
/members/{id}/role
curl --request POST \
--url https://api-us.suiteop.com/api/v1/members/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/role \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "permissions": [ "view_dashboard" ], "role": "owner" }'

Change a team member’s role and permissions. Cannot demote the last owner.

id
required
string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
Media type application/json
object
permissions
Array<string>
Allowed values: view_dashboard private_code view_tasks modify_tasks delete_tasks view_task_templates manage_task_templates delete_task_templates manage_task_rates view_devices control_device modify_devices view_properties modify_properties delete_properties view_reservations modify_reservations view_guest_ids view_guides modify_guides delete_guide view_integration manage_integrations account_admin view_organization manage_organization view_users manage_users delete_users view_lock_code manage_lock_code view_staff_codes view_event manage_event view_analytics view_logs view_workflows manage_workflows delete_workflows view_payments manage_payments view_inbox manage_inbox view_booking_engine manage_booking_engine view_shifts manage_shifts approve_time_entries manage_message_templates
role
required
string
Allowed values: owner admin manager field_supervisor field_team_member member viewer custom

Success.

Media type application/json
object
data
required

Response payload.

object
permissions
required
Array<string>
role
required
string
userId
required
string
meta
required

Response metadata present on every success response.

object
pagination

Present on list responses.

object
limit
required

Page size used for this request.

integer
offset
required

Number of items skipped.

integer
total
required

Total number of matching items (across all pages).

integer
requestId
required

Unique identifier for this request.

string
Example generated
{
"data": {
"permissions": [
"example"
],
"role": "example",
"userId": "example"
},
"meta": {
"pagination": {
"limit": 1,
"offset": 1,
"total": 1
},
"requestId": "example"
}
}
Idempotency-Replayed
string

Present with value ‘true’ only when this response was replayed from a previously stored Idempotency-Key result.

X-RateLimit-Limit
integer

Maximum requests per minute for this API key.

X-RateLimit-Remaining
integer

Remaining requests in the current rate-limit window.

X-RateLimit-Reset
integer

Unix epoch seconds when the rate-limit window resets.

X-Request-Id
string

Unique identifier for this request (matches meta.requestId in the body).

400

Media type application/json
ValidationError

Error envelope returned for HTTP 400 responses.

object
error
required
object
code
required

Machine-readable error code.

string
details

Optional structured details (omitted when undefined).

object
key
additional properties
any
message
required

Human-readable error message.

string
type
required

Error type.

string
Allowed values: validation_error
meta
required
object
requestId
required
string
Example
{
"error": {
"type": "validation_error"
}
}
X-RateLimit-Limit
integer

Maximum requests per minute.

X-RateLimit-Remaining
integer

Remaining requests in the current window.

X-RateLimit-Reset
integer

Unix epoch seconds when the window resets.

X-Request-Id
string

Request correlation id (also in meta.requestId).

401

Media type application/json
AuthenticationError

Error envelope returned for HTTP 401 responses.

object
error
required
object
code
required

Machine-readable error code.

string
details

Optional structured details (omitted when undefined).

object
key
additional properties
any
message
required

Human-readable error message.

string
type
required

Error type.

string
Allowed values: authentication_error
meta
required
object
requestId
required
string
Example
{
"error": {
"type": "authentication_error"
}
}
X-Request-Id
string

Request correlation id (also in meta.requestId).

403

Media type application/json
AuthorizationError

Error envelope returned for HTTP 403 responses.

object
error
required
object
code
required

Machine-readable error code.

string
details

Optional structured details (omitted when undefined).

object
key
additional properties
any
message
required

Human-readable error message.

string
type
required

Error type.

string
Allowed values: authorization_error
meta
required
object
requestId
required
string
Example
{
"error": {
"type": "authorization_error"
}
}
X-RateLimit-Limit
integer

Maximum requests per minute.

X-RateLimit-Remaining
integer

Remaining requests in the current window.

X-RateLimit-Reset
integer

Unix epoch seconds when the window resets.

X-Request-Id
string

Request correlation id (also in meta.requestId).

404

Media type application/json
NotFoundError

Error envelope returned for HTTP 404 responses.

object
error
required
object
code
required

Machine-readable error code.

string
details

Optional structured details (omitted when undefined).

object
key
additional properties
any
message
required

Human-readable error message.

string
type
required

Error type.

string
Allowed values: not_found_error
meta
required
object
requestId
required
string
Example
{
"error": {
"type": "not_found_error"
}
}
X-RateLimit-Limit
integer

Maximum requests per minute.

X-RateLimit-Remaining
integer

Remaining requests in the current window.

X-RateLimit-Reset
integer

Unix epoch seconds when the window resets.

X-Request-Id
string

Request correlation id (also in meta.requestId).

409

Media type application/json
ConflictError

Error envelope returned for HTTP 409 responses.

object
error
required
object
code
required

Machine-readable error code.

string
details

Optional structured details (omitted when undefined).

object
key
additional properties
any
message
required

Human-readable error message.

string
type
required

Error type.

string
Allowed values: conflict_error
meta
required
object
requestId
required
string
Example
{
"error": {
"type": "conflict_error"
}
}
X-RateLimit-Limit
integer

Maximum requests per minute.

X-RateLimit-Remaining
integer

Remaining requests in the current window.

X-RateLimit-Reset
integer

Unix epoch seconds when the window resets.

X-Request-Id
string

Request correlation id (also in meta.requestId).

422

Media type application/json
BusinessRuleError

Error envelope returned for HTTP 422 responses.

object
error
required
object
code
required

Machine-readable error code.

string
details

Optional structured details (omitted when undefined).

object
key
additional properties
any
message
required

Human-readable error message.

string
type
required

Error type.

string
Allowed values: business_rule_error
meta
required
object
requestId
required
string
Example
{
"error": {
"type": "business_rule_error"
}
}
X-RateLimit-Limit
integer

Maximum requests per minute.

X-RateLimit-Remaining
integer

Remaining requests in the current window.

X-RateLimit-Reset
integer

Unix epoch seconds when the window resets.

X-Request-Id
string

Request correlation id (also in meta.requestId).

429

Media type application/json
RateLimitError

Error envelope returned for HTTP 429 responses.

object
error
required
object
code
required

Machine-readable error code.

string
details

Optional structured details (omitted when undefined).

object
key
additional properties
any
message
required

Human-readable error message.

string
type
required

Error type.

string
Allowed values: rate_limit_error
meta
required
object
requestId
required
string
Example
{
"error": {
"type": "rate_limit_error"
}
}
Retry-After
integer

Number of seconds to wait before retrying.

X-RateLimit-Limit
integer

Maximum requests per minute.

X-RateLimit-Remaining
integer

Remaining requests in the current window.

X-RateLimit-Reset
integer

Unix epoch seconds when the window resets.

X-Request-Id
string

Request correlation id (also in meta.requestId).

500

Media type application/json
InternalError

Error envelope returned for HTTP 500 responses.

object
error
required
object
code
required

Machine-readable error code.

string
details

Optional structured details (omitted when undefined).

object
key
additional properties
any
message
required

Human-readable error message.

string
type
required

Error type.

string
Allowed values: internal_error
meta
required
object
requestId
required
string
Example
{
"error": {
"type": "internal_error"
}
}
X-RateLimit-Limit
integer

Maximum requests per minute.

X-RateLimit-Remaining
integer

Remaining requests in the current window.

X-RateLimit-Reset
integer

Unix epoch seconds when the window resets.

X-Request-Id
string

Request correlation id (also in meta.requestId).