Platforms

Ghost: posting rules and settings

What a Ghost channel accepts in Posty: media, limits, required fields, and the fields of the settings object for the API.

Basics

Platform
Ghost
Character limit
100000 (the connected account may have a different limit)
Media
Only the feature image (main_image) goes to Ghost. Images attached to the post are not sent.
settings.__type
ghost
Required fields
title
Platform page

Post types

The same channel accepts more than one kind of post, and each kind has different requirements. The table shows what you need for each.

TypeMediaNotes
Postfeature image in main_imageThe title is required. No newsletter goes out.

Rules

  • You connect with the site URL and the Admin API key of a custom integration. You make the integration in Ghost Admin, under Settings, Integrations, Add custom integration.
  • Posty creates the post at the scheduled time. It sends no newsletter.
  • The post text goes out as HTML.

Settings fields

These fields go into the post's settings object, alongside the __type field. In the UI, you fill in the same ones in the channel's settings section.

FieldTypeRequiredWhat it does
titlestring, up to 255 charactersyesThe post title.
status"published" | "draft"noPublished at the scheduled time, or saved as a Ghost draft. The default is "published".
tagsstringnoTag names, separated with commas.
excerptstring, up to 300 charactersnoA custom excerpt.
main_imagemedia objectnoThe feature image, from the media library.

Allowed values

The fields below only accept these values. Any other value returns a 400, and the response names the field.

status

ValueMeaning
publishedPublished at the scheduled time. The default.
draftSaved as a Ghost draft at the scheduled time.

Examples

Each example is one item in the POST /public/v1/posts request's posts array. The envelope around it is always this:

{
  "type": "schedule",
  "date": "2026-09-15T09:00:00.000Z",
  "shortLink": false,
  "posts": [ /* the item below */ ]
}

Post with tags and an excerpt

{
  "integration": { "id": "<ghost-channel>" },
  "value": [{ "content": "<p>Everything that changed this month.</p>", "image": [] }],
  "settings": {
    "__type": "ghost",
    "title": "What changed in October",
    "status": "published",
    "tags": "news, product",
    "excerpt": "Everything that changed this month, in one place.",
    "main_image": { "id": "<media>", "path": "https://uploads.posty.hu/october.jpg" }
  }
}

The channel ID comes from the channel list, and the path values for images and videos from media upload. The exact schema for the connected account comes from the settings schema endpoint. From the command line, the same thing is the --settings flag. See the CLI examples.

Is something missing from this page? Email [email protected] or use the form on the Help page.