---
title: "Create a newsletter signup"
method: POST
path: "/api/newsletter"
tags: ["Newsletter"]
---

# Create a newsletter signup

`POST /api/newsletter`

Accepts an email and optional name, then creates a free Ghost member for the Photon newsletter.

## Request body

- NewsletterSignupRequest
  - `email` string, email, required
  - `name` string — Optional member name to store in Ghost.

## Response `200`

The email already existed as a Ghost member and can be treated as signed up.

- NewsletterSignupEnvelope
  - `data` object, required
    - `status` 'created' | 'already_exists', required
    - `member` NewsletterMember, required
      - `id` string, nullable
      - `uuid` string, nullable
      - `email` string, email, required
      - `name` string, nullable
      - `subscribed` boolean, required
      - `newsletters` object[], required
        - `id` string, nullable, required
        - `name` string, required

## Other responses

- `201` — Newsletter member created in Ghost.
- `400` — The submitted email or name is invalid.
- `502` — Request failed.
- `503` — Request failed.

---

[API](https://skmtc.dev/photon/apis/photon-website-api.md) · [All operations](https://skmtc.dev/photon/apis/photon-website-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/photon/photon-website-api/revisions/ab555c915b80/schema)
