Skip to content
Seismic Orchestration

POST /auth/login

Exchange credentials for an MFA challenge id. If MFA is disabled for the account, returns a token pair directly.

Request

{
  "email": "alice@example.com",
  "password": "hunter22!hunter22"
}

Response 200 is a discriminated union on status:

{
  "status": "mfa_required",
  "challenge_id": "mfa_b4bd0c1d8e2f4a6b9d3c"
}

The challenge_id is opaque, single-use, and expires ~5 minutes after issue. Redeem it at POST /auth/mfa/verify with the user's TOTP code.

Errors: 401 (bad creds).

Example

curl -X POST "$SEISMIC_ORCHESTRATION_URL/v0/auth/login" \
  -H "content-type: application/json" \
  -d '{
    "email": "alice@example.com",
    "password": "hunter22!hunter22"
  }'

See LoginResponse for the full shape.