Parameters
| Name | Type | Required | Description |
|---|---|---|---|
brandId | string | Yes | Ocoya brand id from ocoya_list_brands. |
title | string | Yes | The headline. |
body | string | Yes | The post in Markdown, with ## headings. Do not repeat the title in it. |
slug | string | No | URL slug. Defaults to one made from the title. |
excerpt | string | No | Short summary for blog lists. Defaults to the meta description. |
seoTitle | string | No | Title for search results. Defaults to the title. |
metaDescription | string | No | Search results summary, ideally 120-160 characters. Drafted from the introduction when not given. |
keyword | string | No | The search phrase the post targets. The SEO score checks against it and the brand’s keywords. |
tags | string[] | No | Up to 10 tags. |
channelIds | string[] | No | Blog or site channel ids from ocoya_list_channels: WordPress, DEV, Notion, Webflow, Framer, Wix or Webhook. Social channels are refused. |
cms | object | No | Per-CMS settings, used when the post has a channel on that CMS. Each is live unless set. WordPress and DEV always publish live. |
thumbnail | object | No | The cover image above the post. Exactly one of url, data or generate. |
scheduledAt | string | No | Optional ISO datetime. Omit to save as draft. |
publishNow | boolean | No | Publish immediately through Ocoya scheduling. Needs the posts:publish scope. |
Request example
{
"name": "ocoya_create_seo_post",
"arguments": {
"brandId": "cmayvq3hk00017apshay5qezu",
"title": "<title>",
"body": "<body>",
"channelIds": ["clh49poxf008x8kov4ncbjty9"],
"scheduledAt": "2026-07-01T09:00:00Z"
}
}Returns
Returns postGroupId, status and scheduledAt. This tool creates content, which can reach your connected networks once it publishes.