Parameters

NameTypeRequiredDescription
brandIdstringYesOcoya brand id from ocoya_list_brands.
postGroupIdstringYesOcoya post group id of an SEO post.
titlestringNoThe headline. Every channel’s title follows it.
bodystringNoThe post in Markdown.
slugstringNoURL slug. Defaults to one made from the title.
excerptstringNoShort summary for blog lists. Defaults to the meta description.
seoTitlestringNoTitle for search results. Defaults to the title.
metaDescriptionstringNoSearch results summary, ideally 120-160 characters. Drafted from the introduction when not given.
keywordstringNoThe search phrase the post targets. The SEO score checks against it and the brand’s keywords.
tagsstring[]NoUp to 10 tags.
channelIdsstring[]NoBlog or site channel ids from ocoya_list_channels: WordPress, DEV, Notion, Webflow, Framer, Wix or Webhook. Social channels are refused.
cmsobjectNoPer-CMS settings, used when the post has a channel on that CMS. Each is live unless set. WordPress and DEV always publish live.
addChannelIdsstring[]NoChannel ids to append without removing channels already attached.
thumbnailobject or nullNoA new cover image (exactly one of url, data or generate), or null to remove it.
scheduledAtstring or nullNoISO datetime to schedule the post, or null to make it unscheduled.
publishNowbooleanNoPublish the existing post immediately.

Request example

{
  "name": "ocoya_update_seo_post",
  "arguments": {
    "brandId": "cmayvq3hk00017apshay5qezu",
    "postGroupId": "cmajvvb9q0003ja5vh0538j6r",
    "channelIds": ["clh49poxf008x8kov4ncbjty9"],
    "scheduledAt": "2026-07-01T09:00:00Z"
  }
}

Returns

Returns postGroupId, status and scheduledAt. This tool changes or removes existing content, and can reach your connected networks.