---
title: "Sign in with an email link."
method: POST
path: "/auth/magic-link/consume"
tags: ["Account"]
---

# Sign in with an email link.

`POST /auth/magic-link/consume`

## Request

- Base URL: `https://animalchecklist.com/api/v1`
- URL: `https://animalchecklist.com/api/v1/auth/magic-link/consume`
- Auth: none required

Requires the recipient email and an explicit browser POST. The email must match the link before the token is consumed. A link scanner's GET does not sign in or create an account. Sets an HttpOnly session cookie.

## Request body

- object
  - `token` string, required
  - `email` string, email, required

## Response `200`

Signed-in account.

- object
  - `data` object, required
    - `account` Account, required
      - `id` string, uuid, required
      - `email` string, email, required

## Other responses

- `400`: Invalid input.
- `401`: Sign-in required.
- `403`: A same-origin request is required.
- `404`: Not found.
- `409`: Account changed in another tab.
- `429`: Rate limited.
- `500`: Unexpected error.

---

[API](https://skmtc.dev/animalchecklist/apis/animal-checklist-api.md) · [All operations](https://skmtc.dev/animalchecklist/apis/animal-checklist-api/llms.txt) · [OpenAPI document](https://skmtc.dev/animalchecklist/apis/animal-checklist-api/revisions/0910760ad25b?raw)
