Request Magic Link
const url = 'https://example.com/api/auth/magic-link/request';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"email":"example","redirect_url":"example","signup":false,"display_name":"example","invite_code":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/auth/magic-link/request \ --header 'Content-Type: application/json' \ --data '{ "email": "example", "redirect_url": "example", "signup": false, "display_name": "example", "invite_code": "example" }'Request a magic link email.
Rate-limited to 3 requests per email per 15-minute window. Returns 202 on success (link queued/sent), 503 if the email transport is down. Response does not reveal whether the email address is registered.
When signup=True (sign-up flow), the link is only sent if a pending invite (deal or org) exists for this email. This enforces invite-only registration without revealing invite existence to the caller (always returns 202).
Body: email: Target email address redirect_url: Optional URL to redirect after successful login signup: If True, gate on pending invite existence display_name: Optional display name for new account creation
Returns: {“message”: ”…”}
Request Body required
Section titled “Request Body required ”Responses
Section titled “ Responses ”Successful Response
Generic {"message": str} response — used by magic-link request,
email confirmation request, and other intentionally-vague endpoints that
want to avoid leaking whether an email is registered.
object
Example generated
{ "message": "example"}Validation Error
object
object
object
Example generated
{ "detail": [ { "loc": [ "example" ], "msg": "example", "type": "example", "input": "example", "ctx": {} } ]}