Skip to main content
Blog PostsVersion: v3

Update Blog Post

PUT/blogs/posts/{postId}

The "Update Blog Post" API updates an existing blog post for any given blog site.

Authorizations

Authorizationstringheaderrequired

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

Scope:blogs/post-update.write
Auth methods:OAuthPrivate Integration
Token type:Sub-Account Token

Request​

Headers

Versionstringrequired

API Version

Available optionsv3
Example:v3

Path Parameters

postIdstringrequired

Identifier of the blog post to fetch

Example:66c381b38be80858b9af62b6

Body

titlestring

Title of the blog post

Example:My Blog Post
locationIdstringrequired

Sub-account (location) identifier the blog post belongs to

Example:ve9EPM428h8vShlRW1KT
blogIdstringrequired

Identifier of the blog site the post belongs to

Example:lMOzIQZne5m6zQ528sT6
imageUrlstring

Cover image URL for the blog post

Example:https://storage.googleapis.com/blog-assets/posts/cover.png
descriptionstring

Short description or excerpt for the blog post

Example:A practical guide to inbound marketing in 2026.
rawHTMLstringrequired

Full HTML body of the blog post

Example:<h1>Hello</h1><p>This is my post.</p>
statusstringrequired

Publication status of the blog post

Available optionsDRAFTPUBLISHEDSCHEDULEDARCHIVEDDELETED
Example:DRAFT
wordCountnumber

Total word count of the blog post body

Example:1200
readTimeInMinutesnumber

Estimated read time of the blog post, in minutes

Example:6
archivedboolean

Whether the blog post is archived

Example:false
imageAltTextstring

Alt text for the cover image

Example:A laptop on a desk
currentVersionstring

Identifier of the current version of the blog post

Example:66c381b38be80858b9af62b7
metaDataobject

Metadata about actors that performed lifecycle actions on the post

categoriesstring[]

Identifiers of categories the blog post belongs to

Example:["659ecabc4a37969a2b7cc370"]
tagsstring[]

Tags applied to the blog post

Example:["marketing","seo"]
authorstring

Identifier of the author of the blog post

Example:659ec9634a3796e4e47cc360
urlSlugstring

URL-safe slug used in the blog post path

Example:my-blog-post
canonicalLinkstring

Canonical link override for SEO

Example:https://example.com/blog/my-blog-post
importIdstring

Identifier of the import record this post was created from

Example:64a1b2c3d4e5f6a7b8c9d0e1
typestring

Post type marker (e.g., "preview")

Example:preview
publishedAtstring

Timestamp when the post was (or will be) published

Example:2026-05-13T17:14:57.000Z
scheduledAtstring<date-time>

Timestamp when the post is scheduled to publish

Example:2026-06-01T09:00:00.000Z
externalFontsstring[]

External fonts referenced by the blog post body

Example:["Inter","Merriweather"]
originIdstring

External identifier when the post was imported from another system

Example:wp-post-42
tocStylestring

Table-of-contents style preference for the post

Example:sidebar
isAutoSaveboolean

Whether this update is an automatic save from the editor

Example:false
conversationHistoryPathstring

Storage path of the conversation history for AI-assisted edits

Example:conversations/blog/64a1b2c3d4e5f6a7b8c9d0e1.json
assistModeDataobject

Assist-mode configuration captured at the time of generation

isAiGeneratedboolean

Whether the blog post was generated using AI assistance

Example:false
isAIGeneratedbooleandeprecated

Deprecated. Use isAiGenerated instead. Kept for backwards compatibility.

Example:false

Response

Successful response

updatedBlogPostobjectrequired

Object containing response data of blog post update