Update a post by slug
Update an existing post using its URL slug. 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
- 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.
- Set imageAlt to describe the cover image for screen readers. It renders everywhere the cover appears, so set it whenever you set imageUrl.
Path parameters
URL-friendly identifier of the post to update
Request body
Response
Post updated successfully
Changes
Changed in 10 of the 61 revisions of this API.413
- ○
added the new optional request property
canonicalUrlnew-optional-request-property
- ○
added the new optional request property
communityIdnew-optional-request-property
- ○
added the new optional request property
publishOnlinenew-optional-request-property
- ○
- ○
added the new optional request property
imageAltnew-optional-request-property
- ○
- ○
added the new optional request property
authorIdsnew-optional-request-property
- ○
- ○
added the new optional request property
bodyJsonnew-optional-request-property
- ○
- ○
added the non-success response with the status
409response-non-success-status-added
- ○
- ○
added the new optional request property
clearImagenew-optional-request-property
- ○
added the new optional request property
imageUrlnew-optional-request-property
- ○
- ●
removed the optional property
errorfrom the response with the400statusresponse-optional-property-removed
- ●
removed the optional property
errorfrom the response with the401statusresponse-optional-property-removed
- ●
removed the optional property
errorfrom the response with the404statusresponse-optional-property-removed
- ●
removed the optional property
errorfrom the response with the500statusresponse-optional-property-removed
- ●
- ○
added the new optional request property
publishedAtnew-optional-request-property
- ○
- ○
added the new optional request property
scheduledAtnew-optional-request-property
- ○
added the new optional request property
sendNewsletternew-optional-request-property
- ○
- ○
endpoint added
endpoint-added
- ○