---
title: "Probe a magic link without consuming it"
method: HEAD
path: "/api/v1/auth/verify"
---

# Probe a magic link without consuming it

`HEAD /api/v1/auth/verify`

## Request

- Base URL: `https://applytovolunteer.com`
- URL: `https://applytovolunteer.com/api/v1/auth/verify`
- Auth: none required

HEAD does not consume a token and does not set a session cookie. A usable template link returns 200 text/html with an empty body and Cache-Control no-store. A usable plain link returns 200 with an empty body, no content type, and Cache-Control no-store. A missing token returns 400 { error: "token required" }. An unknown, used, expired, or wrong-purpose token returns 400 { error: "invalid or expired" }. No API key.

## Query parameters

- `token` string, required: Magic-link token from the email.

## Response `200`

Usable token. Empty body. Cache-Control is no-store. A template link also sends text/html. A plain link sends no content type. The token is not consumed and no session cookie is set.

## Other responses

- `400`: { error: "token required" } when the token query is missing. { error: "invalid or expired" } when the token is unknown, used, expired, or the wrong purpose. { error: "missing_client_ip" } when the link was consumed and the client IP cannot be resolved.

---

[API](https://skmtc.dev/applytovolunteer/apis/apply2volunteer-api.md) · [All operations](https://skmtc.dev/applytovolunteer/apis/apply2volunteer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/applytovolunteer/apis/apply2volunteer-api/revisions/23df1ec8c88d?raw)
