For the complete documentation index, see llms.txt. This page is also available as Markdown.

Admin Authentication

List admin accounts

get

Lists all registered admin accounts.

Authorizations
AuthorizationstringOptional
Bearer authentication header of the form Bearer <token>.
Responses
200

Accounts list retrieved

application/json
get/admin/accounts
200

Accounts list retrieved

Delete admin account

delete

Deletes a registered admin account and related passkeys.

Authorizations
AuthorizationstringOptional
Bearer authentication header of the form Bearer <token>.
Path parameters
idstring · uuidRequired

ID of the admin account to delete

Responses
200

Account deleted

application/json
account_idstring · uuidRequired

Identifier of the deleted admin account.

deletedbooleanRequired

Always true when deletion succeeds.

Example: true
delete/admin/accounts/{id}

List admin invitations

get

Lists all pending, non-expired admin invitations.

Authorizations
AuthorizationstringOptional
Bearer authentication header of the form Bearer <token>.
Responses
200

Invitations list retrieved

application/json
get/admin/invitations
200

Invitations list retrieved

Create admin passkey invitation

post

Creates an invitation token that can be used exactly once to register the first admin passkey.

Authorizations
AuthorizationstringOptional
Bearer authentication header of the form Bearer <token>.
Body
display_namestring · max: 255Optional

Optional display name to associate with the invitation and resulting admin account.

Example: Admin User
Responses
201

Admin passkey invitation created

application/json
account_idstring · uuidRequired

Identifier of the invitation/account record.

secret_tokenstringRequired

One-time invitation secret token to be used in registration endpoints.

expires_atstring · date-timeRequired

Invitation expiration timestamp (ISO 8601 UTC).

post/admin/invitations
201

Admin passkey invitation created

Delete admin invitation

delete

Deletes a pending admin invitation.

Authorizations
AuthorizationstringOptional
Bearer authentication header of the form Bearer <token>.
Path parameters
idstring · uuidRequired

ID of the admin invitation to delete

Responses
200

Invitation deleted

application/json
invitation_idstring · uuidRequired

Identifier of the deleted invitation.

deletedbooleanRequired

Always true when deletion succeeds.

Example: true
delete/admin/invitations/{id}

Start admin passkey registration

post

Starts WebAuthn registration for a pending invitation and returns PublicKeyCredentialCreationOptionsJSON.

Use the returned options with navigator.credentials.create(...), then submit the resulting credential to /admin/invitations/accept together with challenge_id.

Body
secret_tokenstringRequired

Invitation secret token returned by /admin/invitations.

Responses
200

Registration options generated

application/json
challenge_idstring · uuidRequired

Challenge identifier required by /admin/invitations/accept.

post/admin/invitations/accept/options

Verify admin passkey registration

post

Verifies the WebAuthn registration response produced by navigator.credentials.create(...) and persists the admin passkey.

challenge_id must match the value returned by /admin/invitations/accept/options.

Body
secret_tokenstringRequired

Invitation secret token returned by /admin/invitations.

challenge_idstringRequired

Challenge identifier returned by /admin/invitations/accept/options.

Responses
200

Registration verified

application/json
account_idstring · uuidRequired

Identifier of the admin account.

passkey_idstring · uuidRequired

Identifier of the created passkey credential.

passkeys_countintegerRequired

Total number of passkeys currently registered for the account.

post/admin/invitations/accept

Start admin passkey authentication

post

Starts WebAuthn authentication and returns PublicKeyCredentialRequestOptionsJSON.

Use the returned options with navigator.credentials.get(...), then submit the resulting assertion to /admin/session together with challenge_id.

Responses
200

Authentication options generated

application/json
challenge_idstring · uuidRequired

Challenge identifier required by /admin/session.

post/admin/session/options
200

Authentication options generated

Verify admin passkey authentication

post

Verifies the WebAuthn assertion produced by navigator.credentials.get(...).

On success, returns an admin access token response and sets an HTTP-only refresh token cookie (admin_refresh_token) valid for 7 days.

Body
challenge_idstringRequired

Challenge identifier returned by /admin/session/options.

Responses
200

Authentication verified

application/json
post/admin/session

Refresh admin access token

post

Issues a new admin access token using the HTTP-only admin_refresh_token cookie.

On success, the server rotates the refresh token value and returns it via Set-Cookie with the same /admin/session/refresh path and fixed 7-day expiry (non-sliding).

Responses
200

Access token refreshed

application/json
post/admin/session/refresh

Last updated