Skip to main content
REST clients use a personal or team API key in the Authorization header. Browser sessions use cookies and exact-origin checks. MCP uses OAuth at the API origin’s /mcp endpoint. Every operation checks the current actor’s permission.

Requests, versions and retries

Posting and saving a draft use a content-bound idempotencyKey. Reuse one key across retries of the same logical request; use a new key for an intentional new operation. A key reused for different content conflicts. Edits use the latest version; a stale version conflicts. Draft publication supplies draftSource with its ID and current version so conversion happens once. A post’s scheduledAt is an ISO 8601 timestamp with an offset. A future timestamp schedules delivery; an immediate timestamp requests immediate delivery. A created response records the request, not confirmed provider publication. Inspect deliveries afterward. Text overrides are keyed by selected connection IDs. Media uploads return signed URLs; PUT bytes using the supplied headers, complete the upload, then poll status until ready. Post and draft bodies use mediaIds, and responses use media.

Operation catalogue

This catalogue is generated from the same tool definitions used by MCP. Path parameters are supplied separately in REST; for MCP they are part of the tool input. HTTP permissions still apply to API keys and browser sessions. A successful create usually returns 201; replay/update returns 200; processing media returns 202. Validation, authentication, permission, missing-record and conflict failures use 400, 401, 403, 404 and 409 respectively. Media failure uses 422.

Input schemas

Schemas below describe MCP inputs. Refinements such as team ownership, selected-account membership, provider content limits and version/idempotency rules are also enforced by the shared HTTP handlers.

list_drafts

List team drafts. Drafts never enter the delivery queue.

get_draft

Read a draft’s text, selected accounts, overrides and ordered media.

save_draft

Save incomplete content without publishing. Use version 0 and a new draftId for a new draft, or its current version to update. Reuse the request key for retries.

delete_draft

Delete a team draft using its current version. Ask the user before deleting their draft.

list_connections

List this team’s connected social accounts. Credentials are never returned.

list_providers

Read enabled providers and their content limits.

reserve_media_upload

Reserve a private image or video upload. PUT the approved file to the returned URL using its headers, then complete the upload. No post is created.

complete_media_upload

Validate uploaded media and queue video preparation. Read its status until ready before scheduling it.

get_media_status

Read media preparation status and its metadata when ready.

get_media_preview

Get a short-lived private URL to view approved media.

list_posts

List scheduled posts or post history with per-account delivery states.

get_post

Read a posting group, its media and individual account outcomes.

create_post

Schedule or publish a post for selected team accounts. Confirm content, accounts and time with the user. Reuse the same idempotencyKey for retries.

update_post

Edit an entirely scheduled post using its current version. Publishing posts cannot be edited.

cancel_post

Cancel pending deliveries. Ask the user before cancelling their post. Published posts remain in history.

disconnect_account

Disconnect a team social account. Pending deliveries will fail. Ask the user before disconnecting.

get_team

Read team settings.

update_team

Update the team name.

list_members

List team members within the current access role.