Skip to content

Start a step-up assertion challenge

POST
/v1/mfa/stepup/challenge
curl --request POST \
--url https://api.aetherpush.com/v1/mfa/stepup/challenge \
--header 'Authorization: Bearer <token>'

Dashboard sessions only. Returns WebAuthn authentication options for the account’s own passkeys, to prove possession of an existing factor before changing the factor set. Opening a challenge voids the account’s in-flight one. API keys and named access keys are rejected by the login session guard with a plain 403. A valid CLI session or a session that predates credential attribution is refused with 403 and code dashboard_session_required; a TOTP proof needs no challenge and stays available to any login session. Accounts with only an authenticator app receive 409 and step up with a TOTP code instead.

WebAuthn authentication options for the step-up assertion.

Media typeapplication/json
object
options
required

WebAuthn PublicKeyCredentialRequestOptionsJSON for the step-up assertion.

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

Authentication required.

Media typeapplication/json
object
error
required

Human-readable error message.

string
requestId

Unique identifier for the request, also exposed as the X-Request-Id response header.

string
Example
{
"error": "The requested resource was not found.",
"requestId": "req_abc123"
}

API keys and named access keys receive a plain 403. A login session that is not a dashboard login session receives code dashboard_session_required.

Media typeapplication/json
One of:
object
error
required

Human-readable error message.

string
requestId

Unique identifier for the request, also exposed as the X-Request-Id response header.

string
Example
{
"error": "The requested resource was not found.",
"requestId": "req_abc123"
}

No passkey is available to challenge (code: step_up_unavailable); use a TOTP code.

Media typeapplication/json
One of:
object
error
required

Human-readable error message.

string
requestId

Unique identifier for the request, also exposed as the X-Request-Id response header.

string
Example
{
"error": "The requested resource was not found.",
"requestId": "req_abc123"
}