Platform User Management

Search users and manage MFA across the platform

Updated Dec 29, 2025 Edit this page

Platform User Management

Platform owner endpoints for user search and MFA management.


Endpoints

Method Path Description
GET /api/platform/users/search Search users
GET /api/platform/users/:user_id/mfa/status Get MFA status
DELETE /api/platform/users/:user_id/mfa Force disable MFA
GET /api/platform/mfa/metrics Get MFA metrics
GET /api/platform/mfa/suspicious Get suspicious activity
POST /api/platform/owners Promote to owner
DELETE /api/platform/owners/:user_id Demote owner

GET /api/platform/users/search

Search users across all organizations.

Query Parameters

Parameter Type Description
email string Search by email (partial match)
user_id string Search by exact user ID
limit integer Max results (default: 20)

Example Request

curl -X GET "https://sso.example.com/api/platform/users/search?email=john" \
  -H "Authorization: Bearer {platform_owner_jwt}"

Response (200 OK)

{
  "users": [
    {
      "id": "user-uuid",
      "email": "john@example.com",
      "is_platform_owner": false,
      "mfa_enabled": true,
      "created_at": "2025-01-15T10:30:00Z",
      "organizations": ["acme-corp", "beta-inc"]
    }
  ]
}

GET /api/platform/users/:user_id/mfa/status

Get detailed MFA status for a user.

Response (200 OK)

{
  "user_id": "user-uuid",
  "email": "user@example.com",
  "mfa_enabled": true,
  "mfa_enabled_at": "2025-01-10T08:00:00Z",
  "backup_codes_remaining": 8,
  "last_mfa_challenge": "2025-01-15T10:30:00Z"
}

DELETE /api/platform/users/:user_id/mfa

Force disable MFA for a user (support scenario).

Request Body

Field Type Required Description
reason string Yes Reason for disabling (logged)

Example Request

curl -X DELETE https://sso.example.com/api/platform/users/user-uuid/mfa \
  -H "Authorization: Bearer {platform_owner_jwt}" \
  -H "Content-Type: application/json" \
  -d '{"reason": "User lost all backup codes and authenticator device"}'

[!WARNING] This action is logged and should only be used for legitimate support cases.


GET /api/platform/mfa/metrics

Get platform-wide MFA adoption metrics.

Response (200 OK)

{
  "total_users": 15420,
  "mfa_enabled_users": 8234,
  "mfa_adoption_rate": 53.4,
  "backup_codes_used_7d": 42,
  "mfa_failures_7d": 156
}

GET /api/platform/mfa/suspicious

Get suspicious MFA activity requiring review.

Response (200 OK)

{
  "alerts": [
    {
      "user_id": "user-uuid",
      "email": "user@example.com",
      "alert_type": "multiple_failures",
      "details": "15 failed MFA attempts in 1 hour",
      "detected_at": "2025-01-15T10:30:00Z"
    }
  ]
}

POST /api/platform/owners

Promote a user to platform owner.

Request Body

Field Type Required Description
user_id string Yes User to promote

DELETE /api/platform/owners/:user_id

Demote a platform owner.

[!NOTE] Cannot demote yourself or the last remaining owner.