Skip to main content

Platform Security API

API Reference covers authentication and conventions; Swagger at https://<your-host>/api/docs is exhaustive. Requests below use either a session (Authorization: Bearer <session>) or an API key (X-API-Key); the sign-in endpoints themselves are unauthenticated.

Sign-in, MFA and SSO

TaskEndpointNotes
Sign inPOST /api/auth/login {email, password}{session_id, user} or {mfa_required: true, mfa_token}5 failures → 15-minute lock; SSO-enforced deployments refuse non-platform-admin passwords
Complete MFAPOST /api/auth/mfa/verify {mfa_token, code}TOTP or backup code; challenge valid 5 minutes
Who am I · sign outGET /api/auth/me · POST /api/auth/logout
MFA managementPOST /api/auth/mfa/setup → QR + secret · POST …/mfa/enable {secret, code} → backup codes · POST …/mfa/disable {password} · POST …/mfa/backup-codes (regenerate; no body) · GET …/mfa/statusThe signed-in user
MFA enforcementGET · POST /api/auth/mfa/enforce {enforce}Manage Team
PasswordsPOST /api/auth/change-password {current_password, new_password} · POST /api/auth/forgot-password {email} · POST /api/auth/reset-password {token, new_password}Reset link valid 30 min
SSOGET /api/auth/sso/status{enabled, enforced, provider_name} · GET /api/auth/sso/login (redirects to the IdP) · GET /api/auth/sso/callback · POST /api/auth/sso/exchange {code} → sessionConfigured by environment
RegistrationGET /api/auth/invitation-info?token= · POST /api/auth/register {email, password, name, invitation_token}Invitation required after the first account
Organisation settingsGET /api/auth/org-settings · PUT /api/auth/org-settings/domain {domain}Allowed registration / SSO domain — Admin

Teams, members and invitations

TaskEndpointNotes
TeamsGET /api/teams · POST /api/teams {name, description?, organization?, risk_appetite_threshold?, compliance_frameworks?} · GET · PUT · DELETE /api/teams/{team_id}Create / edit / delete need Manage Team
Active teamGET /api/teams/current · POST /api/teams/{team_id}/switchSwitch re-issues the session for that team
MembersGET /api/teams/{team_id}/members · PUT …/members/{user_id} {role} · DELETE …/members/{user_id}Manage Users (Admin, Security Manager); only an Admin may set admin
InvitationsPOST /api/teams/{team_id}/members/invite {email, role, message?} · GET /api/teams/invitations/pending · POST …/invitations/{invitation_id}/accept · …/reject20 per inviter per hour; 7-day expiry
Users on the deploymentGET /api/auth/usersAdmin

API keys

TaskEndpointNotes
CreatePOST /api/api-keys {name, description?, scopes[] | scope_preset, expires_in_days (90; 0 = never; ≤ 365), ip_allowlist[]? (≤ 50), environment (production|staging|development|ci), rate_limit_per_minute (60; 1–600)}Returns the key once
List · detail · scopesGET /api/api-keys · GET /api/api-keys/{key_id} · GET /api/api-keys/scopesOwn keys
Update · rotate · revokePUT /api/api-keys/{key_id} {name?, description?, ip_allowlist?, environment?, rate_limit_per_minute?} · POST …/{key_id}/rotate {grace_period_hours (48; 0–168)} · DELETE /api/api-keys/{key_id} · POST /api/api-keys/bulk-revoke {key_ids[]? , environment?}
UsageGET /api/api-keys/analytics?days=30 · GET /api/api-keys/audit-log?limit=
Team-wide (admin)GET /api/api-keys/admin/team-keys · DELETE /api/api-keys/admin/{key_id}Team Admin

Audit trail and user activity

TaskEndpointNotes
QueryGET /api/audit-trail?user_id=&action=&start_date=&end_date=&success_only=&limit=&skip= · GET /api/audit-trail/user/{user_id} · GET /api/audit-trail/actionsMembers: own events; team Admin: the team; platform administrator: everything
ExportGET /api/audit-trail/export (CSV, ≤ 10,000 events)Team Admin or platform administrator
Authentication logGET /api/auth/audit-log?limit=Platform administrator
User activityGET /api/platform-admin/activity/summary · …/users · …/sessions · DELETE …/sessions/{session_id} · GET …/login-history · POST …/users/{user_id}/reset-password · POST …/users/{user_id}/require-password-changePlatform administrator
Menu configurationGET /api/menu-config (any signed-in user — drives the sidebar) · PUT /api/admin/menu-config {menu_visibility: {section_id: bool}}PUT: platform administrator
Platform setupGET /api/platform-setup/status · POST /api/platform-setup/reopen · …/validate-service · …/validate-smtp · …/validate-storage · …/save-config · …/completeAdmin

Permissions

ActionPermission
Own sessions, MFA, password, own API keys, own audit eventsany authenticated user
Create / edit / delete teams, MFA enforcementManage Team (manage_team) — Admin, Security Manager
Invite, change roles, remove membersManage Users (manage_users) — Admin, Security Manager; assigning Admin needs an Admin
Team-wide audit trail and export, team-wide API keys, list deployment users, Platform SetupAdmin role
Cross-team audit, authentication log, User Activity, session revocation, password resets, menu configurationplatform administrator (is_platform_admin)

See Authentication for key scopes and Conventions for pagination, error shapes and rate limits.