Update Blog Post
Updates a blog post. CPT: custom_fields updatable; post_type locked; APPROVAL_REQUIRED may apply on publish.
Authorizations
Session ID for authenticated requests
Parameters
Path Parameters
Request Body
Responses
Post updated
Update an existing blog post.
Auth: session + owner/admin.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | Yes | Post id |
Request Body
{
"title": "Updated title",
"body": "Updated body",
"lang": "es",
"custom_fields": { "client": "Acme Corp" }
}Response 200
{
"data": {
"id": "post_2",
"updated": true,
"post_type": "case-study",
"custom_fields": { "client": "Acme Corp" }
},
"user_context": { "authenticated": true },
"meta": {}
}Response Errors
400invalid update payload (CUSTOM_FIELDS_*,POST_TYPE_LOCKED, …)401missing session403not owner/admin orAPPROVAL_REQUIREDon publish404post not found429RATE_LIMIT_EXCEEDED
Notes
Rate limit:
postbucket, 10 requests / 3600s by default. A session that can publish (admin,superadmin,author,editor, or the roles inBLOG_ALLOWED_POST_ROLESandBLOG_ADMIN_ROLES) is not counted. Otherwise429RATE_LIMIT_EXCEEDED. See Rate limits.Use this for content edits and metadata changes.
langis an ISO 639-1 code, for example"lang": "es". See Languages. Omit it to keep the current language.Keep slug and visibility in sync with the publishing flow.
CPT:
custom_fieldsare updatable; changingpost_typereturnsPOST_TYPE_LOCKED.Type behaviors may still apply on publish (approval, scheduling, password visibility).