Tools
posts
Posts
Everything about a post, from draft to taken down.
Actions
draft
draft title body variants[] [link_url]
Create a draft with one variant per channel. Returns brandIssues per variant; issues block publishing until fixed.
RESTPOST/posts·CLItracee posts create
update
update post_id [title] [body] [link_url] [variants[]]
Edit a post that hasn't gone out. Undoes any approval or schedule; it becomes a draft again. variants replaces the channels entirely.
RESTPATCH/posts/{postId}·CLItracee api PATCH /posts/<postId>
publish
publish post_id
Publish now (or file an approval request if the workspace requires one).
RESTPOST/posts/{postId}/publish·CLItracee posts publish <postId>
schedule
schedule post_id scheduled_for
Publish later, same approval rules.
RESTPOST/posts/{postId}/publish·CLItracee posts publish <postId>
submit_for_approval
submit_for_approval post_id [scheduled_for] [note]
Send to a person's inbox explicitly.
RESTPOST/posts/{post_id}/submit-for-approval·CLItracee posts submit <post_id>
reschedule
reschedule post_id scheduled_for
Move a scheduled post (keeps its approval).
RESTPOST/posts/{post_id}/reschedule·CLItracee posts reschedule <post_id>
unschedule
unschedule post_id
Cancel a scheduled post; it stays approved.
RESTPOST/posts/{post_id}/unschedule·CLItracee posts unschedule <post_id>
delete
delete post_id|post_ids[] [note]
Delete posts that never went out (asks a person); several at once answer per post.
unpublish
unpublish post_id [variant_ids] [note]
Take a live post down from its platforms (asks a person).
RESTPOST/posts/{post_id}/unpublish·CLItracee posts unpublish <post_id>
get
get post_id|post_ids[]
Posts with variants, statuses and publish results.
list
list [from] [to] [status[]] [platforms[]] [channel_ids[]] [customer_id] [query] [limit]
Posts newest first; from/to (dates or ISO times) pick by when a post goes out, went out or is planned for, like the calendar; status filters by draft, pending_approval, approved, scheduled, published, failed…; platforms keeps posts with a variant on those networks; query matches title and copy.
RESTGET/posts·CLItracee posts list
RESTGET/calendar·CLItracee posts search
update_settings
update_settings post_id channel_id settings={…} [replace_settings]
Change one channel's platform settings (channels action=rules lists them, channels action=options their live choices) on a post that hasn't gone out, keeping its copy, media and time. A scheduled or approved post is scheduled again for the same time (and goes back for approval if the workspace requires it).
RESTPATCH/posts/{post_id}/channels/{channel_id}/settings·CLItracee posts settings <post_id> <channel_id>
comments
comments post_id
The team's comments on a post. action=comment post_id comment: add a note for the team on the post (agents can't approve; nothing is published).
RESTGET/posts/{post_id}/comments·CLItracee posts comments <post_id>
duplicate
duplicate post_id
Copy any post (even a published one) as a new draft.
RESTPOST/posts/{post_id}/duplicate·CLItracee posts duplicate <post_id>
send_to_tasks
send_to_tasks post_id [task_app] [place_ids[]] [note]
Make a task (card, issue, item, record) for the post in a connected task app (asana, trello, clickup, monday, jira, linear, todoist, googletasks, airtable, notion) with its copy, channels, its time as the due date and a link back; task_app defaults to the one the team used last, the place to that app's saved one. A person approves it before it's made.
RESTPOST/posts/{post_id}/send-to-tasks·CLItracee posts send-to-tasks <post_id>
task_places
task_places [task_app] [place_ids[]]
Where a task can go, one level at a time (workspace, project, board, list, table…); add an id to place_ids and ask again until every level is chosen.
next_slot
next_slot channel_ids[]
The next posting time free on all those channels (their posting times, else 9:00/12:00/17:00).
saved
saved [platform] [limit]
Saved (on Radar), the posts the team saved from LinkedIn, X, TikTok and other networks with the Tracee browser extension (text, author, counts, link). Use them as ideas to write the workspace's own posts: borrow the idea, never the words.
replies
replies post_text [post_author] [platform] [angle]
Three comments worth posting under someone else's post, in the brand's voice (an insight, a question, another angle). They appear to the person as cards to copy, or to put straight into the comment box when they use the Tracee browser extension, so never list or restate them in your answer.
export
export post_id app [target_id] [subject] [field_map]
Copy a post into an email app as a newsletter draft (mailchimp, kit, beehiiv, mailerlite, brevo, klaviyo) or into a website as a draft (webflow, contentful, wordpress_com). Never sends or publishes: a person does that in the app from the returned url. Without target_id it uses the list or collection used last, else returns the choices; a target_id that has more inside (a Webflow site, a Contentful space) returns those. subject defaults to the post's first line. field_map (websites) overrides which field gets title, slug, body, summary or image. Sending the same post to the same place again updates that draft.
RESTPOST/posts/{post_id}/export·CLItracee posts export <post_id>
draft/update also take thread[] (follow-up parts: replies on X and Threads, comments on LinkedIn, Facebook, Instagram, YouTube, Reddit; e.g. the link in the first comment), repeat {every_days, until} (publish again every N days after it goes out; null stops), and per-variant settings and thread. "@Name" for a saved mention contact becomes each platform's handle.
Inputs
Every call takes action and the fields that action names above.
actionstringrequiredWhat to do: draft, update, publish, schedule, submit_for_approval, reschedule, unschedule, delete, unpublish, get, list, duplicate, next_slot, saved, replies, update_settings, comments, comment, export, send_to_tasks or task_places. Each is described in the tool description.
Available options:
draftupdatepublishschedulesubmit_for_approvalrescheduleunscheduledeleteunpublishgetpost_idstringThe post, from posts action=list (or the id posts action=draft returns)
uuid
post_idsstring[]get and delete: several posts at once, from posts action=list
1–50 itemseach uuid
platformsstring[]list: only posts with a variant on these networks, e.g. ["linkedin", "x"]
up to 40 itemseach up to 30 characters
fromstringlist: from this date or time
up to 40 characters
tostringlist: up to this date (inclusive) or time
up to 40 characters
statusstring[]list: only these statuses
up to 9 items
Available options:
draftpending_approvalapprovedrejectedscheduledpublishedpartially_publishedfailedremovedcustomer_idstringlist: only posts on this client's channels. From channels action=customers.
uuid
querystringlist: words in the title or copy
up to 200 characters
channel_idstringupdate_settings: the channel whose version to change. From channels action=list.
uuid
settingsobjectupdate_settings: platform settings to set, e.g. {"visibility": "CONNECTIONS"}
any keys
replace_settingsbooleanupdate_settings: replace all settings instead of merging
commentstringcomment: the text
1–5,000 characters
threadobject[]Follow-up parts every channel sends
up to 25 items
repeatobject | nullPublish again every N days once it goes out; null stops repeating
channel_idsstring[]next_slot: the channels to find a time for. From channels action=list.
each uuid
titlestringInternal name for the post
1–200 characters
bodystringDefault copy for every variant
at least 1 character
link_urlstring | nullLanding page; UTM tags are added for you. null removes it (update).
uri
variantsobject[]For draft, update and get: the variants. From channels action=list (one {channel_id} per channel).
at least 1 item
scheduled_forstringISO 8601 with offset
date-time
variant_idsstring[]unpublish only these variants. From posts action=get post_id=<post_id> (variants[].id).
each uuid
notestringContext for the approver
up to 500 characters
limitintegerFor list and saved: the limit.
1–100
platformstringsaved: one network, e.g. linkedin, x, tiktok. replies: the post's network
up to 40 characters
post_textstringreplies: the text of the post to reply to
1–20,000 characters
post_authorstringreplies: who wrote it
up to 200 characters
task_appstringsend_to_tasks, task_places: the task app, e.g. asana; the last one used if left out
up to 40 characters
place_idsstring[]send_to_tasks, task_places: one id per level of where the task goes, outermost first; the app's saved place if left out. From posts action=task_places task_app=<task_app>.
up to 4 itemseach 1–300 characters
anglestringreplies: what the person wants to say, in a few words
up to 600 characters
appstringexport: where the draft goes: mailchimp, kit, beehiiv, mailerlite, brevo, klaviyo, webflow, contentful, wordpress_com
up to 40 characters
target_idstringexport: the list, publication or collection (posts action=export without it lists them)
up to 500 characters
subjectstringexport: the email subject or page title (default: the post's first line)
up to 250 characters
field_mapobjectexport, websites: which field gets each part, e.g. {"body": "post-body", "image": ""}
any keys