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
- Sign in to Ghost Admin (usually
https://yoursite.ghost.io/ghostorhttps://yoursite.com/ghost). - 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)
- Click Add custom integration.
- Give it a name like
ContentPulseand click Create. [Screenshot to be added](screenshot:New custom integration modal) - 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) - Copy the Admin API Key. Keep this tab open.
2. In ContentPulse — paste the credentials
- Go to https://contentpulse.helloaurora.ai/settings/connections.
- Find Ghost in the "Direct Publishing — Live" list and click Connect.
- A modal opens with two fields:
- Blog URL — your Ghost site URL, e.g.
https://yoursite.ghost.ioorhttps://blog.yourcompany.com(no trailing slash) - Admin API Key — the
id:hex_secretstring you just copied [Screenshot to be added](screenshot:ContentPulse Ghost connect modal)
- Blog URL — your Ghost site URL, e.g.
- 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 ofhttps://), (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.ioURL behind your custom domain. Ifhttps://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.