# update_post

> Update an existing Blogizi post by slug (upsert). Omitting status keeps visibility.

HTML version: https://blogizi.com/docs/mcp-update-post
Markdown version: https://blogizi.com/docs/mcp-update-post.md

Upserts by slug. Same fields as [draft_post](/docs/mcp-draft-post), plus optional `status` and `scheduledAt`.

## Arguments

- `title`, `slug` — required
- `description`, `keyword`, `content` — optional
- `scheduledAt` — optional; future schedules, `null` unschedules, omit leaves schedule unchanged
- `coverImageUrl` — optional; omit to keep the existing cover
- `ctaTitle`, `ctaSubtitle`, `ctaButtonLabel`, `ctaButtonUrl` — optional; omit to keep existing CTA fields on update
- `sidebarCtaTitle`, `sidebarCtaText`, `sidebarCtaBullets` (string array), `sidebarCtaButtonLabel`, `sidebarCtaButtonUrl` — optional per-post sidebar CTA override (title, button label, and URL required together); omit to keep existing values on update
- `status` — optional `draft` or `published`; omit to keep the existing status
- `projectSlug` — required when the account has more than one project

To go live immediately, prefer [publish_post](/docs/mcp-publish-post). To schedule without rewriting content, use [schedule_post](/docs/mcp-schedule-post). For inline images, call [upload_post_image](/docs/mcp-upload-post-image) then include the returned markdown in `content`.
