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
markdownis 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
statusto"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. PassscheduledAt: nullto cancel a previously scheduled publish (or to reschedule: cancel first, then schedule again with the new time). SetsendNewsletter: truealongsidescheduledAtto email subscribers when the post publishes. - Set
imageUrlto update the post’s cover/hero image; the URL is fetched, re-hosted, and a placeholder is generated. PassclearImage: trueto remove the existing cover.
Authorizations
API key for authenticating protected endpoints. Pass as Bearer token in Authorization header.
Path Parameters
Unique identifier of the post to update
Body
Body
Post content in Markdown format. Replaces full content — rich blocks created in the editor will be lost
Title of the post
200Optional subtitle or brief summary
300URL-friendly identifier for the post
1 - 256Preview text for the post
500Category tags for the post. Can also be a comma-separated string.
Set to 'published' to publish a draft or keep an already-live post published after edits, 'draft' to unpublish, or 'archived' to archive
draft, published, archived 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. The value 0 is treated the same as omitting the field (no scheduling request); note that on an already-scheduled post, omitting scheduledAt while changing status cancels the schedule.
x >= 0Whether to send an email newsletter to subscribers when the post publishes. Only meaningful when publishing (status: 'published') or scheduling (scheduledAt set). Default: false
Unix timestamp (milliseconds) to set as the post's publish date. Once set, the date is preserved across re-publishes.
x > 0URL of an image to set as the post's cover/hero image. The image is fetched, re-hosted on Paragraph's CDN, and a placeholder is generated. Pass clearImage: true instead to remove the existing cover.
When true, removes the post's existing cover/hero image. Ignored if imageUrl is also provided.
Response
Post updated successfully
Whether the update succeeded
true 
