posts

Update a post by ID

Update an existing post in your publication. The publication is identified by the API key provided in the Authorization header.

Behavior:

  • Only provided fields are updated; omitted fields remain unchanged
  • When markdown is provided, it replaces the full content. Rich blocks (embeds, buttons, callouts) created in the editor will be lost — the markdown to editor conversion is lossy for blocks without a markdown equivalent
  • Set status to "published" to publish a draft, "draft" to unpublish, or "archived" to archive
  • Set scheduledAt (Unix timestamp in milliseconds) to schedule a draft's first-publish for a future time. Must be in the future and at most 30 days out. Only valid for posts that haven't been published or already scheduled. Pass scheduledAt: null to cancel a previously scheduled publish (or to reschedule: cancel first, then schedule again with the new time). Set sendNewsletter: true alongside scheduledAt to email subscribers when the post publishes.
put/v1/posts/{postId}

Path parameters

postIdstring required

Unique identifier of the post to update

Request body

markdownstring

Post content in Markdown format. Replaces full content — rich blocks created in the editor will be lost

titlestring

Title of the post

subtitlestring

Optional subtitle or brief summary

slugstring

URL-friendly identifier for the post

postPreviewstring

Preview text for the post

status'draft' | 'published' | 'archived'

Set to 'published' to publish, 'draft' to unpublish, or 'archived' to archive

scheduledAtinteger nullable

Unix timestamp (milliseconds) to schedule the post's first publish at a future time. Must be in the future and at most 30 days out. Only valid for draft posts that haven't been published or already scheduled. Cannot be combined with status: 'draft' or 'archived'. Pass null to cancel a previously scheduled publish.

publishedAtinteger

Unix timestamp (milliseconds) to set as the post's publish date. Once set, the date is preserved across re-publishes.

Response

Post updated successfully

successtrue required

Whether the update succeeded

Changes