Posts
Create a post
Creates a draft, one variant per channel. With publish it is also sent for publishing; if the workspace requires approval it waits in a person's inbox instead (publish.status is pending_approval).
https://traceeai.com/api/v1/postsCLI:tracee posts create·MCP:postsaction draft
Authorizations
AuthorizationstringheaderrequiredBearer <key>: a personal key (tracee loginor Settings → Personal keys), a workspace key, or an MCP client's OAuth token. See Authentication.
Headers
Tracee-WorkspacestringFor a personal key or OAuth token that reaches several workspaces: the workspace id to act on. Workspace keys don't need it.
uuid
Body
bodystringrequiredThe copy. Each channel uses it unless its variant has its own.
1–20,000 characters
titlestringInternal name for the post. Defaults to the first line of body.
1–200 characters
linkUrlstring | nullLanding page. Tracee adds UTM tags per channel so contacts are traced back to the post. null removes it.
uriup to 2,000 characters
channelsstring[]Channel ids to post to with the post's copy and media. Shorthand for variants.
up to 50 itemseach uuid
variantsobject[]One per channel, when a channel needs its own copy or media.
up to 50 items
mediaIdsstring[]Media ids (from POST /media) for every channel that doesn't set its own.
up to 20 itemseach uuid
plannedForstring | nullWhen the post is meant to go out: its slot on the calendar. Queues nothing.
date-time
threadobject[]Follow-up parts every channel sends unless it has its own: replies on X and Threads, comments on LinkedIn, Facebook, Instagram, YouTube and Reddit (e.g. the link in the first comment).
up to 25 items
repeatobject | nullPublish it again every N days once it went out.
publishstring"now" to publish straight away, or an ISO 8601 date-time to schedule it. Approval rules apply.
notestringContext for the person who approves it.
up to 500 characters
Response
- 201The draft, and what happened when it was sent.CreatePostResult
postobjectrequiredpublishobject | nullrequiredpublishErrorobject | nullrequired