update_post

Update 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

Message on LinkedIn