Skip to content

Begin passkey login

POST
/auth/webauthn/authentication/options
curl --request POST \
--url https://example.com/api/v1/auth/webauthn/authentication/options

Start a passwordless, discoverable passkey login. Public (pre-login) but only available under AUTH=on. Stores a single-use challenge and returns WebAuthn assertion options for navigator.credentials.get().

Assertion options

Media typeapplication/json

WebAuthn assertion options (PublicKeyCredentialRequestOptionsJSON) for discoverable/passwordless login, passed verbatim to navigator.credentials.get().

object
options
required

PublicKeyCredentialRequestOptionsJSON (challenge, rpId, …).

object
key
additional properties
any
Examplegenerated
{
"options": {}
}

Passkeys require AUTH=on

Media typeapplication/json
object
error
required

Error message

string
code

Stable machine-readable code present on 5xx responses; error is a fixed user-safe message, raw detail is logged server-side only

string
Allowed values: cleanup_failed library_fetch_failed episodes_fetch_failed releases_fetch_failed
Example
{
"code": "cleanup_failed"
}

WebAuthn RP resolution failed

Media typeapplication/json
object
error
required

Error message

string
code

Stable machine-readable code present on 5xx responses; error is a fixed user-safe message, raw detail is logged server-side only

string
Allowed values: cleanup_failed library_fetch_failed episodes_fetch_failed releases_fetch_failed
Example
{
"code": "cleanup_failed"
}