Begin passkey enrollment
/v1/auth/mfa/webauthn/enroll/optionsBegins passkey enrollment for the authenticated administrator by returning navigator.credentials.create() options under Canopy's relying party, excluding passkeys already enrolled, with a sealed five-minute enrollment_token carrying the nonce. Rate-limited to 5 requests per minute.
Authentication
Bearer Token
AuthorizationJWT access token. Never send alongside X-API-Key: a request carrying both is refused.
Headers
x-mfa-step-up-tokenRequired once a factor is already enrolled: a fresh `step_up_token` from `POST /v1/auth/mfa/step-up` or the passkey step-up pair. The first factor needs none.
Responses
application/json
data *MfaWebAuthnEnrollOptionsResponseDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
Rate limit
5 requests per 1mPer caller: the signed-in user for a bearer token; for an API key, the key and the end user's address when a backend forwards it, otherwise the client address
Returned object
curl -X POST "https://auth.canopy-io.com/v1/auth/mfa/webauthn/enroll/options" \ -H "x-mfa-step-up-token: value" \ -H "Authorization: Bearer $CANOPY_TOKEN"
{ "data": { "enrollment_token": "string", "options": {} } }
Tell us how we can improve this guide.