Publish a post now
Publish a draft now, with an optional newsletter send.
POST https://cotlet.dev/api/v1/ghost/posts/{post_id}/publish
write Confirm
Returns the post with status published and, when a newsletter was given, the email status. The post goes public and the email is queued at once, and neither can be recalled. If the email comes back as failed, the post goes back to draft first and is published again. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| post_id string required | string | Post ID from list_posts. |
| newsletter string | string | Newsletter slug from list_newsletters. Omit to publish on the site without an email. |
| send_to string | string | With a newsletter: all, free or paid members. Default all. |
Request
curl -X POST https://cotlet.dev/api/v1/ghost/posts/post_8c41d2/publish \
-H "Authorization: Bearer $COTLET_API_KEY" result = client.call("ghost", "publish_post", {"post_id":"post_8c41d2"}) const result = await cotlet.call('ghost', 'publish_post', {"post_id":"post_8c41d2"}); cotlet call ghost publish_post --data '{"post_id":"post_8c41d2"}' Example response
{
"post": {
"id": "6710a1c2f3e4d500a1b2c3d4",
"title": "Issue 42: pricing notes",
"status": "published",
"published_at": "2026-10-17T09:30:00.000Z",
"email": {
"status": "submitted",
"recipient_filter": "all"
}
}
}