Recommended workflow
To create and publish a post end-to-end:list-social-accounts-tool— discover connected accountslist-content-types-tool— discover validcontent_typeper platform with limitslist-pinterest-boards-tool(if targeting Pinterest) — resolveplatforms[].meta.board_idlist-discord-channels-tool(if targeting Discord) — resolveplatforms[].meta.channel_idcreate-post-tool— create the draft with content + chosen platforms +metalist-assets-tool+attach-existing-asset-tool(optional) — reuse an item already in the Asset Libraryattach-media-from-url-tool(optional) — attach images or videos from public URLsrequest-media-upload-tool+attach-media-from-upload-tool(optional) — upload a local file when no public URL existspreview-post-tool(optional) — see how each platform will render before publishingpublish-post-tool— publish immediately or schedule for a future timeget-post-metrics-tool(after published) — fetch engagement metrics
Posts
Assets
These tools use the workspace Asset Library (the Library tab) — not logos or avatars, and not other workspaces. Viewers cannot use them (Not authorized to view assets. / Not authorized to update this post.).
Asset object (list items and get). There is no path.
list-assets-tool
List library files, newest first. REST:GET /assets.
get-asset-tool
Get one library file. REST:GET /assets/{media}.
Returns the asset object (fields above) at the top level — no wrapper.
attach-existing-asset-tool
Attach a library file to a post. Does not upload a new file. REST:POST /posts/{post}/media/from-asset.
- File type must be allowed by every enabled platform on the post. If none are enabled, any type is allowed. Example: TikTok video only + image →
This file type is not supported by the platforms enabled on the post. published/partially_published/failed/publishingposts are rejected (This post has already been processed and cannot be re-published. Duplicate it to try again.).- Same
post_id+asset_idagain does not duplicate the media and does not changealt.
Platforms (read-only)
Signatures
Labels
Social accounts
Workspace
API keys
Webhooks
Outgoing workspace webhooks. Requires manage webhooks (Owner / Admin) — Members and Viewers getNot authorized to manage webhooks. Other-workspace IDs return Webhook not found. / Webhook log not found. Conceptual guide: Webhooks. REST: GET /webhooks.
Signing: HMAC-SHA256 of the raw JSON body; hex digest in X-Webhook-Signature. Secret format whsec_ + 32 characters.
Webhook object (list items omit the secret):
Per-platform meta (MCP)
platforms[].meta uses the same keys as the REST API. Full tables, limits, and examples: Per-platform meta.
Quick checklist for agents:
Enum-like fields are JSON strings. Send
"privacy_level": "PUBLIC_TO_EVERYONE", not an integer or a renamed value. Unknown meta keys are dropped.Notes
- Workspace scoping — every tool operates on the user’s currently-selected workspace. To act on a different workspace, switch it in the TryPost UI (or, for personal API tokens, create a new key in that workspace).
- Roles — Viewers are read-only. They cannot create/update/publish posts, list or get assets (
Not authorized to view assets.), or call compose helpers that gate on create-post permission — includinglist-pinterest-boards-toolandlist-discord-channels-tool(error:Not authorized to manage posts.). Owner, Admin, and Member can. Webhook tools require manage webhooks (Owner / Admin only) — Members and Viewers getNot authorized to manage webhooks.See Team. - Cross validation —
create-post-toolandupdate-post-toolreject mismatched combos (e.g.content_type=x_poston a LinkedIn account). Inactive social accounts are also rejected at validation time. - Destructive tools — operations that delete data, rotate secrets, or publish to the world (
publish-post-tool,delete-*,rotate-webhook-secret-tool) are markedIsDestructive, which lets the AI client (ChatGPT, Claude Desktop, etc.) prompt you for confirmation before executing. - Local-file uploads —
request-media-upload-toolreturns a single-use signed URL (default TTL 15 minutes).max_bytesis the video ceiling (default 1 GB); per-type caps are inmax_bytes_by_type(image / video / document). POST the file as multipart fieldmedia, then callattach-media-from-upload-toolwith the sameupload_token(optionalaltfor images). SeePOST /uploads/{token}. - Media alt text — image accessibility text lives on
media[].meta.alt_text, not onplatforms[].meta. Via MCP, set it withattach-media-from-url-tool(urls[].alt),attach-media-from-upload-tool(alt), orattach-existing-asset-tool(alt). Onattach-existing-asset-tool, omittingaltkeeps the library item’s existingalt_text. The REST create/update endpoints also acceptmedia[].meta.alt_textwhen hosting from URL. - No inline
media[]on MCP create/update — unlike RESTPOST/PUT /posts, the MCP create/update tools do not accept amediaarray. Always use the attach tools after create (attach-existing-asset-tool,attach-media-from-url-tool, or the signed-upload pair). - Asset Library reuse — prefer
list-assets-tool+attach-existing-asset-toolwhen the file is already in the workspace library. That path does not copy bytes; the post snapshot shares the library file path. Use the URL / signed-upload tools only for new files.

