Update post OAuth Scope: posts:write

<Note title="Currently in beta" icon="b"> This feature is currently in beta, the API is subject to change, and available only to Enterprise users.<br/><br/>To inquire about Enterprise pricing, please visit our <a href="https://www.beehiiv.com/enterprise">Enterprise page</a>. </Note> Update an existing post for a specific publication. Only the fields provided in the request body will be updated — all other fields remain unchanged. For a detailed walkthrough of content methods and working with custom HTML, see the <a href="https://www.beehiiv.com/support/article/36759164012439-using-the-send-api-and-create-post-endpoint">Using the Send API and Create Post Endpoint</a> guide. To update post content, provide either `blocks` or `body_content` (not both). If neither is provided, the existing content is preserved. The same content methods and CSS guardrails described in the create endpoint apply here.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Path parameters

publicationIdstringRequiredformat: "^(pub_[0-9a-fA-F\-]+)$"
The prefixed ID of the publication object
postIdstringRequiredformat: "^(post_[0-9a-fA-F\-]+)$"
The prefixed ID of the post to update

Request

This endpoint expects an object.
blockslist of objectsOptional

The structured content blocks to replace the post’s current content. Supports block types such as paragraph, image, heading, button, html, table, list, columns, and more. Cannot be provided together with body_content.

body_contentstringOptional

Raw HTML to replace the post’s current content. The HTML is wrapped in an htmlSnippet block internally. Note that <style> and <link> tags are removed during sanitization — use inline styles for all visual styling. Cannot be provided together with blocks.

titlestringOptional
The title of the post.
subtitlestringOptional
The subtitle of the post.
scheduled_atdatetimeOptional
The time at which the post will be published. Cannot be updated after the post has already been sent.
email_capture_type_overrideenumOptional
The email capture type to use for this post.
Allowed values:
override_scheduled_atdatetimeOptional

A display date that overrides the scheduled_at date shown in the email. Does not affect the actual publish date.

social_shareenumOptional
The social share type to use for this post.
Allowed values:
thumbnail_image_urlstringOptional
The URL of the thumbnail image to use for the post.
email_settingsobjectOptional
The email settings to use for this post. Only the provided fields within this object will be updated.
web_settingsobjectOptional
The web settings to use for this post. Only the provided fields within this object will be updated.
seo_settingsobjectOptional
The SEO metadata to use for this post. Only the provided fields within this object will be updated.
content_tagslist of stringsOptional
The content tags for this post. When provided, this replaces all existing content tags on the post.

Response

Updated
dataobject

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
429
Too Many Requests Error
500
Internal Server Error