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
- When editing an already-live post that should remain live, include status: "published" in the update and verify the returned post status before telling the writer it is live
- 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.
- Set imageUrl to update the post's cover/hero image; the URL is fetched, re-hosted, and a placeholder is generated. Pass clearImage: true to remove the existing cover.
put/v1/posts/{postId}
Path parameters
postIdstring required
Unique identifier of the post to update
Request body
Response
Post updated successfully