# Ghost

> Push Mentionwell articles into a Ghost CMS site via the Admin API. Articles appear natively in Ghost admin and on your published Ghost site.

Ghost is the cleanest CMS to integrate with. Their Admin API was built for exactly this case.

## What you need

- A Ghost site (Ghost(Pro) or self-hosted, version 4 or newer).
- Admin access.

## Setup (2 minutes)

1. Ghost Admin → **Settings → Integrations → Add custom integration**.
2. Name it "Mentionwell".
3. Copy three values from the integration page:
   - **Admin API Key** (write access — keep secret)
   - **Content API Key** (read-only — used for previews)
   - **API URL** — e.g. `https://yoursite.ghost.io`
4. Paste them into Mentionwell's Ghost integration card.
5. Click **Test connection** — Mentionwell will create and immediately delete a draft post to verify the credentials work.

> Content API = read content. Admin API = create and update. Mentionwell needs the **Admin** key to publish.

## What gets pushed

| Mentionwell field | Ghost field |
|---|---|
| Title, slug | `title`, `slug` |
| HTML body | `html` (with `source: 'html'`, so Ghost converts to its Lexical format) |
| Excerpt | `custom_excerpt` (truncated to 300 chars) |
| Featured image | `feature_image` |
| Tags + category | `tags: [{ name }]` (auto-created if missing; matched case-insensitively if not) |
| Author | `authors: [{ email }]` (must be an existing Ghost user) |
| JSON-LD | `codeinjection_head` |
| Published date | `published_at` + `status: 'published'` |

## Caveats

- **Lexical vs HTML:** Ghost 5+ stores posts in Lexical internally. Mentionwell always sends `source: 'html'` so Ghost converts your HTML on insert. Without that flag, post bodies show up empty in the editor.
- **Newsletters:** Ghost can email a post to your subscribers when you publish. By default Mentionwell sets `email_only: false` and doesn't trigger a send. If you want sends, configure that in Ghost's Newsletter settings — Mentionwell won't override.
- **Authors:** Ghost requires the author to be an existing staff user with that email. If the email doesn't match, the post is attributed to the integration owner.
- **Image upload:** Ghost will fetch remote feature image URLs. For reliability we upload first via `/images/upload` and use the returned URL.

## Common failures

- **401** — JWT signed with the wrong secret, or the key was rotated. Generate a new integration key in Ghost.
- **422** — slug already exists, or a required field is missing. Mentionwell auto-suffixes the slug on retry.
- **413** — feature image >5MB. Self-hosted Ghost can raise the limit; Ghost(Pro) cannot.
- **404** — wrong API URL. Don't double-append `/ghost/api/admin/` — paste only the site origin.


---

Canonical URL: https://mentionwell.com/docs/publish/ghost
Live HTML version: https://mentionwell.com/docs/publish/ghost
Section: Publish to your CMS
Site index for AI ingestion: https://mentionwell.com/llms.txt
Full reference: https://mentionwell.com/llms-full.txt
