---
title: "Unsubscribe Get"
method: GET
path: "/api/public/unsubscribe"
tags: ["public", "public"]
---

# Unsubscribe Get

`GET /api/public/unsubscribe`

## Request

- Base URL: `http://localhost:8000`
- URL: `http://localhost:8000/api/public/unsubscribe`
- Auth: none declared

Email preferences page with subscribe/unsubscribe toggle.

Users clicking the unsubscribe link in email body land here.
Shows current subscription status and allows toggling on/off.
This prevents accidental unsubscribes and allows re-subscribing.

GET is intentionally side-effect-free. Email scanners (Outlook SafeLink,
corporate link-preview bots) pre-fetch URLs from emails and would
silently unsubscribe users if this endpoint had side effects.
State-changing operations go through POST /unsubscribe per RFC 8058.

Security: HMAC token prevents malicious access.

## Query parameters

- `email` string, email, required: Email to manage preferences for
- `token` string, required: HMAC signature for security

## Response `200`

Successful Response

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/anomalyarmor/apis/anomalyarmor-api.md) · [All operations](https://skmtc.dev/anomalyarmor/apis/anomalyarmor-api/llms.txt) · [OpenAPI document](https://skmtc.dev/anomalyarmor/apis/anomalyarmor-api/revisions/51c755fb5d0b?raw)
