Skip to content

The operators on the caller's own tenant

GET
/operator/team
curl --request GET \
--url http://localhost:3000/operator/team \
--header 'Authorization: Bearer <token>'

Takes no tenant id. The tenant comes from the operator row the guard loaded, the same property that makes IDOR impossible on GET /operator/tenant. Both owner and member may read — a member can see who their colleagues are but cannot change anything. Platform staff have no tenant and get 403.

Every operator on the tenant, newest first. No password material.

Media typeapplication/json
Array<object>

An operator on the caller’s own tenant. invite_pending is true until they accept their invite and set a password. No password material is ever returned.

object
id
required
string
email
required
string format: email
name
required
string
role
required
string
Allowed values: owner member
status
required
string
Allowed values: active disabled
created_at
required
string format: date-time
invite_pending
required
boolean
Example
[
{
"role": "owner",
"status": "active"
}
]

Invalid, expired, revoked, or absent token.

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: VALIDATION_FAILED UNAUTHENTICATED FORBIDDEN NOT_FOUND CONFLICT RATE_LIMITED INTERNAL
message
required
string
requestId
required
string
fields

Present only for VALIDATION_FAILED.

Array<object>
object
path
string
message
string
Example
{
"error": {
"code": "VALIDATION_FAILED"
}
}

Authenticated but not permitted.

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: VALIDATION_FAILED UNAUTHENTICATED FORBIDDEN NOT_FOUND CONFLICT RATE_LIMITED INTERNAL
message
required
string
requestId
required
string
fields

Present only for VALIDATION_FAILED.

Array<object>
object
path
string
message
string
Example
{
"error": {
"code": "VALIDATION_FAILED"
}
}