approve_comment
ChatGPTApprove a reply waiting for approval on one of the profile's Threads posts, so it shows publicly. Threads only; to leave it unpublished use ignore_comment.
Upload-Post helps users publish, schedule, analyze, and manage social media posts from ChatGPT. It supports video, photo, text, and document publishing; scheduling and queue management; analytics; profile management; Instagram comments and DMs; browser-based media staging; and FFmpeg media processing across connected social platforms.
job_id.commentId (reply to a comment), postId, or postUrl (top-level). LinkedIn: postId=the post urn. Instagram requires commentId (replies only). TikTok always needs postId (the video id); add commentId on top of it to reply inside that thread. TikTok: Requires the 'comments' capability on the profile's TikTok account (see the capabilities array in list_users). It is granted at connection time, so an account connected earlier has to reconnect TikTok before this works.commentId. LinkedIn also requires postId (the post urn); TikTok needs only the commentId. TikTok: Requires the 'comments' capability on the profile's TikTok account (see the capabilities array in list_users). It is granted at connection time, so an account connected earlier has to reconnect TikTok before this works.title and caption rewrite the text for EVERY platform of the post; to change only some platforms, send platformContent instead, e.g. {"instagram":{"caption":"..."},"tiktok":{"caption":"..."}} — platforms not listed keep their text. First comments cannot be edited on a pending post.follower_demographics for the account's followers and engaged_audience_demographics for the accounts that engaged with its content.platform. Returns audience.countries / .cities / .ages / .genders, activity_by_hour (followers online per hour of the day — use it to pick posting times), followers_daily (total / new / lost), profile_actions and bio_description. It always returns benchmark_categories (the 25 values benchmark_category accepts), and when benchmark_category is set it adds a benchmark object with that niche's averages (engagement rate, likes, views, follower growth…) to compare the account against. The window is clamped by the server — at most 60 days, always ending before today — so a wider range is trimmed, not rejected; range in the response says which window was actually used. Requires the 'profile_analytics' capability on the profile's TikTok account (see the capabilities array in list_users).get_post_analytics; there is no background refresh, so captured_at is the last time that post was read live and a post never queried live will be absent. Unlike get_post_analytics it never hits the platforms, so it is not subject to the live analytics rate limit (100 requests / 5 minutes) — prefer it when scanning many posts or paging through a profile's history. Paginated: pass next_cursor from the response back as cursor until has_more is false.connect_url, ask them to tell you when they are done, then call list_users to confirm before publishing.download_ffmpeg_result to obtain the file.job_id. Use this for posts created with addToQueue or scheduledDate.pagination = { limit, next_cursor, has_more }; pass next_cursor back as cursor for the next page (the last page returns next_cursor null and has_more false).request_id.postId or postUrl.request_id. Poll this until status is 'success' or 'failed'.type, and one endpoint for every network, chosen with platform. type: 'hashtags' returns { hashtags: [{ name, view_count }] } — pick tags that actually have reach for a caption; type: 'keywords' returns { keywords: [...] }, what people really search around q, useful for the next video topic. Requires the 'profile_analytics' capability on the profile's TikTok account (see the capabilities array in list_users). Keyword suggestions need 'trend_search' instead, granted the same way.period for presets, or startDate/endDate for custom ranges.hidden: false. Works on TikTok, Facebook, Instagram, YouTube and Threads. TikTok and YouTube need the postId the comment belongs to. To delete a comment use delete_comment. TikTok: Requires the 'comments' capability on the profile's TikTok account (see the capabilities array in list_users). It is granted at connection time, so an account connected earlier has to reconnect TikTok before this works.hidden: false.liked: false. Works on TikTok and Facebook. TikTok: Requires the 'comments' capability on the profile's TikTok account (see the capabilities array in list_users). It is granted at connection time, so an account connected earlier has to reconnect TikTok before this works.include_inactive is true.user) and check that the target platforms are connected; never invent a profile name. When the account has no profile, or the requested platform is not connected or needs reconnecting, the response carries next_step and connect_url: give the user that link, ask them to tell you when they have connected, and wait — do not try to publish meanwhile. The TikTok account object carries a capabilities array (music, location, cover_image, cover_timestamp, draft, photo_privacy, video_privacy, inbox_fallback, profile_analytics) telling which optional TikTok fields that connection accepts.mediaType: "photos" for images/carousels and "video" (default) for a video. The Studio lets the user select the file(s) in the browser, stages them in short-lived Upload-Post storage, and publishes them through Upload-Post; for photos it can also hand the staged media URLs back to you, in order, to pass to upload_photos (for example to set a different caption per platform). Reddit posting is currently unavailable (error_code=reddit_unavailable) until the Reddit app is restored. Do not use reddit as a publish target.pinned: false. TikTok only. TikTok: Requires the 'comments' capability on the profile's TikTok account (see the capabilities array in list_users). It is granted at connection time, so an account connected earlier has to reconnect TikTok before this works.nextSlot=true returns just the next available slot timestamp.requestId (async upload) or jobId (scheduled/queued upload).enabled: true. Existing comments are kept either way. Instagram only.include_inactive). For a temporary break use pause_autodm; to remove it entirely use delete_autodm.input_url for one input, or files for multiple public URLs. Optionally provide full_command beginning with ffmpeg for explicit trim/transcode/watermark/thumbnail commands. Returns a job_id you can poll with get_ffmpeg_job.location_id as tiktokLocationId and location_name as tiktokLocationName in upload_video's platformOptions. Available on TikTok connections that declare the location capability (see capabilities on the TikTok account in list_users).id as tiktokMusicId in upload_video's platformOptions (not commercial_music_id, which TikTok rejects on public posts). IMPORTANT: TikTok has no music search endpoint, so this searches the trending charts Upload-Post caches per genre/country/period, NOT TikTok's whole catalogue — a song that is not trending in the chart you query will not be found; widening the search means trying another genre, country or period. Matching is case- and accent-insensitive and every word must match. Available on TikTok connections that declare the music capability (see capabilities on the TikTok account in list_users).id as tiktokMusicId in upload_video's platformOptions (not commercial_music_id, which TikTok rejects on public posts). Available on TikTok connections that declare the music capability (see capabilities on the TikTok account in list_users).tiktokPrivacyLevel: TikTok narrows the four privacy values per account (a private account has no PUBLIC_TO_EVERYONE), and sending one the account does not have fails the upload with error_code tiktok_privacy_unavailable. Returns privacy_level_options plus the account's max video duration and its comment/duet/stitch switches.photosPathsOrUrls may be a public URL or a local path. Reddit posting is currently unavailable (error_code=reddit_unavailable) until the Reddit app is restored. Do not use reddit as a publish target.linkUrl (or platform-specific *LinkUrl) attaches a link preview where supported. Reddit posting is currently unavailable (error_code=reddit_unavailable) until the Reddit app is restored. Do not use reddit as a publish target.videoPathOrUrl only for public/signed HTTPS URLs, or for absolute local paths when the MCP server runs on the same machine as the file. A hosted MCP server cannot publish attached files passed as /mnt/data, sandbox, or other mounted local paths; for those files, ALWAYS call open_upload_studio first so the browser stages the video, then publishes it. videoBase64 is only for clients that can provide raw bytes directly and is capped by UPLOAD_POST_MAX_INLINE_MB (default 100). Returns a request_id you can poll with get_status. Supports per-platform overrides (tiktokPrivacyLevel, youtubePrivacyStatus, youtubePlaylistId, youtubeThumbnailUrl, youtubeTags, facebookPageId, instagramMediaType, etc.).generate_jwt.Click any prompt to copy it.