Appearance
Admin API Endpoints
Admin APIs cover tenant-level lab administration (/lab/admin) and platform-level operations (/admin).
Tenant admin (/lab/admin)
Requires JWT with tenant context. Most endpoints check specific permissions.
Access and roles
| Method | Endpoint | Permission | Description |
|---|---|---|---|
| GET | /lab/admin/access | — | Current user's roles and permissions |
| GET | /lab/admin/permissions | roles.view | Permission catalog |
| GET | /lab/admin/roles | roles.view | List roles |
| POST | /lab/admin/roles | roles.create | Create role |
| PUT | /lab/admin/roles/{id} | roles.edit | Update role |
| DELETE | /lab/admin/roles/{id} | roles.delete | Delete role |
Users
| Method | Endpoint | Permission | Description |
|---|---|---|---|
| GET | /lab/admin/users | users.view | List staff |
| POST | /lab/admin/users | users.create | Create staff user |
| PUT | /lab/admin/users/{id} | users.edit | Update user |
| DELETE | /lab/admin/users/{id} | users.delete | Deactivate user |
CRM, stock, ledgers
Additional routes under /lab/admin/crm, /lab/settings, and related controllers follow the same permission pattern. See Lab Administration.
Platform admin (/admin)
Requires platform admin JWT.
Tenants
| Method | Endpoint | Permission | Description |
|---|---|---|---|
| GET | /admin/tenants | platform.tenants.view | List tenants |
| GET | /admin/tenants/{id} | platform.tenants.view | Tenant detail |
| POST | /admin/tenants | platform.tenants.manage | Create tenant |
| PUT | /admin/tenants/{id} | platform.tenants.manage | Update tenant |
| POST | /admin/tenants/{id}/lock | platform.tenants.manage | Lock tenant |
| POST | /admin/tenants/{id}/unlock | platform.tenants.manage | Unlock tenant |
| POST | /admin/tenants/{id}/provision | platform.tenants.manage | Provision database |
| POST | /admin/tenants/{id}/impersonate | platform.tenants.impersonate | Start impersonation |
Custom domain
| Method | Endpoint | Description |
|---|---|---|
| GET | /admin/tenants/{id}/custom-domain | Current domain config |
| POST | /admin/tenants/{id}/custom-domain | Set hostname |
| POST | /admin/tenants/{id}/custom-domain/verify | Verify DNS |
| DELETE | /admin/tenants/{id}/custom-domain | Remove domain |
Plans
| Method | Endpoint | Permission |
|---|---|---|
| GET/POST/PUT | /admin/plans | platform.plans.manage |
Backups
| Method | Endpoint | Permission |
|---|---|---|
| GET/PUT | /admin/backups/settings | platform.backups.manage |
| GET/POST | /admin/backups | platform.backups.manage |
| POST | /admin/backups/{id}/restore | platform.backups.manage |
Platform settings
| Method | Endpoint | Permission |
|---|---|---|
| GET/PUT | /admin/settings/payment-account | platform.tenants.billing |
| GET/PUT | /admin/settings/registration-email-policy | platform.tenants.manage |
Platform CRM
| Method | Endpoint | Permission |
|---|---|---|
| CRUD | /admin/crm/leads | platform.crm.manage |
Platform users
| Method | Endpoint | Permission |
|---|---|---|
| CRUD | /admin/users | platform.users.manage |
Tenant owner routes (/tenant)
| Method | Endpoint | Description |
|---|---|---|
| GET | /tenant/backups | List tenant's backups |
| POST | /tenant/backups/{id}/restore | Owner restore |
Reports
| Prefix | Description |
|---|---|
/lab/pms/reports | Tenant operational/financial reports |
/admin/reports | Platform-wide reports |
/admin/analytics | Platform analytics |