approve_post
ChatGPTApprove or reject a single post that is under review with an optional comment.
create_post
ChatGPTCreate a draft, queued, scheduled, or immediately published social post in a ContentStudio workspace. This operation can make content externally visible on the selected social accounts and is non-idempotent. Required fields are workspace_id, text_content, publish_type, post_type, and either account IDs or a content category. scheduled_at is required for scheduled publishing. Optional fields support media, approvals, platform overrides, collaborators, polls, and first comments.
delete_post
ChatGPTDelete a post by ID
discover
ChatGPTSearch the long-tail operation map (171 operations) by keyword across the analytics, connections, inbox, organization toolsets. Returns matching operation names, HTTP methods, descriptions, and parameter summaries. Examples: discover({ query: "facebook top posts" }), discover({ query: "hide comment" }), discover({ toolset: "analytics" }) to browse everything in a toolset.
execute_read
ChatGPTRun a READ-ONLY operation from the discover map by name (e.g. an Analytics report). Get the operation name and its param shape from discover first — this refuses write operations. Example: execute_read({ operation: "facebook_analytics_summary", params: { workspace_id, platform_id, start_date, end_date } }).
execute_write
ChatGPTRun a WRITE operation from the discover map by name (e.g. an Inbox action — reply, hide, tag, merge). Get the operation name and its param shape from discover first — this refuses read-only operations. Destructive operations (discover reports destructive: true) delete or irreversibly change data — confirm with the user before calling those. Example: execute_write({ operation: "inbox_hide_comment", params: { workspace_id, comment_id } }).
fetch_approval_workflows
ChatGPTList the multi-level approval workflows configured for a workspace. Each workflow includes its id, name, default status, and level number, title, and rule; member identifiers are omitted. Use a workflow's id as approval_workflow.workflow_id when attaching it via create_post or update_post.
fetch_content_categories
ChatGPTGet content categories for a workspace. Use this when user wants to create a content category post. Categories contain pre-configured accounts.
fetch_media
ChatGPTList media assets (images, videos, GIFs) from a workspace's media library. Returns a paginated flat list (Laravel paginator metadata + a data array). Each media asset uses id. Use this to find media IDs/URLs to attach to posts. All filters are optional.
fetch_optimal_times
ChatGPTBest time to post: analyses the historical engagement of a workspace's connected accounts and returns the highest-scoring posting times, both pooled across accounts (global) and per account (individual). A "slot" is one recommended posting time — a weekday and an hour (e.g. Wednesday 14 = 2 PM on Wednesdays), not a specific date. Slots come back ranked best-first. The slot counts below only decide how many ranked results to return; they never change the analysis. Omit entities to analyse every connected account — that is the usual call. Times are always returned in the workspace timezone, echoed back as meta.timezone — there is no timezone parameter. Use this before create_post to pick a schedule time.
fetch_posts
ChatGPTList posts in a workspace with optional filters. Results include post content, publishing details, and privacy-minimized approval information when available.
fetch_social_accounts
ChatGPTGet workspace social accounts with optional platform filter and pagination
fetch_workspaces
ChatGPTGet user workspaces with pagination
list_facebook_text_backgrounds
ChatGPTList the Facebook colored-background presets available for text-only posts. Call this before create_post when the user asks for a "colored background", "red background", "gradient background", etc. on a Facebook post. Pick a preset whose description matches the user's intent and pass its id as facebook_background_id to create_post. Each preset has: id, type (solid/gradient/image), background_color (CSS value), color (text color), description, category. ⚠️ Backgrounds only apply to plain text posts — if images or video are attached, create_post will reject the request.
ping
ChatGPTResponds with pong
update_post
ChatGPTUpdate an existing post by replacing its editable post body. The request uses the create_post body fields plus post_id. Posts with published or processing status cannot be updated; the API returns a validation error for those states. Approval configuration supports either the legacy approvers fields or approval_workflow. The workflow object accepts workflow_id when attaching a workflow, or workflow_action when acting on an existing workflow. These fields are mutually exclusive. The response contains the post id, an optional post URL, and an optional warning.
upload_media
ChatGPTImport an image, video, or GIF from a publicly reachable URL into a ContentStudio workspace media library. Creates a new asset and can optionally place it in an existing media folder.
validate_token
ChatGPTCheck whether the connected ContentStudio account is authenticated. Returns only authentication status.