update_postUpdate post
Replace draft content using optimistic concurrency and approval confirmation.
Authorization and permissions
Requires a valid delegated OAuth token and access to the selected workspace.
- OAuth scope
mcp:content- Workspace requirement
- Authorized workspace and current membership required
can_edit_post; approved changes require confirmed_revision.
Input schema
{
"additionalProperties": false,
"properties": {
"confirmed_revision": {
"description": "Confirmed revision.",
"minimum": 1,
"type": [
"integer",
"null"
]
},
"description": {
"description": "Description.",
"maxLength": 63206,
"type": "string"
},
"expected_version": {
"description": "Last-read post concurrency version.",
"minimum": 1,
"type": "integer"
},
"post_id": {
"description": "Public post sqid.",
"maxLength": 32,
"minLength": 1,
"type": "string"
},
"team_id": {
"description": "Consented workspace ID.",
"minimum": 1,
"type": "integer"
}
},
"required": [
"team_id",
"post_id",
"description",
"expected_version"
],
"type": "object"
}Result schema
{
"additionalProperties": false,
"properties": {
"changed": {
"description": "Changed.",
"type": "boolean"
},
"post": {
"additionalProperties": false,
"description": "Post.",
"properties": {
"content_revision": {
"description": "Content revision.",
"type": "integer"
},
"delivery": {
"additionalProperties": false,
"description": "Delivery.",
"properties": {
"details": {
"additionalProperties": {
"type": "integer"
},
"description": "Details.",
"properties": {},
"required": [],
"type": "object"
},
"failed": {
"description": "Failed.",
"type": "integer"
},
"pending": {
"description": "Pending.",
"type": "integer"
},
"published": {
"description": "Published.",
"type": "integer"
},
"status": {
"description": "Status.",
"type": "string"
},
"total": {
"description": "Total.",
"type": "integer"
}
},
"required": [
"status",
"total"
],
"type": "object"
},
"description": {
"description": "Description.",
"type": "string"
},
"id": {
"description": "Id.",
"type": "string"
},
"schedule_active": {
"description": "Schedule active.",
"type": "boolean"
},
"scheduled_on": {
"description": "Scheduled on.",
"type": [
"string",
"null"
]
},
"target_account_id": {
"description": "Target account id.",
"type": [
"integer",
"null"
]
},
"timezone": {
"description": "Timezone.",
"type": [
"string",
"null"
]
},
"version": {
"description": "Version.",
"type": "integer"
}
},
"required": [
"id",
"description",
"version",
"content_revision",
"scheduled_on",
"timezone",
"schedule_active",
"target_account_id",
"delivery"
],
"type": "object"
}
},
"required": [
"post",
"changed"
],
"type": "object"
}Example arguments
{
"confirmed_revision": 3,
"description": "Three practical onboarding lessons from ten customer interviews.",
"expected_version": 4,
"post_id": "P7k2Lm9Q",
"team_id": 42
}Example result
{
"changed": true,
"post": {
"content_revision": 4,
"delivery": {
"details": {},
"failed": 0,
"pending": 0,
"published": 0,
"status": "draft",
"total": 0
},
"description": "Three practical onboarding lessons from ten customer interviews.",
"id": "P7k2Lm9Q",
"schedule_active": false,
"scheduled_on": null,
"target_account_id": 271,
"timezone": "America/New_York",
"version": 5
}
}Errors and retry
Requires a current workspace membership. Unknown or cross-workspace posts return not found; draft permissions can deny writes. Content over 63,206 characters, stale versions, missing approval confirmation, active schedules, or started publication reject the applicable mutation. Calls are limited to 120 per user per minute.
Reads are safe to retry. Before retrying create, search or list posts to avoid a duplicate draft. For update or delete, reload the post after an ambiguous response and use its current version; never blindly repeat a stale mutation.
Effects, limits, and source
Workspace roles, subscription and AI usage limits, approval rules, and server rate limits are enforced at call time. Rate-limit responses identify when to retry; scheduled work returns state rather than holding the request open.
services.content.update_description