---
title: "Get Campaign Email Preview"
method: GET
path: "/api/v1/campaigns/{campaign_id}/email-preview"
tags: ["campaigns"]
---

# Get Campaign Email Preview

`GET /api/v1/campaigns/{campaign_id}/email-preview`

Render the campaign email exactly as the send path would (branded shell +
booking CTA), from a representative draft — or a placeholder before any drafts
exist. Read-only: mints no tracked link and changes no state.

## Path parameters

- `campaign_id` string, uuid, required

## Response `200`

Successful Response

- CampaignEmailPreviewRead — A rendered preview of the campaign's email (same HTML the send produces).
  - `subject` string, required
  - `html` string, required
  - `from_draft` boolean, required

## Other responses

- `404` — Campaign not found
- `422` — Validation Error

## Changes

> 21 revisions in range; 1 not diffed.

- **2026-09-03** `d65b8fefae34` — 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status

[Change history](https://skmtc.dev/getanana/apis/cleon-api/changes/api/v1/campaigns/:campaign_id/email-preview/get.md)

---

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