Connect Ghost to Fondoo

Live4 min readUpdated

Ghost is a publishing platform for blogs, newsletters and paid memberships. Connecting it lets your AI agent draft, schedule and publish posts and pages, manage tags, and work with members and newsletters on your existing Ghost site, using Ghost's Admin API.

What Fondoo can do with it

Fondoo uses a Ghost custom integration and its Admin API key. The connector can:

  • Posts, pages and tags: list, read, create and update. Fondoo can send HTML; Ghost converts it to its own format.
  • Members: list, read, create and update. Members are real people. Only add someone who has agreed to hear from you.
  • Newsletters: list, read, create and update.
  • Delete posts, pages, tags or members. This is destructive and always needs your approval.

When updating, Fondoo first reads the item's latest updated_at timestamp. Ghost requires this, and it stops Fondoo from silently overwriting a newer edit.

After you bind the connection with connect_cms, Fondoo's shared page tools work with Ghost:

  • update_page saves a draft.
  • publish_connected_page publishes now or schedules a future post.
  • map_cms_page links an existing post.
  • apply_seo_fixes can fix meta title, meta description and canonical URL.

Approval rules:

  • Publishing needs your approval unless you have turned on auto-publish.
  • Deletes need your approval.
  • Switching a bound site to another CMS connection needs your approval.

Before you start

  • A Ghost plan or install with the Admin API. On Ghost(Pro), the Starter plan has no custom integrations and no Admin API. You need Publisher, Business or a custom plan (Ghost pricing). Self-hosted Ghost includes the Admin API.
  • Owner or Administrator access in Ghost Admin to create an integration.
  • Your Ghost Admin address. Ghost's Admin API lives on your admin domain, which "can be different to your main domain". Ghost(Pro) sites often use a *.ghost.io admin domain (Admin API).
  • There is no extra Ghost cost for using the API beyond your plan.

Step by step: get your credentials

  1. Sign in to Ghost Admin (usually https://your-site/ghost/).
  2. Open Settings and find Integrations. Ghost's help center files it under advanced settings; the exact path may differ by version.
  3. Select Add custom integration, name it Fondoo, and create it (custom integrations).
  4. The integration page shows a Content API key and an Admin API key. Copy the Admin API key. It looks like <id>:<secret>: a hex ID, a colon, then a 64-character hex secret. Fondoo rejects any other format, including the Content API key.
  5. Copy your API URL or admin address, for example https://your-site.ghost.io. Fondoo adds /ghost/api/admin itself, so enter only the base address.

Custom integrations have no scope settings. The Admin API key can do anything an integration can in Ghost, so keep it private.

Connect it in Fondoo

In the dashboard:

  1. Open Connections, find Ghost under Available → Content, and click Use a key → Open secure key entry.
  2. Fill in siteUrl (your Ghost admin address, HTTPS) and adminKey.
  3. Click Save connection securely. The page lasts 15 minutes and works once.
  4. Click Check connection on the Ghost card.

By asking your agent. For example:

"Connect my Ghost blog and use it for my Fondoo site's posts."

The agent calls add_connection_key({provider:"ghost", siteId}) with no fields and sends you the secure link. Do not paste the key into chat: keys sent in fields trigger a chat-log warning. connect_service({provider:"ghost", siteId}) returns a signed 15-minute instruction link. After you save the key, the agent runs:

test_connection({connectionId})
connect_cms({siteId, connectionId})

REST: POST https://api.getfondoo.com/v1/ops/add_connection_key with Authorization: Bearer <your Fondoo key> and {"provider":"ghost","siteId":"<site UUID>"}.

Fondoo treats siteUrl as the site's address when binding with connect_cms. If your admin domain differs from your public domain, SEO fixes that match audited URLs to posts may not find them. This may differ for your account. Linking posts with map_cms_page avoids the problem.

Test that it works

  1. test_connection signs a short-lived token (five minutes, as Ghost requires) and reads /ghost/api/admin/site/. Status connected means the key and address are right.
  2. Posts, members and newsletter permissions remain "unknown" until first used.
  3. Ask your agent to list your latest posts, then create a test draft. Check Posts → Drafts in Ghost Admin.

Troubleshooting

  • Validation error when saving. The key is not in id:secret form. You may have copied the Content API key. Copy the Admin API key.
  • Status invalid or "Provider request failed (401)/(403)". The key was regenerated or the integration deleted, or your plan has no Admin API (Starter).
  • "Use a public HTTPS site URL" or a failed request. siteUrl must be HTTPS with no port or path, and must not redirect. Fondoo does not follow redirects. Use the admin domain that Ghost shows.
  • Update fails with a conflict. Someone edited the post in Ghost at the same time. Ask the agent to read it again and retry.
  • Only 100 items come back. Ghost 6 caps limit=all at 100. Ask for the next page.
  • "Connector rate budget exhausted". Fondoo allows about 60 actions per minute per connection. Ghost does not publish Admin API rate limits.

Limits, data and security

  • What Fondoo stores: the encrypted site URL and Admin API key, status, last test, last use, and snapshots of pages it publishes (for undo). list_connections shows [redacted]. Member data read from Ghost is returned to the caller and is not copied into Fondoo's contact list.
  • Fondoo sends Accept-Version: v5.0, which tells Ghost the oldest API version Fondoo supports.
  • Rotate: regenerate the Admin API key on the integration page, then call rotate_connection_key({connectionId}) without fields and paste the new key.
  • Disconnect: delete_connection({connectionId}) removes the key from Fondoo. Agents need your approval. Then delete the "Fondoo" custom integration in Ghost to revoke the key.