Update Blog Post
PUT/blogs/posts/:postId
The "Update Blog Post" API updates an existing blog post for any given blog site.
Request
API Version
v3Identifier of the blog post to fetch
- application/json
- Body
- Example (auto)
Bodyrequired
Title of the blog post
Sub-account (location) identifier the blog post belongs to
Identifier of the blog site the post belongs to
Cover image URL for the blog post
Short description or excerpt for the blog post
Full HTML body of the blog post
Publication status of the blog post
DRAFTPUBLISHEDSCHEDULEDARCHIVEDDELETEDTotal word count of the blog post body
Estimated read time of the blog post, in minutes
Whether the blog post is archived
Alt text for the cover image
Identifier of the current version of the blog post
Metadata about actors that performed lifecycle actions on the post
Identifiers of categories the blog post belongs to
Tags applied to the blog post
Identifier of the author of the blog post
URL-safe slug used in the blog post path
Canonical link override for SEO
Identifier of the import record this post was created from
Post type marker (e.g., "preview")
Timestamp when the post was (or will be) published
Timestamp when the post is scheduled to publish
External fonts referenced by the blog post body
External identifier when the post was imported from another system
Table-of-contents style preference for the post
Whether this update is an automatic save from the editor
Storage path of the conversation history for AI-assisted edits
Assist-mode configuration captured at the time of generation
Whether the blog post was generated using AI assistance
Deprecated. Use isAiGenerated instead. Kept for backwards compatibility.
{
"title": "My Blog Post",
"locationId": "ve9EPM428h8vShlRW1KT",
"blogId": "lMOzIQZne5m6zQ528sT6",
"imageUrl": "https://storage.googleapis.com/blog-assets/posts/cover.png",
"description": "A practical guide to inbound marketing in 2026.",
"rawHTML": "<h1>Hello</h1><p>This is my post.</p>",
"status": "DRAFT",
"wordCount": 1200,
"readTimeInMinutes": 6,
"archived": false,
"imageAltText": "A laptop on a desk",
"currentVersion": "66c381b38be80858b9af62b7",
"metaData": {
"updatedBy": "user_abc123",
"publishedBy": "user_abc123"
},
"categories": [
"659ecabc4a37969a2b7cc370"
],
"tags": [
"marketing",
"seo"
],
"author": "659ec9634a3796e4e47cc360",
"urlSlug": "my-blog-post",
"canonicalLink": "https://example.com/blog/my-blog-post",
"importId": "64a1b2c3d4e5f6a7b8c9d0e1",
"type": "preview",
"publishedAt": "2026-05-13T17:14:57.000Z",
"scheduledAt": "2026-06-01T09:00:00.000Z",
"externalFonts": [
"Inter",
"Merriweather"
],
"originId": "wp-post-42",
"tocStyle": "sidebar",
"isAutoSave": false,
"conversationHistoryPath": "conversations/blog/64a1b2c3d4e5f6a7b8c9d0e1.json",
"assistModeData": {
"topic": "How to improve customer engagement using AI",
"wordLimit": "1000-1500",
"tone": "professional"
},
"isAiGenerated": false
}
Successful response
- application/json
- Schema
- Example (auto)
Schema
Object containing response data of blog post update
{
"updatedBlogPost": {
"_id": "66c381b38be80858b9af62b6",
"title": "How to grow your agency",
"status": "PUBLISHED"
}
}