---
title: "Generate an on-brand landing page from a brief (AI copy + hero visual)"
method: POST
path: "/api/public/content/pages/generate"
---

# Generate an on-brand landing page from a brief (AI copy + hero visual)

`POST /api/public/content/pages/generate`

## Request

- Base URL: `https://enso.bot`
- URL: `https://enso.bot/api/public/content/pages/generate`
- Auth: API key in header `x-api-key`

Send a brief instead of blocks. enso writes the copy against the block registry and the brand rules, renders a hero visual with GPT image 2 anchored on the current brand style, runs the same quality gate as POST /pages (retrying once with the failures fed back to the writer), and saves the page as a draft unless publish=true.

## Request body

- object
  - `slug` string, required
  - `topic` string, required: What the page is about
  - `icp` string, required: Who the page is for, max 12 words
  - `goal` string
  - `offer` string
  - `proof` string[]: The only facts the writer may state. No proof means no stats or quote blocks.
  - `cta_label` string
  - `cta_href` string
  - `tone` string
  - `sections` string[]
  - `generate_image` boolean
  - `publish` boolean: Draft by default so copy and visual can be reviewed.

## Response `201`

Page authored

## Other responses

- `401`: Unauthorized
- `422`: Invalid brief, or the generated page failed the quality gate twice
- `502`: Authoring model failed

---

[API](https://skmtc.dev/enso-bot/apis/enso-bot-public-api.md) - [All operations](https://skmtc.dev/enso-bot/apis/enso-bot-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/enso-bot/apis/enso-bot-public-api/revisions/ff8a7e514aee?raw)
