Skip to content
sign in

Request a magic sign-in link by email

POST /auth/magic

Always 200 (no account enumeration). The link expires in 15 minutes and is single-use. Rate limited per IP and 3/15min per email.

Request

Body (application/json)

  • email (string, required)
  • display_name (string)
  • turnstile_token (string): Only when answering a Turnstile challenge (see the hourly cap).

Responses

200

Accepted (sent if the address is deliverable)

  • ok (boolean, required)

default

Error as { error: { code, message } }

  • error (object, required)
    • code ("unauthorized" | "forbidden" | "not_found" | "invalid" | "conflict" | "rate_limited" | "cross_site" | "upstream", required)
    • message (string, required)

Example

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"email":"string"}' \
  https://cupof.ai/auth/magic