Auth
POST /v1/auth/siwe/nonce
Issue a SIWE nonce. Single-use, 5-minute TTL.
Issue a SIWE nonce. Single-use, 5-minute TTL.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/auth/siwe/nonce"{ "nonce": "string", "expires_at": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "issues": [ null ], "trace_id": "string"}POST /v1/auth/magic/start POST
Send a magic-link email. Rate-limited per caller + per email: a 429 carries `retry_after_seconds` and the `Retry-After` header. When the Turnstile check is enforced, a missing / refused / unverifiable `turnstile_token` is a 400 `bad_request` with `reason` `turnstile_missing` / `turnstile_failed` / `turnstile_unavailable`.
POST /v1/auth/siwe/verify POST
Verify a SIWE message + signature. Issues a session cookie on success.