Begin passkey registration
const url = 'https://example.com/api/v1/auth/webauthn/registration/options';const options = {method: 'POST'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/v1/auth/webauthn/registration/optionsStart registering a passkey for the authenticated local user. Requires AUTH=on and a real
local user (rejects the API-key pseudo-user and OIDC users). Stores a single-use challenge and
returns WebAuthn creation options for navigator.credentials.create().
Responses
Section titled “Responses”Credential creation options
WebAuthn credential creation options (PublicKeyCredentialCreationOptionsJSON), passed verbatim to the browser’s navigator.credentials.create(). The inner shape is owned by @simplewebauthn and treated as opaque here.
object
PublicKeyCredentialCreationOptionsJSON (challenge, rp, user, pubKeyCredParams, …).
object
Examplegenerated
{ "options": {}}Not an authenticated local user
object
Error message
Stable machine-readable code present on 5xx responses; error is a fixed user-safe message, raw detail is logged server-side only
Example
{ "code": "cleanup_failed"}Passkeys require AUTH=on
object
Error message
Stable machine-readable code present on 5xx responses; error is a fixed user-safe message, raw detail is logged server-side only
Example
{ "code": "cleanup_failed"}WebAuthn RP resolution failed
object
Error message
Stable machine-readable code present on 5xx responses; error is a fixed user-safe message, raw detail is logged server-side only
Example
{ "code": "cleanup_failed"}