getting started

Connect Ghost

One Admin API key from a custom integration. Works with Ghost(Pro) and self-hosted Ghost 5.

Quibo connects to Ghost through the official Admin API. You create a custom integration in the Ghost admin, paste its Admin API key into Quibo, and we publish articles straight into your site: body, cover image, SEO fields and structured data, all in one call.

What you'll need

  • A Ghost site on version 5 (Ghost(Pro) or self-hosted).
  • Access to the Ghost admin as an Administrator or Owner. Custom integrations are only visible to those roles.
  • The public URL of the site (for example https://blog.example.com).

Create the custom integration

  1. Open your Ghost admin (https://your-site.com/ghost/).
  2. Go to Settings, then Advanced, then Integrations.
  3. Scroll to the bottom and click Add custom integration.
  4. Name it Quibo and confirm.
  5. Copy the Admin API key. It is a long value made of two parts separated by a colon (id:secret: a 24-character hex id, a colon, a 64-character hex secret). Copy the whole thing.

Do not use the Content API key shown above it: that key is read-only and Quibo rejects it in the form.

tip

On Ghost(Pro) custom integrations are available on every plan that includes the Admin API (Creator and above). On a self-hosted site they are always available.

Plug it into Quibo

From Sites, then Connect a site pick Ghost and fill in:

  • Site name (for example Acme Blog)
  • Site URL, the public address of your Ghost site. Used to extract your brand voice and to reach the Admin API.
  • Output language
  • Admin API key, the id:secret value you copied.
  • Admin URL (optional), see below.

Click Connect site. Quibo verifies the key against your Ghost admin before saving anything: if the check fails, nothing is stored and the error is shown in the wizard. Test connection on the site page stays available to re-check it later.

Separate admin domain

Most Ghost sites serve the admin at https://your-site.com/ghost/, and that is where Quibo looks by default. Some self-hosted setups put the admin on its own domain (admin.example.com) while the public site stays on example.com, using the admin.url setting in Ghost's configuration.

If that is your case, paste the admin domain in the Admin URL field (for example https://admin.example.com). Quibo then calls https://admin.example.com/ghost/api/admin/ and keeps https://example.com as the public URL for links and brand crawling.

Auto-discovery

When you connect, Quibo reads three things from the Admin API:

  • Site title from site/.
  • Staff users from users/ (up to 50, inactive users excluded). They populate the Default author dropdown in your brand profile, so every article is attributed to the author you pick. Pick one and click Save brand profile.
  • Tags from tags/ (up to 100), listed in the site schema for reference. Quibo does not assign tags yet.

Discovery runs again once a day. If you add a staff member and want the list refreshed right away, click Re-crawl brand on the site page.

What we publish

For each article Quibo creates one post through POST /ghost/api/admin/posts/?source=html with:

  • title and slug from the article
  • html, the article body rendered from the editor document (headings, lists, links, tables and the FAQ section). Ghost converts it to its native format on import.
  • feature_image and feature_image_alt, the cover image. It is uploaded to your site's image store first (images/upload/), so it is served from your own domain. The file carries an XMP marking that identifies it as AI-generated, as required by the EU AI Act.
  • custom_excerpt, your meta description (Ghost allows up to 300 characters, longer text is cut).
  • meta_title and meta_description, the SEO title and description.
  • og_title, og_description, twitter_title and twitter_description, the social title and description, when the article has them. Otherwise Ghost derives the link previews from the meta title and description.
  • authors, the Default author from your brand profile, when one is set and still exists in Ghost. Otherwise Ghost attributes the post to the site owner.
  • codeinjection_head, the article's JSON-LD (Article and FAQPage structured data) as a <script type="application/ld+json"> tag. Ghost places it in the page <head>, where search engines and AI crawlers expect it.
  • status: published, so the post goes live immediately.

Posts have no tags at publish time: add them in the Ghost editor if you use them for navigation.

Content refresh

When Quibo refreshes an article, it updates the same post in place (PUT posts/{id}/) instead of creating a new one. The slug and the original publish date are kept, so the URL and its rankings are preserved. The body and the other fields listed above are replaced, so edits you made to the post in Ghost in the meantime are overwritten: edit the article in Quibo instead, or re-apply your changes after the refresh.

Test the connection

In Sites, then your site click Test connection. Quibo calls site/ with a freshly minted token. Common results:

  • 401: the key was not copied in full, or the Ghost server clock is off. Tokens live five minutes, so a clock that is several minutes wrong makes every request look expired.
  • 403: the key does not have admin access. Check you copied the Admin API key, not the Content API key.
  • 404: the Admin API was not found at that URL. Check the site URL, or set the Admin URL if your admin runs on a separate domain.

See Ghost troubleshooting for the full list.

Security

  • The Admin API key is encrypted at rest.
  • Quibo never sends the key itself to Ghost. Each request carries a signed token that expires after five minutes.
  • The key is never returned to the browser, never logged, never sent to a third party.
  • Revoke it any time: in the Ghost admin open Settings, Advanced, Integrations, pick the Quibo integration and delete it. Quibo stops publishing immediately. To connect with a new key, open the site page in Quibo, use Update credentials in the Credentials card, and the new values are verified against your CMS before they replace the old ones.