---
title: "Unsubscribe from an optional-email family (the link in the footer)"
method: GET
path: "/public/email-preferences/unsubscribe"
tags: ["Public"]
---

# Unsubscribe from an optional-email family (the link in the footer)

`GET /public/email-preferences/unsubscribe`

## Request

- Base URL: `https://api.atako.ai`
- URL: `https://api.atako.ai/public/email-preferences/unsubscribe`
- Auth: none required

Opened by a person, from their inbox, so it answers with an HTML page rather than JSON — rendered in the recipient's own locale. The token is an HMAC over `userId:family` minted into the email itself — no session, nothing to enumerate, and no expiry, because an unsubscribe link in a two-year-old email must still work. Applies to the three OPTIONAL families only; essential email (sign-in codes, receipts, security alerts, terms updates) has no opt-out. Every write merges, so unsubscribing from one family never resubscribes another.

## Query parameters

- `token` string, required

## Response `200`

HTML confirmation page.

## Other responses

- `400`: Invalid or tampered token — HTML page saying so.
- `429`: too_many_requests

---

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