Skip to content
Available today

Ghost

Publish blog posts to your Ghost site.

What it does in ContentPulse: Publish blog posts to your Ghost-powered site (Ghost(Pro) or self-hosted). ContentPulse uses the Admin API to create draft or published posts. Status: Available Tier: Available on all paid plans.

Before you start (prerequisites)

  • Account requirement: A Ghost site you can admin. This works with both Ghost(Pro) (managed at https://ghost.org/pricing/, plans currently start around USD 9/month) and self-hosted Ghost running anywhere.
  • Admin access: You need permission to create custom integrations in Ghost Admin (typically Owner or Administrator role).
  • Cost: Same as your existing Ghost subscription — no extra cost for API access. Ghost's API is included on every plan.

Step-by-step setup

1. On the Ghost side — create a custom integration

  1. Sign in to Ghost Admin (usually https://yoursite.ghost.io/ghost or https://yoursite.com/ghost).
  2. Click the gear icon (bottom left) → Settings → Advanced → Integrations, or go to Settings → Integrations depending on your Ghost version. [Screenshot to be added](screenshot:Ghost Admin sidebar with Integrations highlighted)
  3. Click Add custom integration.
  4. Give it a name like ContentPulse and click Create. [Screenshot to be added](screenshot:New custom integration modal)
  5. Ghost generates two keys: a Content API Key and an Admin API Key. You need the Admin API Key. It looks like 64bba0a06250bd7e4be4f9aa:abc123def456... (a 24-character ID, a colon, then a 64-character hex secret). [Screenshot to be added](screenshot:Integration page with Admin API Key highlighted)
  6. Copy the Admin API Key. Keep this tab open.

2. In ContentPulse — paste the credentials

  1. Go to https://contentpulse.helloaurora.ai/settings/connections.
  2. Find Ghost in the "Direct Publishing — Live" list and click Connect.
  3. A modal opens with two fields:
    • Blog URL — your Ghost site URL, e.g. https://yoursite.ghost.io or https://blog.yourcompany.com (no trailing slash)
    • Admin API Key — the id:hex_secret string you just copied [Screenshot to be added](screenshot:ContentPulse Ghost connect modal)
  4. Click Connect. ContentPulse builds a JWT from your key and hits Ghost's /ghost/api/admin/site/ endpoint to verify. If it works, you'll see "Ghost connected successfully!".

3. Verify it's working

  • On the Connections page, the Ghost row shows a green checkmark and your site title.
  • Optional: open the Publish UI, write a short test post, click Publish to Ghost, and confirm it appears in Ghost Admin under Posts (it will be a draft by default).

What you can do with it once connected

  • Publish posts as drafts (default) or directly to public.
  • Set post title, body (HTML or Markdown — ContentPulse converts to Ghost's Lexical format), and tags from the Publish UI.
  • Schedule posts via the Queue.

Common pitfalls

  • Pitfall: "Invalid Ghost API key format." Fix: The Admin API Key must contain a colon (:) separating the ID from the hex secret. If you only see the Content API Key (no colon, just hex characters), you grabbed the wrong key. Go back to Ghost Admin → Integrations → your integration and copy the Admin API Key specifically.

  • Pitfall: "Could not connect to Ghost" with a valid-looking key. Fix: Most likely causes — (1) the blog URL has a typo or wrong protocol (http:// instead of https://), (2) your Ghost site requires a non-default Admin API path (rare; self-hosted Ghost behind a reverse proxy), or (3) Cloudflare or another CDN is challenging the JWT. If you're behind Cloudflare with Bot Fight Mode enabled, whitelist the ContentPulse origin IPs — email [support@helloaurora.ai](mailto:support@helloaurora.ai) for the current list.

  • Pitfall: Posts publish but formatting is mangled (no headings, lists collapse). Fix: Ghost moved to a Lexical-based editor in v5+. ContentPulse converts Markdown to Ghost's MobileDoc/Lexical format, but complex tables or embeds may not survive. For richest formatting, paste finalized HTML directly in the Publish UI.

  • Pitfall: Custom domain Ghost site fails to connect. Fix: Use the actual reachable URL, not the xxxx.ghost.io URL behind your custom domain. If https://blog.yourcompany.com/ghost/api/admin/site/ returns 200 in your browser, that's the URL ContentPulse needs.

Restrictions

  • ContentPulse only publishes posts. We don't read existing posts, members, or analytics from Ghost.
  • We don't upload featured images yet — that's on the roadmap. Set a featured image manually in Ghost after publishing.
  • Member-only / paid-tier posts are supported (toggle in the Publish UI), but ContentPulse doesn't manage your Ghost member tiers.

Need help?

Email [support@helloaurora.ai](mailto:support@helloaurora.ai) — we'll walk you through it.

Ready to connect Ghost?

Sign up for ContentPulse and you'll find this integration in Settings → Connections.