# Admin

Privileged administrative endpoints for managing organizations (orgs) and
their local users (CRUD), versioned under `/v1/admin`. Authenticated by a
Bearer access token: every operation enforces its declared `nauthera.*`
scope (via the `oauth2` security scheme) IN ADDITION to the permission it
declares in `x-permission`, which the caller's roles must grant. Organization
endpoints are main-org only; user and audit endpoints are confined to the
caller's own org unless a platform role held in the main org admits them to
every org. All list endpoints use opaque
cursor (keyset) pagination — bound the page with `limit`, order it with
`sort` (per-endpoint `x-sort-fields`), then pass the previous response's
`page.next_cursor` back as `cursor` for as long as `page.has_more` is true.
Not part of the OAuth2/OIDC wire protocol.

## Endpoints

- [`GET /v1/admin/me` Get who the caller is and what they may do (admin)](https://www.nauthera.io/docs/v1/api/admin/get-me.md)
- [`GET /v1/admin/problems` List what operators could not do for resources in no organization (admin)](https://www.nauthera.io/docs/v1/api/admin/list-platform-problems.md)
- [`GET /v1/admin/problems/{id}` Get one problem an operator reported for a resource in no organization (admin)](https://www.nauthera.io/docs/v1/api/admin/get-platform-problem.md)
- [`GET /v1/admin/orgs` List organizations (admin, platform staff)](https://www.nauthera.io/docs/v1/api/admin/list-organizations.md)
- [`POST /v1/admin/orgs` Create an organization (admin, main-only)](https://www.nauthera.io/docs/v1/api/admin/create-organization.md)
- [`GET /v1/admin/orgs/{slug}` Get an organization (admin)](https://www.nauthera.io/docs/v1/api/admin/get-organization.md)
- [`PATCH /v1/admin/orgs/{slug}` Update an organization (admin, main-only)](https://www.nauthera.io/docs/v1/api/admin/update-organization.md)
- [`DELETE /v1/admin/orgs/{slug}` Delete an organization (admin, main-only)](https://www.nauthera.io/docs/v1/api/admin/delete-organization.md)
- [`GET /v1/admin/orgs/{slug}/theme` Get an organization's dashboard theme (admin)](https://www.nauthera.io/docs/v1/api/admin/get-organization-theme.md)
- [`GET /v1/admin/orgs/{slug}/mail` Get an organization's email relay (admin)](https://www.nauthera.io/docs/v1/api/admin/get-organization-mail.md)
- [`POST /v1/admin/orgs/{slug}/mail/test` Send a test email through an organization's relay (admin)](https://www.nauthera.io/docs/v1/api/admin/send-organization-test-mail.md)
- [`GET /v1/admin/orgs/{slug}/snapshot` Count an organization's users, sessions and clients (admin)](https://www.nauthera.io/docs/v1/api/admin/get-organization-snapshot.md)
- [`GET /v1/admin/orgs/{slug}/clients` List an organization's OIDC clients (admin)](https://www.nauthera.io/docs/v1/api/admin/list-clients.md)
- [`GET /v1/admin/orgs/{slug}/clients/{id}` Get one OIDC client's registered configuration (admin)](https://www.nauthera.io/docs/v1/api/admin/get-client.md)
- [`GET /v1/admin/orgs/{slug}/clients/{id}/usage` Count one OIDC client's daily, monthly and all-time users (admin)](https://www.nauthera.io/docs/v1/api/admin/get-client-usage.md)
- [`GET /v1/admin/orgs/{slug}/identity-providers` List an organization's identity providers (admin)](https://www.nauthera.io/docs/v1/api/admin/get-identity-providers.md)
- [`GET /v1/admin/orgs/{slug}/problems` List what operators could not do for an organization's resources (admin)](https://www.nauthera.io/docs/v1/api/admin/list-problems.md)
- [`GET /v1/admin/orgs/{slug}/problems/{id}` Get one problem an operator reported for an organization's resource (admin)](https://www.nauthera.io/docs/v1/api/admin/get-problem.md)
- [`GET /v1/admin/orgs/{slug}/broker-memberships` List an organization's broker memberships (admin)](https://www.nauthera.io/docs/v1/api/admin/get-broker-memberships.md)
- [`POST /v1/admin/orgs/{slug}/broker-memberships` Invite an organization to be a member of this broker (admin)](https://www.nauthera.io/docs/v1/api/admin/invite-broker-member.md)
- [`DELETE /v1/admin/orgs/{slug}/broker-memberships/{id}` End a broker membership, from either side (admin)](https://www.nauthera.io/docs/v1/api/admin/end-broker-membership.md)
- [`POST /v1/admin/orgs/{slug}/broker-memberships/{id}/accept` Accept a broker's invitation (admin)](https://www.nauthera.io/docs/v1/api/admin/accept-broker-membership.md)
- [`PUT /v1/admin/orgs/{slug}/broker-memberships/{id}/clients` Choose which of the broker's clients a membership admits (admin)](https://www.nauthera.io/docs/v1/api/admin/set-broker-membership-clients.md)
- [`GET /v1/admin/orgs/{slug}/email-domains` List an organization's email domain claims (admin)](https://www.nauthera.io/docs/v1/api/admin/get-email-domains.md)
- [`POST /v1/admin/orgs/{slug}/email-domains` Claim an email domain for an organization (admin)](https://www.nauthera.io/docs/v1/api/admin/claim-email-domain.md)
- [`DELETE /v1/admin/orgs/{slug}/email-domains/{id}` Remove an email domain claim (admin)](https://www.nauthera.io/docs/v1/api/admin/remove-email-domain.md)
- [`POST /v1/admin/orgs/{slug}/email-domains/{id}/verify` Verify an email domain claim against its TXT record (admin)](https://www.nauthera.io/docs/v1/api/admin/verify-email-domain.md)
- [`GET /v1/admin/orgs/{slug}/users` List users (admin)](https://www.nauthera.io/docs/v1/api/admin/list-users.md)
- [`POST /v1/admin/orgs/{slug}/users` Create a user (admin)](https://www.nauthera.io/docs/v1/api/admin/create-user.md)
- [`GET /v1/admin/orgs/{slug}/users/{id}` Get a user (admin)](https://www.nauthera.io/docs/v1/api/admin/get-user.md)
- [`PATCH /v1/admin/orgs/{slug}/users/{id}` Update a user (admin)](https://www.nauthera.io/docs/v1/api/admin/update-user.md)
- [`DELETE /v1/admin/orgs/{slug}/users/{id}` Delete a user (admin)](https://www.nauthera.io/docs/v1/api/admin/delete-user.md)
- [`PUT /v1/admin/orgs/{slug}/users/{id}/password` Set a user's password (admin)](https://www.nauthera.io/docs/v1/api/admin/set-user-password.md)
- [`POST /v1/admin/orgs/{slug}/users/{id}/suspend` Suspend a user (admin)](https://www.nauthera.io/docs/v1/api/admin/suspend-user.md)
- [`POST /v1/admin/orgs/{slug}/users/{id}/block` Block a user (admin)](https://www.nauthera.io/docs/v1/api/admin/block-user.md)
- [`POST /v1/admin/orgs/{slug}/users/{id}/reactivate` Reactivate a user (admin)](https://www.nauthera.io/docs/v1/api/admin/reactivate-user.md)
- [`POST /v1/admin/orgs/{slug}/users/{id}/unlock` Unlock a user (admin)](https://www.nauthera.io/docs/v1/api/admin/unlock-user.md)
- [`POST /v1/admin/orgs/{slug}/users/{id}/password-change` Require a user to set a new password at their next sign-in (admin)](https://www.nauthera.io/docs/v1/api/admin/require-password-change.md)
- [`POST /v1/admin/orgs/{slug}/users/{id}/password-reset` Email a user a password reset link (admin)](https://www.nauthera.io/docs/v1/api/admin/send-user-password-reset.md)
- [`POST /v1/admin/orgs/{slug}/users/{id}/invitation` Send a user a new invitation (admin)](https://www.nauthera.io/docs/v1/api/admin/resend-user-invitation.md)
- [`GET /v1/admin/orgs/{slug}/users/{id}/devices` List a user's known browsers and networks (admin)](https://www.nauthera.io/docs/v1/api/admin/get-user-devices.md)
- [`DELETE /v1/admin/orgs/{slug}/users/{id}/devices/remembered` Forget a user's browsers remembered for their second factor (admin)](https://www.nauthera.io/docs/v1/api/admin/forget-user-remembered-browsers.md)
- [`GET /v1/admin/orgs/{slug}/users/{id}/identities` List the identity provider accounts linked to a user (admin)](https://www.nauthera.io/docs/v1/api/admin/get-user-identities.md)
- [`GET /v1/admin/orgs/{slug}/users/{id}/roles` List a user's roles (admin)](https://www.nauthera.io/docs/v1/api/admin/get-user-roles.md)
- [`PUT /v1/admin/orgs/{slug}/users/{id}/roles/{role}` Grant a user a role (admin)](https://www.nauthera.io/docs/v1/api/admin/grant-user-role.md)
- [`DELETE /v1/admin/orgs/{slug}/users/{id}/roles/{role}` Revoke a user's role (admin)](https://www.nauthera.io/docs/v1/api/admin/revoke-user-role.md)
- [`GET /v1/admin/orgs/{slug}/users/{id}/session-history` List a user's ended sessions (admin)](https://www.nauthera.io/docs/v1/api/admin/list-user-session-history.md)
- [`DELETE /v1/admin/orgs/{slug}/users/{id}/sessions` End every session of a user (admin)](https://www.nauthera.io/docs/v1/api/admin/end-user-sessions.md)
- [`GET /v1/admin/orgs/{slug}/sessions` List an organization's active sessions (admin)](https://www.nauthera.io/docs/v1/api/admin/list-sessions.md)
- [`DELETE /v1/admin/orgs/{slug}/sessions/{sid}` End one session (admin)](https://www.nauthera.io/docs/v1/api/admin/end-session.md)
- [`GET /v1/admin/orgs/{slug}/audit-events` List audit events (admin)](https://www.nauthera.io/docs/v1/api/admin/list-audit-events.md)
- [`GET /v1/admin/orgs/{slug}/audit-events/tail` Follow the audit log (admin)](https://www.nauthera.io/docs/v1/api/admin/tail-audit-events.md)
- [`GET /v1/admin/orgs/{slug}/audit-events/counts` Count audit events over time (admin)](https://www.nauthera.io/docs/v1/api/admin/count-audit-events.md)
- [`GET /v1/admin/orgs/{slug}/audit-events/top` Rank the subjects behind audit events (admin)](https://www.nauthera.io/docs/v1/api/admin/rank-audit-events.md)
- [`GET /v1/admin/orgs/{slug}/audit-events/{id}` Get an audit event (admin)](https://www.nauthera.io/docs/v1/api/admin/get-audit-event.md)
- [`GET /v1/admin/audit-catalog` Get the audit event catalog (admin)](https://www.nauthera.io/docs/v1/api/admin/get-audit-catalog.md)
- [`GET /v1/admin/orgs/{slug}/threats` Get the threat overview (admin)](https://www.nauthera.io/docs/v1/api/admin/get-threat-overview.md)
- [`GET /v1/admin/orgs/{slug}/threats/sign-ins` Get the shape of the refused sign-ins (admin)](https://www.nauthera.io/docs/v1/api/admin/get-sign-in-shape.md)
- [`GET /v1/admin/deployment/client-ip` Get how the client address is determined (admin)](https://www.nauthera.io/docs/v1/api/admin/get-client-ip-posture.md)
