---
title: "Ask for the confirmation mail, unauthenticated"
method: POST
path: "/v1/newsletter/subscribe"
tags: ["newsletter"]
---

# Ask for the confirmation mail, unauthenticated

`POST /v1/newsletter/subscribe`

## Request

- Base URL: `https://api.sixminute.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.sixminute.ai/v1/newsletter/subscribe`
- Auth: none declared

Records the intent to subscribe and mails a confirmation link. The answer is the same whether the address is new, already waiting or already confirmed, so it cannot be used to discover who is on the list. Called by the website with the shared header; rate limited per address and per caller.

## Request body

- object
  - `email` string, email, required
  - `source` string, required
  - `consent_text` string, required

## Response `200`

The confirmation mail is on its way, if one was owed.

- object
  - `sent` true, required

## Other responses

- `400`: The body, query or path did not validate; `errors` lists the fields.
- `401`: No bearer token, or one that does not verify or has expired.
- `429`: Too many requests; `Retry-After` says how long to wait.
- `502`: An upstream this service depends on failed or answered nonsense.
- `503`: A capability this service was not configured with, or a practice system that could not be reached; the `type` says which.

---

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