Admin Management API

Full CRUD, account actions, bulk operations, impersonation, and query parameters for admin user management.

The Admin Management API provides full lifecycle management for admin accounts within a tenant. All endpoints require Bearer token authentication and appropriate permissions from the admins.* permission group.

SettingValue
Base URL/api/v1/admins
Auth RequiredYes — Bearer Token + AdminOnly
Permission Prefixadmins.*
Rate Limitglobal (100 req/min)

Admin CRUD Endpoints

MethodEndpointDescriptionAuth
GET/api/v1/adminsList admins with pagination, search, sorting, and role/status filters.🔒 Required
GET/api/v1/admins/{id}Get a single admin by ID, including role details and last login.🔒 Required
POST/api/v1/adminsCreate a new admin account with email, role, and tenant assignment.🔒 Required
PUT/api/v1/admins/{id}Update an admin's name, phone, role, or active status.🔒 Required
DELETE/api/v1/admins/{id}Soft-delete an admin. Can be restored from the recycle bin.🔒 Required
GET /admins?page=1&pageSize=10&search=johnJSON
{
  "items": [
    {
      "id": "admin-uuid",
      "email": "admin@acme.com",
      "firstName": "John",
      "lastName": "Doe",
      "role": { "id": "role-uuid", "name": "SuperAdmin" },
      "isActive": true,
      "isBlocked": false,
      "lastLoginAt": "2026-02-20T14:00:00Z",
      "createdAt": "2026-01-01T00:00:00Z"
    }
  ],
  "totalCount": 42,
  "page": 1,
  "pageSize": 10,
  "totalPages": 5
}

Account Actions

MethodEndpointDescriptionAuth
POST/api/v1/admins/{id}/activateActivate a deactivated admin account.🔒 Required
POST/api/v1/admins/{id}/deactivateDeactivate an admin account (prevents login).🔒 Required
POST/api/v1/admins/{id}/blockBlock an admin account (immediate lockout).🔒 Required
POST/api/v1/admins/{id}/unblockUnblock a blocked admin account.🔒 Required
POST/api/v1/admins/{id}/unlockUnlock a locked-out account (reset failed login attempts).🔒 Required
POST/api/v1/admins/{id}/reset-passwordForce-reset an admin's password. Sends a new temporary password via email.🔒 Required

Bulk Operations

Bulk operations accept either an array of specific IDs or a filter object that matches all records meeting criteria. The bulk-delete-all variant uses the current filter context to select records, with an optional excludeIds array to protect specific accounts.

MethodEndpointDescriptionAuth
POST/api/v1/admins/bulk-activateActivate multiple admin accounts by ID list.🔒 Required
POST/api/v1/admins/bulk-deactivateDeactivate multiple admin accounts by ID list.🔒 Required
POST/api/v1/admins/bulk-deleteSoft-delete multiple admins by ID list.🔒 Required
POST/api/v1/admins/bulk-delete-allSoft-delete all admins matching the current filter (with exclusions).🔒 Required
POST /admins/bulk-delete — By ID SelectionJSON
{
  "ids": [
    "admin-uuid-1",
    "admin-uuid-2",
    "admin-uuid-3"
  ]
}

// Response (200)
{ "affected": 3, "message": "3 admins deleted" }

Impersonation

MethodEndpointDescriptionAuth
POST/api/v1/admins/{id}/impersonateStart impersonating another admin. Receive their JWT with your audit trail attached.🔒 Required
POST/api/v1/admins/stop-impersonationStop impersonation and return to your original admin session.🔒 Required
POST/api/v1/admins/{id}/transferTransfer SuperAdmin role to another admin. You lose SuperAdmin privileges.🔒 Required
POST/api/v1/admins/{id}/protectToggle protection flag on an admin account (protected accounts cannot be deleted).🔒 Required

Query Parameters

ParameterTypeDefaultDescription
pageint1Page number (1-based)
pageSizeint10Items per page (max 100)
searchstring—Search in name, email
sortBystringcreatedAtSort field
sortDirectionstringdescasc or desc
isActivebool?—Filter by active status
isBlockedbool?—Filter by block status
roleIdGuid?—Filter by role