---
title: "Request a magic sign-in link"
method: POST
path: "/v1/auth/magic-link"
tags: ["account"]
---

# Request a magic sign-in link

`POST /v1/auth/magic-link`

## Request

- Base URL: `https://modelglass-api.vercel.app`
- URL: `https://modelglass-api.vercel.app/v1/auth/magic-link`
- Auth: none required

Public. Looks up the Stripe customer by email and emails a 15-minute magic link to `/account`. Always returns `ok:true` regardless of whether the email has an account, to prevent email enumeration. Rate-limited per IP.

## Request body

- object
  - `email` string, email, required

## Response `200`

Request accepted, regardless of whether the email is known.

- object
  - `ok` true, required
  - `data` object, required
    - `sent` true
  - `meta` ResponseMeta, required
    - `artifact_version` integer, required
    - `built_at` string, date-time, required
    - `count` integer: Item count when `data` is a collection.

## Other responses

- `400`: Missing or invalid `email` (BAD_REQUEST).
- `429`: Too many magic-link requests from this IP this hour (RATE_LIMITED).

---

[API](https://skmtc.dev/modelglass/apis/modelglass-read-api.md) · [All operations](https://skmtc.dev/modelglass/apis/modelglass-read-api/llms.txt) · [OpenAPI document](https://skmtc.dev/modelglass/apis/modelglass-read-api/revisions/5948ffa60462?raw)
