Docs

Updating a post

Find it with list_content, change it with update_post.

Agents frequently do not offer to edit, simply because nobody told them they could. They can. update_post takes an existing post_id and applies whatever fields you pass — body, taxonomy, media or SEO.

Find the post first

Post ids are per-site and you rarely know them. list_content is how you find one. It returns date and modified for every post, which is what makes a request like "fix the post I published last Tuesday" answerable.

FilterTypeWhat it does
searchstringFree-text search across post titles and content.
categorystringCategory name.
tagstringTag name.
statusstringAccepted, but list_content only returns published posts today. Drafts and scheduled posts are not listed.
published_afterISO 8601 or YYYY-MM-DDOnly posts published on or after this moment.
published_beforeISO 8601 or YYYY-MM-DDOnly posts published before this moment.
order_bydate | title | modifiedSort field.
orderasc | descSort direction.
pagenumber1-based page number.
limitnumberResults per page.
list_content({
  site: "myblog",
  search: "pricing",
  published_after: "2026-08-24",
  published_before: "2026-08-26",
  order_by: "date",
  order: "desc"
})

Then update it

Pass post_id plus only the fields you want changed. Fields you omit are left alone.

update_post({
  site: "myblog",
  post_id: 412,
  markdown: "## Updated pricing\n\n...",
  meta_description: "Our new pricing, explained in plain terms."
})

Passing markdown replaces the whole body. There is no partial-body edit — the agent should fetch or reconstruct the full post content, not send a fragment.

Approvals and outcomes

Updates go through the same approval policy as new posts, and return the same per-component contract: image_status, taxonomy_status, seo_status, embed_status, inline_images and render_check. An update can be partial in exactly the same way a publish can.

What can go wrong

  • wp_not_found — the post_id does not exist on that site, or it was deleted. Re-run list_content.
  • Using an id from a different site. Ids do not carry across sites.
  • Sending a summary as the markdown, which quietly truncates the post. Send the whole body.
  • Adding categories expecting them to merge with the existing ones. Send the full set you want the post to have.