DocsPublishingGhost

CiteFlow publishes to Ghost through the Admin API using a content key, drafts, scheduled posts and metadata stay in sync.

Ghost publishing

The Ghost adapter creates draft posts in your Ghost site through the Admin API. It works with Ghost 5.x (self-hosted and Ghost Pro).

How does Ghost publishing work?

CiteFlow builds a short-lived HS256 JWT from your Admin API key on each request and calls POST /ghost/api/admin/posts/?source=html. Posts are created with status: "draft" and land in your Posts list for review.

What do you need before setting it up?

  • Ghost 5.0 or newer.
  • Owner or Administrator access to your Ghost admin.
  • The Ghost Admin API reachable from the public internet (usually https://your-site.com/ghost/api/admin/).

How do you set up Ghost publishing?

1. Create a custom integration

  1. In Ghost admin go to Settings → Integrations.
  2. Click Add custom integration.
  3. Name it (for example CiteFlow) and click Create.
  4. On the integration's page you will see Admin API Key. It looks like 64hexchars:128hexchars separated by a colon.
  5. Copy the entire string. CiteFlow needs both halves.

The Admin API key has two parts: an ID (before the colon) and a secret (after). CiteFlow uses both to sign each request's JWT. Keep the full string secret; treat it like a password.

2. Add the endpoint in CiteFlow

  1. Dashboard → Settings → Publishing destinations → Add endpoint.
  2. Pick Ghost.
  3. Fill in:
    • Admin URL: the root of your site, for example https://example.com (no trailing slash, no /ghost).
    • Admin API key: the full id:secret value from step 1.
  4. Save.

3. Test the connection

Click Test connection. CiteFlow signs a JWT, calls GET /ghost/api/admin/site/, and reports success on a 2xx response. Failure surfaces the Ghost error message verbatim.

How do fields map to Ghost?

CiteFlow fieldGhost field
titleposts[0].title
body_htmlsent via ?source=html
excerptcustom_excerpt
meta_descriptionmeta_description
slugslug
hero_image_urlfeature_image
hero_image_altfeature_image_alt
Alwaysstatus: "draft"

CiteFlow does not set tags, authors, or feature image caption. Apply those in the Ghost editor before publishing.

What are the tier limitations?

Endpoints (any mix of webhook and platform adapters) count against the overall publishing endpoint cap:

TierPublishing endpoints
Trial1 endpoint
Standard3 endpoints
Enhanced10 endpoints
MarketplaceUnlimited (soft cap 50)

How do you troubleshoot Ghost publishing?

401 Unauthorized on connection test. The Admin API key is wrong or malformed. Check:

  • You copied the full id:secret string with the colon.
  • You did not accidentally paste the Content API Key (which is shown on the same integration page but cannot create posts).
  • The Admin URL has no path suffix; CiteFlow appends /ghost/api/admin/ itself.

403 Forbidden when publishing. The integration was created with insufficient permissions, or the site is in maintenance mode. Recreate the integration from Settings → Integrations → Add custom integration.

422 Validation error. Ghost is rejecting a field. The most common cause is a slug that collides with an existing post; CiteFlow auto- appends a suffix on retry, but if this persists, free the slug or change the article title.

Self-hosted Ghost behind a proxy. Make sure X-Forwarded-Proto is set correctly so Ghost generates the right Admin URL in its JWT validation. Ghost rejects tokens whose audience does not match.

Need help?

Copy the Ghost error shown in your CiteFlow dashboard and contact support if the test passes but real publishes fail.

References

Related

  • OverviewPick the adapter that matches your stack. All adapters create drafts so your team reviews before publishing.