---
title: "Unsubscribe an email address from the newsletter"
method: POST
path: "/api/newsletter/unsubscribe"
tags: ["account"]
---

# Unsubscribe an email address from the newsletter

`POST /api/newsletter/unsubscribe`

## Request

- Base URL: `https://voltplan.app`
- URL: `https://voltplan.app/api/newsletter/unsubscribe`
- Auth: none required

No authentication. Creates a `users_unsubscribed` record `{ email, unsubscribed_at }` with an unauthenticated PocketBase client (`POCKETBASE_URL`); no superuser client is involved. `email` is only checked for presence and stored verbatim. Every PocketBase failure (duplicate, unknown address, outage) is swallowed and answers the same 200, so the response never reveals whether the address was known. A non-JSON or `null` body answers 500.

## Request body

- NewsletterUnsubscribeRequest
  - `email` string, required: Only checked for presence; stored verbatim.

## Response `200`

Unsubscribe accepted.

- NewsletterUnsubscribeResponse: Returned for every readable request with an email, whatever PocketBase answered.
  - `success` unknown, required
  - `message` 'Successfully unsubscribed from newsletter', required
  - `email` string, required: Echo of the request email.

## Other responses

- `400`: `email` missing or empty.
- `500`: The body could not be read (non-JSON or `null`).

---

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