Skip to main content

Posts

Manage posts with full CRUD operations. Requires GHOST_ADMIN_API_KEY.

Tools

ToolDescription
admin_browse_postsList posts with filtering and pagination
admin_read_postGet a single post by ID or slug
admin_create_postCreate a new post
admin_update_postUpdate an existing post
admin_delete_postDelete a post
admin_copy_postDuplicate a post

admin_browse_posts

List posts with filtering, pagination, and sorting.

{
"filter": "status:draft",
"limit": 10,
"order": "updated_at DESC"
}

Supports the same parameters as content_browse_posts, plus access to draft and scheduled posts.

admin_read_post

Get a single post by ID or slug.

{
"slug": "my-post-slug"
}

admin_create_post

Create a new post. Use status to control publication state.

Create a draft

{
"title": "My New Blog Post",
"html": "<p>This is the content of my blog post.</p>",
"status": "draft"
}

Create a published post with full metadata

{
"title": "Complete Guide to Ghost CMS",
"html": "<p>Ghost is a powerful open source publishing platform...</p>",
"status": "published",
"featured": true,
"tags": [{ "name": "Tutorials" }, { "slug": "ghost" }],
"authors": [{ "email": "author@example.com" }],
"custom_excerpt": "Learn everything about Ghost CMS",
"meta_title": "Ghost CMS Guide | My Blog",
"meta_description": "A comprehensive guide to using Ghost CMS.",
"feature_image": "https://example.com/images/ghost-guide.jpg"
}

Create a members-only post

{
"title": "Premium Content for Members",
"html": "<p>Exclusive content for paying subscribers.</p>",
"status": "published",
"visibility": "paid"
}

Key parameters

ParameterTypeDescription
titlestringPost title
htmlstringPost content in HTML
statusstringdraft, published, or scheduled
featuredbooleanWhether the post is featured
visibilitystringpublic, members, paid, or tiers
tagsarrayTags by name or slug
authorsarrayAuthors by email or ID
feature_imagestringURL of the feature image
custom_excerptstringCustom excerpt
meta_titlestringSEO title
meta_descriptionstringSEO description
published_atstringPublication date (for scheduling)

admin_update_post

Update an existing post. Requires id and updated_at for conflict prevention.

{
"id": "5ddc9141c35e7700383b2937",
"updated_at": "2024-01-15T10:30:00.000Z",
"title": "Updated Title",
"html": "<p>Updated content goes here.</p>",
"status": "published"
}
warning

The updated_at field must match the current value from the post. This prevents accidental overwrites if someone else modified the post.

admin_delete_post

Delete a post by its ID.

{
"id": "5ddc9141c35e7700383b2937"
}

admin_copy_post

Duplicate a post. Creates a draft copy of the specified post.

{
"id": "5ddc9141c35e7700383b2937"
}