CMS Integration

Ghost Integration

Automatically generate Open Graph images for every Ghost blog post on publish. 1FRX extracts your post metadata, generates a custom branded image, and updates your post without any manual work.

How it works

  1. Ghost publishes a post and fires a webhook to 1FRX
  2. 1FRX extracts the post title, excerpt, tags, and author metadata
  3. Generates a 1200×630 Open Graph image styled with your brand colours
  4. Uploads the image to the 1FRX CDN and gets a hosted URL
  5. Uses the Ghost Admin API to set the og_image and feature_image on that post

Prerequisites

Setup steps

1. Get your 1FRX API key

Log into your 1FRX dashboard and copy your API key from the Settings page. It will look like sk_live_....

2. Create a Ghost custom integration

In your Ghost admin panel:

  1. Go to Settings → Integrations
  2. Click Add custom integration
  3. Name it "1FRX"
  4. Click Create

3. Copy Ghost API keys

From the 1FRX integration screen in Ghost:

  1. Copy the Admin API Key (starts with eyJ...)
  2. Copy the Content API Key (if needed for future expansions)
  3. Note your API URL (e.g., https://your-ghost-site.ghost.io/ghost/api)

4. Add Ghost credentials to 1FRX dashboard

In your 1FRX dashboard:

  1. Go to Integrations → Ghost
  2. Paste the Ghost Admin API Key
  3. Paste your Ghost site URL (e.g., https://your-ghost-site.ghost.io)
  4. Click Save and Test

5. Add webhook in Ghost

Back in Ghost admin → Settings → Integrations → 1FRX integration:

  1. Scroll to Webhooks
  2. Click Add webhook
  3. Set Event to "Post published"
  4. Set Target URL to the exact URL provided in your 1FRX Ghost integration settings
  5. Click Save
Webhook URL format: The 1FRX dashboard will provide you with a unique webhook URL that includes your API key. Copy this exactly.

6. Publish a test post

Create and publish a test post in Ghost. Within 10 seconds, 1FRX should:

Ghost webhook payload example

When you publish a post, Ghost sends 1FRX a payload like this:

{
  "post": {
    "current": {
      "id": "5e0b6b0a1a6b8b0001b0b0a0",
      "uuid": "5e0b6b0a-1a6b-8b00-01b0-b0a01a6b8b00",
      "title": "Getting Started with AI",
      "excerpt": "Learn the fundamentals of artificial intelligence and machine learning.",
      "slug": "getting-started-with-ai",
      "html": "

Content here...

", "feature_image": null, "featured": false, "page": false, "status": "published", "authors": [ { "id": "1a6b8b00", "name": "Sarah Chen", "email": "sarah@example.com" } ], "tags": [ { "id": "5e0b6b0a", "name": "AI", "slug": "ai" } ], "created_at": "2026-04-16T12:00:00.000Z", "published_at": "2026-04-16T14:30:00.000Z" } } }

What 1FRX sends back to Ghost

1FRX uses the Ghost Admin API to update your post with the generated OG image:

{
  "posts": [
    {
      "id": "5e0b6b0a1a6b8b0001b0b0a0",
      "og_image": "https://cdn.1frx.com/og/ghost-abc123.png",
      "feature_image": "https://cdn.1frx.com/og/ghost-abc123.png"
    }
  ]
}

The image stays hosted on 1FRX's CDN, so it's always available and optimized for social sharing.

Customization

Image template

In the 1FRX Ghost integration settings, you can choose from several OG image templates:

Brand colours

Set your brand accent colour (e.g., #5ee3ff) so generated images match your site design.

Logo placement

Upload your site logo or brand mark. 1FRX will place it in the corner or center of each image.

Troubleshooting

My post published but no image was set

Check the webhook delivery log. In Ghost → Settings → Integrations → 1FRX, scroll to the webhooks section and click on your post published event to see delivery status.

Verify the webhook URL is correct. Make sure you pasted the exact URL from your 1FRX dashboard, including the API key parameter.

Check 1FRX dashboard logs. Go to Integrations → Ghost and look for error messages or failed requests.

Image quality is too low

1FRX generates images at 1200×630 pixels, the standard for social media. If they appear blurry, you may need to clear your browser cache or check the CDN URL directly.

My custom logo isn't showing

The logo URL must be publicly accessible (http or https). If you're using a self-hosted Ghost, make sure your logo URL doesn't require authentication.

Ghost API key expired

Ghost Admin API keys don't expire, but if you rotate your keys, you'll need to update the key in your 1FRX dashboard.

What data does 1FRX process? Only the fields you explicitly configure. 1FRX reads: post title, excerpt, tags, and author name from each webhook. The full post HTML is not processed or stored. Generated images are hosted on 1FRX's CDN but cached for performance—they do not get permanently stored after 30 days.