Begin authenticator app enrollment
/v1/auth/mfa/totp/enroll/startBegins authenticator-app enrollment for the authenticated administrator by generating a secret and returning the provisioning otpauth:// URI, the manual-entry key, and a sealed five-minute enrollment_token the verify step echoes back. Nothing is stored until a code confirms the secret. 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 *MfaTotpEnrollStartResponseDto
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/totp/enroll/start" \ -H "x-mfa-step-up-token: value" \ -H "Authorization: Bearer $CANOPY_TOKEN"
{ "data": { "enrollment_token": "string", "otpauth_uri": "otpauth://totp/MFA:alice%40acme.com?secret=JBSWY3DPEHPK3PXP&issuer=MFA", "manual_entry_key": "JBSWY3DPEHPK3PXP" } }
Tell us how we can improve this guide.