Skip to content

Create WebAuthn registration options.

POST
/api/auth/passkeys/register/options
Code sample: Shell / cURL
curl --request POST \
--url https://auth.example.com/api/auth/passkeys/register/options \
--header 'Content-Type: application/json' \
--data '{ "email": "user@example.com", "name": "Example User" }'
Media type application/json

Email is optional for discoverable Passkey registration.

object
email
string format: email
name
string
custom_fields
object
key
additional properties
provisioning_token

Continuation token returned by a previous asynchronous account provisioning response.

string
/^[A-Za-z0-9_-]{43}$/
resume_user_id

Continuation value paired with provisioning_token for a retried Passkey request.

string
Example
{
"email": "user@example.com",
"name": "Example User"
}

Successful JSON response.

Media type application/json
object
options
required

WebAuthn options generated by @simplewebauthn/server.

object
key
additional properties
userId
required
string
Example
{
"options": {
"challenge": "challenge",
"rp": {
"name": "Authrim",
"id": "auth.example.com"
},
"user": {
"id": "user_123",
"name": "user@example.com",
"displayName": "Example User"
},
"pubKeyCredParams": []
},
"userId": "user_123"
}

Account creation is durable but its active Lookup route is not ready yet.

Media type application/json
object
status
required
string
Allowed value: provisioning
provisioning_token
required
string
/^[A-Za-z0-9_-]{43}$/
status_endpoint
required
string
Allowed value: /api/v1/auth/account-provisioning/status
retry_after_ms
required
integer
>= 250 <= 2000
expires_in
required
integer
>= 1 <= 600
resume_user_id

Present for passkey signup only. The Login UI sends this continuation value back with the provisioning token so a retried request reuses the same account candidate.

string
key
additional properties
Example
{
"status": "provisioning",
"status_endpoint": "/api/v1/auth/account-provisioning/status"
}