Members
The people on a brand.
GET /users
{
"members": [
{
"id": 1,
"first_name": "Ada",
"last_name": "Lovelace",
"email": "ada@example.com",
"status": true,
"roles": ["super_admin"]
}
],
"used": 1,
"limit": 2,
"is_unlimited": false
}used, limit and is_unlimited reflect the staff_accounts allowance on your plan.
GET /users/roles
The roles you can assign.
{ "roles": [{ "id": 1, "name": "super_admin" }, { "id": 2, "name": "editor" }] }Invitations
Adding a person is invite only. Nobody is created directly, from Studio or the API. The link in the invitation email adds the invited address to the brand with the role you picked, whoever opens it. See Invite members for what the invited person sees.
All four endpoints are for the brand owner. Anyone else gets 403.
GET /invitations
Pending invitations: sent, not yet accepted, not expired.
{
"invitations": [
{ "id": 12, "email": "ada@example.com", "role": "member", "expires_at": "2026-09-23T10:00:00.000000Z" }
]
}POST /invitations
| Field | Rules |
|---|---|
email | required, email, max 255 |
role | optional, member or client, defaults to member |
Returns 201 with { "invitation": { ... } } and sends the email. The invitation expires 7 days after it is sent.
Errors
| Response | Cause |
|---|---|
422 with "code": "already_member" | That email is already a member of the brand |
422 with "code": "already_invited" | A pending invitation already exists for that email |
422 with "code": "limit_reached" and "limit_reached": true | Members plus pending invitations already fill the staff_accounts allowance |
422 validation error on email or role | Missing or invalid field |
POST /invitations/{id}/resend
Sends the email again with a new link and a fresh 7 days. The previous link stops working. Returns 200 with { "invitation": { ... } }.
DELETE /invitations/{id}
Cancels a pending invitation. Returns 204.
Both return 404 for an invitation that was already accepted, or an id from another brand.
Permissions
Roles carry permissions, grouped by area: content, comments, automations, research, connections, settings and team each have view and manage variants; metrics has view only, and billing has manage only.
Only a brand owner (super_admin) can rename the brand, manage members, or create another brand. See Roles and permissions.