Overview - Posts APIs
Programmatic endpoints for scheduling, listing, flipping draft ↔ scheduled, and deleting posts using a workspace programmatic token.
Connect your agent today
Draft from chat, review in your calendar, and publish only what you approve.
Endpoints
Terminology
A post group is the multi-channel composition the workspace UI calls a post. The group's UUID is returned by POST /public/posts as postGroup and appears on each calendar row from GET /public/posts/list. Full edit-mode read/update/delete for a group over HTTP is session-only (/posts/group/{postGroup} with a user token). A programmatic token can create groups, list rows, flip status with PUT /public/posts/{postId}/status, and delete by row id.
Typical flow
- Pick channels — call GET /public/integrations to list connected channels, then collect the UUIDs you want to publish to.
- (Optional) Attach media — upload each asset via POST /public/upload and keep the returned
id+path. - Create — call POST /public/posts with the canonical
body, any per-channelbodiesByIntegrationIdandmediaByIntegrationIdoverrides, the sharedmediareferences,scheduledAt, andstatus(draftorscheduled). For agent/approval flows, set isAgent and optional note (kanban review checklist). The response includes the newpostGroupUUID. - Iterate — use the workspace composer or authenticated session APIs to change channels, copy, or media. Use PUT /public/posts/{postId}/reschedule with a row id to move publish time (
action: updatepreserves state;schedulere-queues). Use PUT /public/posts/{postId}/status when you only need to flipdraft↔scheduledat the same stored time. - Remove — call DELETE /public/posts/{postId} with any row id from the group to soft-delete the whole group; already-published rows remain on the social provider.
Rate limits
One call per group
The 30 requests per hour cap (shared across the public API) counts each request individually. Schedule a multi-channel group in a single POST /public/posts call instead of looping per channel to maximize throughput.