Control panel users
Users are the people who sign in to the control panel with email and password. Each user has a role (see Authentication) and can be linked to an extension.
With these endpoints administrators view users and change their name and sign-in email:
- a tenant administrator sees and edits only the users of their own company, never those of other companies nor platform administrators;
- the platform administrator sees every user. Without
X-Tenant-Idthey can filter with?tenantId=<id>or?tenantId=platform(platform administrators only); withX-Tenant-Idthey see only that company's users.
The users:read (list and detail) and users:write (edit) scopes are required. The Tenant administrator role has both.
List and search
GET /v1/users returns users in creation order, with cursor pagination. Filters: q (name or email), role, tenantId (platform only). Each user includes company, linked extension, status, two-step verification and last sign-in.
curl https://centralino.exovoip.it/api/v1/users?q=rossi \
-H 'Authorization: Bearer exo_live_…'Changing name and email
PATCH /v1/users/:id with name and/or email. The change applies immediately; when the email changes, both the old and the new address receive a notice and links already sent (password recovery, email change) stop working. The password does not change.
Rules:
- for security, changes are allowed only from the control panel session: with an API key the response is
403 SESSION_REQUIRED; - an email already used by another account returns
409 EMAIL_TAKEN(emails are unique across the platform, case-insensitive); - your own email cannot be changed here (
400): usePOST /auth/email/change, which asks for the current password and confirmation from the new address (see Authentication); - a user of another company returns
404.
In the panel: Settings → Users for tenant administrators, Administration → Users for the platform (also from each company's menu in Customer companies).
Every change is recorded in the activity log (user.update) with the old and new address.
Endpoints
| Request | Scope | SDK method |
|---|---|---|
GET /v1/users | users:read | users.list() |
GET /v1/users/:id | users:read | users.get() |