Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "post_to_social" and "schedule_post"
⟨628 unchanged words⟩ by YouTube.","type":"string"},"upload_method":{"description":"TikTok only, videos only: the \"upload method\" editors use so TikTok leaves the file as exported. PostWire rewrites the MP4 header on the way to TikTok (nothing is re-encoded, no size limit beyond the usual 1 GB). max is the usual choice; safe changes the header only. Off unless given.","enum":["max","safe"],"type":"string"},"video_url":{"description":"Public https URL of ⟨19 unchanged words⟩
⟨424 unchanged words⟩ by YouTube.","type":"string"},"upload_method":{"description":"TikTok only, videos only: the \"upload method\" editors use so TikTok leaves the file as exported. PostWire rewrites the MP4 header on the way to TikTok (nothing is re-encoded, no size limit beyond the usual 1 GB). max is the usual choice; safe changes the header only. Off unless given.","enum":["max","safe"],"type":"string"},"video_url":{"description":"Public https URL of ⟨21 unchanged words⟩
Authorization not required, issuer https://postwire.io
Added "check_video_quality" (21 tools before, 22 now)
Check how TikTok will treat a video before posting it — Reads the header of a video file at a public https URL (an upload's media_url works) and says what TikTok will do with it: codec and profile, width x height, fps, average bitrate (kbps), duration, HDR/10-bit, audio codec, and a verdict — keeps_quality (TikTok leaves it looking the same), recompressed (TikTok visibly re-encodes it: HEVC/AV1, HDR or 10-bit, above 1080x1920, above 30 fps, above 16 Mbps) or unknown (the header could not be read). advice lists what to change and message_for_user is one sentence with the export settings TikTok leaves almost untouched (1080x1920, H.264 High, 30 fps,…
Certificate changed, valid to 2027-01-15
Authorization not required, issuer https://postwire.io
Changed the definition of "bulk_schedule", "create_recurring_post", "generate_posts" and 3 more
{"destructiveHint":truefalse,"idempotentHint":false,"openWorldHint":true,"readOnlyHint" ⟨10 unchanged words⟩
{"destructiveHint":truefalse,"idempotentHint":false,"openWorldHint":true,"readOnlyHint" ⟨7 unchanged words⟩
Authorization not required, issuer https://postwire.io
Authorization not required, issuer https://postwire.io
Authorization not required, issuer https://postwire.io
Changed the definition of "my_account" and "post_to_social"
⟨159 unchanged words⟩ has not had a trial gets trial_offer:7ProdaysnowofwithProthefree,firstwithmontha50%cardoffcollected("Getat
Changed the definition of "bulk_schedule", "create_connect_link", "create_recurring_post" and 12 more
⟨60 unchanged words⟩ or document: prefix), alt_text, first_comment (LinkedIn, Bluesky, Mastodon), x_reply and x_thread (X), title, ⟨162 unchanged words⟩
⟨32 unchanged words⟩ telegram","bluesky","mastodon","discord","wordpress","devto","hashnode","slack","nostr","tiktok","youtube","reddit","linkedin"," ⟨7 unchanged words⟩
Changed the definition of "create_connect_link"
⟨77 unchanged words⟩ brand_id the accounts are connected to that brand. Instagram opens with Log in with Instagram (a Business or Creator account, no Facebook Page needed), and the page also offers connecting through a Facebook Page. Returns the url of that page and message_for_user: ⟨9 unchanged words⟩
Authorization not required, issuer https://postwire.io
Changed the definition of "create_upload_link" and "make_video_from_text"
⟨36 unchanged words⟩ videos upload in parts automatically). The fileis keptstays in the account's PostWire media storageforwhile30adays.scheduled post needs it, is deleted the day after that post is published, and 7 days after upload if no scheduled post uses it (so post or schedule it soon). A file attached to a chat does not ⟨33 unchanged words⟩
Changed the definition of "my_account" and "post_to_social"
⟨111 unchanged words⟩ and message_for_user: one plain sentence for the person. A free account that has not had a trial gets trial_offer: 7 days of Pro free, with a card collected at checkout and nothing charged that day, its terms in one sentence and its link; a trial that is running is described in trial.
⟨267 unchanged words⟩ not had one, a link to a3-day7-day free trial of Pro (trial_offer: a card is collected at checkout and nothing is charged that day). Such an account also gets the trial ⟨281 unchanged words⟩
Added "bulk_schedule" and "create_recurring_post"; changed the definition of "get_upgrade_link" (19 tools before, 21 now)
{"additionalProperties":false,"properties":{"interval":{"description":"Billing period of the link: month (default) or year (20% off, billed once a year).","enum":["month","year"],"type":"string"},"plan":{"description":"Plan to check out. ⟨15 unchanged words⟩
Schedule many posts at once (CSV or rows) — Checks, and on request schedules, many posts at once: a CSV file's text (csv) or a list of rows (rows), each row one post with the columns date ("2026-10-12 09:00" in the row's or the upload's timezone, an ISO time with offset, or "next_slot"), networks ("linkedin, x"), text, optional text_<network> (each network its own text), media_urls (https links; video: or document: prefix), alt_text, first_comment (LinkedIn), x_reply and x_thread (X), title, brand and label. dry_run defaults to true: nothing is scheduled and the result lists, for every row, the time it would go out, its networks, each …
Changed the definition of "get_x_credits", "post_to_social" and "schedule_post"
⟨113 unchanged words⟩ also returns how many credits that post woulduse.use (with thread or reply: the whole chain).
⟨13 unchanged words⟩ "minimum":0,"type":"integer"},"reply":{"description":"Optional: a reply under the post (or the thread), priced with it.","maxLength":1000,"type":"string"},"text":{"description":"Optional: an X ⟨5 unchanged words⟩ it.","maxLength":4000,"type":"string"},"thread":{"description":"Optional: the posts of a thread after text, to price the whole thread.","items":{"maxLength":1000,"type":"string"},"maxItems":25,"type":"array"},"video":{"description":"Optional: ⟨10 unchanged words⟩
Added "get_x_credits"; changed the definition of "cancel_scheduled_post", "create_connect_link", "generate_posts" and 7 more (18 tools before, 19 now)
Cancels a queued or held post, or withdraws one waiting for approval, so it is neverpublished.published (a withdrawn post's approval links stop working). Only works before it starts publishing. Takes the ⟨5 unchanged words⟩
⟨38 unchanged words⟩ ,"reddit","linkedin","facebook","instagram","x"],"type":"string"}},"type":"object"}
Added "make_video_from_text"; changed the definition of "get_post_performance" (17 tools before, 18 now)
Showwhichwhat works: best posts,performedtimesbestand patterns
Returns what the account's own numbers say works, over the last 90 days, computed from the numbers each network reports (no estimates): the published posts ranked against the median of the same social account on the same networkover the last 90 days: for,
Changed the definition of "create_connect_link", "create_upload_link", "my_account" and 2 more
Creates a one-hour link the user opens in a browser to connectasocialaccountaccounts (TikTok, Instagram, YouTube, Facebook Pages, LinkedIn, Bluesky…) to their PostWireaccount.account: the page shows each network as a button, signs in to it on the network's own page, and then offers the next one, so several networks can be connected from one link. Nothing is connected until the user completes it on the page. With platform the page offers only that network; with brand_id theaccountaccountsisare connected to that brand. Returns the url of thatpage.
Added "get_post_performance" and "replicate_top_post"; changed the definition of "schedule_post" (15 tools before, 17 now)
⟨13 unchanged words⟩ with timezone, up to 365 days ahead), or in the brand's next free queue slot (run_at "next_slot": the earliest weekly slot all its platforms share that no other waiting post of the brand uses; the result gives the time chosen) through the connected accounts. Takes the same content ⟨162 unchanged words⟩
⟨268 unchanged words⟩ ,"run_at":{"description":"When to publish,: ISO 8601 with offset, e.g. \"2026-10-01T09:00:00-05:00\".","formator \":next_slot\
Changed the definition of "get_upgrade_link", "my_account", "plan_week" and 2 more
⟨13 unchanged words⟩ a month, brands, AI drafts a day, networks per post, scheduled posts at a time), the account's current plan, and a ⟨50 unchanged words⟩
⟨11 unchanged words⟩ (posts this month, brands, AI drafts today, networks per post, scheduled posts waiting), brands, and which social accounts are ⟨33 unchanged words⟩ it, its monthly price and a checkout link. On the free plan it also includes insights_teaser: how many What works patterns are ready and how strong they are. When no social account is connected, it
Authorization not required, issuer https://postwire.io
Changed the definition of "post_to_social" and "schedule_post"
⟨256 unchanged words⟩ :"array"},"privacy":{"description":"YouTubeWhovisibility.canDefaultsee the TikTok and YouTube posts: public, unlisted (YouTube), friends (TikTok mutual followers) or private. Without it a TikTok post goes out private (only theplatform'saccountdefault.owner sees it) and YouTube uses the channel default — send \"public\" to publish publicly.","enum":["public","unlisted","friends","private"],"type":"string"}, ⟨48 unchanged words⟩
Certificate recorded, valid to 2026-11-15
Authorization not required, issuer https://postwire.io
Changed the definition of "create_connect_link", "create_upload_link", "generate_posts" and 4 more
⟨38 unchanged words⟩ ,"reddit","linkedin","facebook","instagram","x"],"type":"string"}},"type":"object"}
⟨27 unchanged words⟩ , MP4, MOV or WebM, up to501MBGB; big videos upload in parts automatically). The file is kept in the account's ⟨18 unchanged words⟩
Changed the definition of "get_post_status" and "list_scheduled_posts"
⟨34 unchanged words⟩ the public link once there is one. For an Instagram video returned as "processing", pass the id it returned: the answer is processing, published (with its id and link) or failed (with the reason). For networks that publish immediately it returns status "published ⟨20 unchanged words⟩
Lists the account's scheduled posts (queued, publishing, processing = sent and Instagram is still processing the video, done, failed or canceled) with their id, ⟨10 unchanged words⟩
Changed the definition of "post_to_social" and "schedule_post"
⟨61 unchanged words⟩ ), TikTok photo post (up to 35JPEG/WebPimages;imagesPNG is converted to JPEG automatically for Instagram and TikTok), Bluesky (up to 4 images), ⟨237 unchanged words⟩
⟨50 unchanged words⟩ ), TikTok photo post (up to 35JPEG/WebPimages;images
Unknown → Live
First tool surface recorded: 15 tools (server version 0.5.0)
https://postwire.io/api/mcp (mcp_streamable_http) — from mcp_registry
Showing the latest 32 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":truefalse,"title":"Write a native draft for each platform"}
{"destructiveHint":truefalse,"idempotentHint":false,"openWorldHint":true,"readOnlyHint" ⟨9 unchanged words⟩
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":truefalse,"title":"Draft new posts modelled on a top post"}
{"destructiveHint":truefalse,"idempotentHint":false,"openWorldHint":true,"readOnlyHint" ⟨5 unchanged words⟩
⟨305 unchanged words⟩ has not had one, a link toaPro7-daywithfreethetrialfirstofmonthPro50% off (trial_offer:a card is collectedpaidattoday,checkoutthenandthenothingregularismonthlychargedprice,thatcanceldayanytime). Such an account also gets the trial ⟨281 unchanged words⟩
⟨79 unchanged words⟩ telegram","bluesky","mastodon","discord","wordpress","devto","hashnode","slack","nostr","tiktok","youtube","reddit","linkedin"," ⟨226 unchanged words⟩
⟨66 unchanged words⟩ , and 7 days after upload if noscheduledpost uses it (2 days on the Free plan; so post or schedule it soon). A ⟨40 unchanged words⟩
⟨24 unchanged words⟩ for TikTok and Reels, link placement for LinkedIn, Slack formatting, plain text for Nostr). For the blogs (wordpress, devto, hashnode) the draft is a full article: title (<= 70 characters), summary (120-160 characters), a Markdown body with H2 sections, and 3-5 tags (Dev.to: 4). Nothing is published. Returns { drafts: { <platform>: { text, title?, tags?, summary?, thread?, first_comment? } } } and, if the writer skipped a platform, { missing: [...] }. thread (the posts after text) comes back when the user asks for a thread (X, Bluesky, Mastodon), or on Bluesky and Mastodon when the idea is too long for one post there; first_comment comes with it when the idea has a link (LinkedIn, X, Bluesky, Mastodon), so the link goes in the first comment. Counts toward the account's daily AI limit.
⟨58 unchanged words⟩ telegram","bluesky","mastodon","discord","wordpress","devto","hashnode","slack","nostr","tiktok","youtube","reddit","linkedin"," ⟨33 unchanged words⟩
⟨23 unchanged words⟩ telegram","bluesky","mastodon","discord","wordpress","devto","hashnode","slack","nostr","tiktok","youtube","reddit","linkedin"," ⟨27 unchanged words⟩
⟨67 unchanged words⟩ telegram","bluesky","mastodon","discord","wordpress","devto","hashnode","slack","nostr","tiktok","youtube","reddit","linkedin"," ⟨9 unchanged words⟩
⟨23 unchanged words⟩ its media_url (an https URL valid for246 hours, renewed when the post goes out, that works as video_url or photo_url), kind ⟨7 unchanged words⟩
Lists the social platforms and destinations PostWire can publish to and, for each, whether it connects with OAuth or withcredentials.credentials (fields, plus optional_fields), and kind "article" for the blogs (WordPress, Dev.to, Hashnode), where a post is an article with a title. Does not need a PostWire account.
⟨130 unchanged words⟩ , and 7 days after upload if noscheduledpost uses it (2 days on the Free plan; so post or schedule it soon). Returns media_url (an https URL valid for246 hours, renewed when the post goes out, that works as video_url), duration_s, text_on_video ⟨26 unchanged words⟩
⟨112 unchanged words⟩ message_for_user: one plain sentence for the person. While the account has not published anything yet, next_step.say_this is one exact sentence the person can say to get the first post out (for example: connect a network and post, or post a first video). A free account that has not had a ⟨36 unchanged words⟩
⟨80 unchanged words⟩ telegram","bluesky","mastodon","discord","wordpress","devto","hashnode","slack","nostr","tiktok","youtube","reddit","linkedin"," ⟨56 unchanged words⟩
⟨139 unchanged words⟩ the handle and brand each post went to. After the account's first post through this connection, next_step proposes a week of posts on the same topic for the text networks it went to (its topic and platforms); nothing is queued until the person asks for it. The plan sets how many networks one post ⟨426 unchanged words⟩
⟨174 unchanged words⟩ "per_platform":{"additionalProperties":{"properties":{"canonical_url":{"description":"Dev.to and Hashnode: where the article was first published.","format":"uri","type":"string"},"first_comment":{"description":"LinkedIn, X, Bluesky, Mastodon: the author's first comment, posted right after the post (under the last post of a thread) — where the link goes. Bluesky <= 300 characters, Mastodon <= 500, X <= 280 (an X post: it uses X credits), LinkedIn <= 1250. Other networks report it as not posted.","maxLength":1500,"type":"string"},"reply":{"description":"X only: the same as first_comment — one post under the last post of the ⟨4 unchanged words⟩ "maxLength":1000,"type":"string"},"status":{"description":"Blogs: publish now, or save a draft on the blog.","enum":["publish","draft"],"type":"string"},"summary":{"description":"Blogs: the article's excerpt / meta description.","maxLength":400,"type":"string"},"tags":{"items":{"type":"string" ⟨4 unchanged words⟩ "string"},"thread":{"description":"X,onlyBluesky, Mastodon: the posts of a thread after text, each a reply to the onebeforebefore.(X: max 25, each <= 280 as Xcountscounts. Bluesky: max 9 (10 posts in all)., each <= 300 characters. Mastodon: max 9, each <= 500 characters or the server's own limit. Each result lists every post's URL (thread.posts); if a later post is refused, the earlier ones stay published and thread.not_posted lists the rest.","items":{"maxLength":1000,"type" ⟨25 unchanged words⟩ ": [\"…\"] } }. X, Bluesky and Mastodon alsotakestake \"thread\" (the posts after text, in order, each a reply to the one before; media stays on the first post). LinkedIn, X, Bluesky and Mastodon take \"reply\first_comment\" (oneposted by the author right under the post, or under the lastone,poste.g.of a thread: the place for the link). X also calls it \"reply\". Pass the thread and first_comment that generate_posts returned as they are.","type":"object"},"photo_url":{" ⟨29 unchanged words⟩ :["telegram","bluesky","mastodon","discord","wordpress","devto","hashnode","slack","nostr","tiktok","youtube","reddit","linkedin ⟨115 unchanged words⟩
⟨27 unchanged words⟩ telegram","bluesky","mastodon","discord","wordpress","devto","hashnode","slack","nostr","tiktok","youtube","reddit","linkedin"," ⟨54 unchanged words⟩
⟨173 unchanged words⟩ "text\": \"…\" } }. X, Bluesky and Mastodon alsotakestake \"thread\": [\"…\"] (the posts aftertext,text; X max 25, Bluesky and Mastodon max 9 more, each within the network's limit). LinkedIn, X, Bluesky and Mastodon take \"reply\first_comment\": \"…\" (oneposted by the author under the post, or under the lastonepost of a thread: the place for the link; on X it is an X post and uses credits). X also calls it \"reply\".","type":"object"},"photo_url":{" ⟨19 unchanged words⟩ :["telegram","bluesky","mastodon","discord","wordpress","devto","hashnode","slack","nostr","tiktok","youtube","reddit","linkedin ⟨166 unchanged words⟩
⟨100 unchanged words⟩ is used and nothing is published. The fileis keptstays in the account's PostWire media storageforwhile30adays.scheduled post needs it, is deleted the day after that post is published, and 7 days after upload if no scheduled post uses it (so post or schedule it soon). Returns media_url (an https URL valid for ⟨34 unchanged words⟩
Set up a recurring post — Sets up a post that repeats on a schedule: daily, weekly on some weekdays, or monthly on some days of the month (31 falls on the last day of shorter months; -1 = the last day), every N days, weeks or months, at 1-4 times a day in a timezone (daylight saving handled), from a start date until an end date or for a number of times. variants (a list of texts) are used in turn, so the same text does not repeat every time. The duplicate guard (guard_days, default 3, 0 = off) skips a network where the same text went out in the last guard_days when an occurrence is published: networks flag repeated po…
⟨351 unchanged words⟩ and its result says how to get more. An X thread: per_platform.x.thread is the list of posts after per_platform.x.text (up to 25, each at most 280 characters as X counts them, a link counts 23); per_platform.x.reply is one more post under the last one, the usual place for a link. Each post of a thread or reply is an X post: it uses credits by the same rule and counts toward the daily X limit, and the whole chain is reserved before anything is sent. Write a thread only when the user asks for one. The X result then has thread.tweets (every post's id), thread_url, and thread.status: complete, or pending when X refused a later post (the first post stays published and PostWire retries the rest on its own). If the brand's approval rules or a limit ⟨77 unchanged words⟩
⟨174 unchanged words⟩ "per_platform":{"additionalProperties":{"properties":{"reply":{"description":"X only: one post under the last post of the chain, e.g. the link.","maxLength":1000,"type":"string"},"tags":{"items":{"type":"string" ⟨2 unchanged words⟩ ,"text":{"type":"string"},"thread":{"description":"X only: the posts of a thread after text, each a reply to the one before (max 25, each <= 280 as X counts).","items":{"maxLength":1000,"type":"string"},"maxItems":25,"type":"array"},"title":{"type":"string"}},"type ⟨14 unchanged words⟩ \"tags\": [\"…\"] } }. X also takes \"thread\" (the posts after text, in order) and \"reply\" (one post under the last one, e.g. the link).","type":"object"},"photo_url": ⟨152 unchanged words⟩
⟨275 unchanged words⟩ and its result says how to get more. An X thread: per_platform.x.thread is the list of posts after per_platform.x.text (up to 25, each at most 280 characters as X counts them, a link counts 23); per_platform.x.reply is one more post under the last one, the usual place for a link. Each post of a thread or reply is an X post: it uses credits by the same rule and counts toward the daily X limit, and the whole chain is reserved before anything is sent. Write a thread only when the user asks for one. The X result then has thread.tweets (every post's id), thread_url, and thread.status: complete, or pending when X refused a later post (the first post stays published and PostWire retries the rest on its own). If the brand's approval rules or a limit ⟨77 unchanged words⟩
⟨172 unchanged words⟩ \"text\": \"…\" } }. X also takes \"thread\": [\"…\"] (the posts after text, max 25) and \"reply\": \"…\" (one post under the last one).","type":"object"},"photo_url":{ ⟨193 unchanged words⟩
⟨64 unchanged words⟩ ,"reddit","linkedin","facebook","instagram","x"],"type":"string"},"minItems":1 ⟨26 unchanged words⟩
⟨29 unchanged words⟩ ,"reddit","linkedin","facebook","instagram","x"],"type":"string"},"timezone":{ ⟨21 unchanged words⟩
⟨13 unchanged words⟩ post id returned when it was published. For a post that is waiting for approval or scheduled, pass the id PostWire returned for it (platform can then be omitted): the status is pending_approval (with who was asked and the review link), rejected (with the reason), scheduled, or each network's result once it went out. For TikTok and YouTube it asks the platform for ⟨69 unchanged words⟩
⟨21 unchanged words⟩ id returned when it was published on thatplatform.platform, or the id PostWire returned for a post waiting for approval or scheduled.","type":"string"},"platform":{"description":"Platform of the post, e.g. \"tiktok\". Can be omitted for a post waiting for approval or scheduled.","enum":["telegram","bluesky"," ⟨4 unchanged words⟩ ,"reddit","linkedin","facebook","instagram","x"],"type":"string"}},"required":["platform","id"],"type":"object"}
Lists the account's scheduled posts (queued, held, pending_approval = waiting for a person to approve it, publishing, processing = sent and Instagram is still processing the video, done, failed, rejected = not approved, or canceled) with their id, time, ⟨9 unchanged words⟩
⟨181 unchanged words⟩ of them can be canceled before it runs. If the brand's approval rules or a limit on this API key or connected app hold the post, nothing is published: the result has status "pending_approval", the post's id and approval_id, who was notified and a review link, and the post goes out once a person approves it from the emailed link or the PostWire dashboard — an AI assistant or an API key cannot approve it. A limit on this key or app can also refuse a post with code key_network_not_allowed, key_brand_not_allowed or key_monthly_cap_reached.
⟨86 unchanged words⟩ ,"reddit","linkedin","facebook","instagram","x"],"type":"string"},"minItems":1 ⟨49 unchanged words⟩
⟨291 unchanged words⟩ post from an assistant, with a one-sentence trial_message. X (Twitter) is a pay-per-use add-on on paid plans: each X post uses X credits (1 for a plain post, 10 for a post with a link, +1 per image or video) from the plan's monthly X credits, then from top-up credits; a post without enough credits is not sent to X and its result says how to get more. If the brand's approval rules or a limit on this API key or connected app hold the post, nothing is published: the result has status "pending_approval", the post's id and approval_id, who was notified and a review link, and the post goes out once a person approves it from the emailed link or the PostWire dashboard — an AI assistant or an API key cannot approve it. A limit on this key or app can also refuse a post with code key_network_not_allowed, key_brand_not_allowed or key_monthly_cap_reached.
⟨247 unchanged words⟩ ,"reddit","linkedin","facebook","instagram","x"],"type":"string"},"minItems":1 ⟨108 unchanged words⟩
⟨33 unchanged words⟩ ,"reddit","linkedin","facebook","instagram","x"],"type":"string"},"minItems":1 ⟨47 unchanged words⟩
⟨215 unchanged words⟩ held post can be canceled before it runs. X (Twitter) is a pay-per-use add-on on paid plans: each X post uses X credits (1 for a plain post, 10 for a post with a link, +1 per image or video) from the plan's monthly X credits, then from top-up credits; a post without enough credits is not sent to X and its result says how to get more. If the brand's approval rules or a limit on this API key or connected app hold the post, nothing is published: the result has status "pending_approval", the post's id and approval_id, who was notified and a review link, and the post goes out once a person approves it from the emailed link or the PostWire dashboard — an AI assistant or an API key cannot approve it. A limit on this key or app can also refuse a post with code key_network_not_allowed, key_brand_not_allowed or key_monthly_cap_reached.
⟨205 unchanged words⟩ ,"reddit","linkedin","facebook","instagram","x"],"type":"string"},"minItems":1 ⟨159 unchanged words⟩
Show my X (Twitter) credits — Shows what posting to X (Twitter) costs this account and what it has left. X is a pay-per-use add-on of the paid plans (Starter, Pro, Agency, Scale; not Free, not during a trial): 1 X credit = 1 plain X post, a post with a link uses 10, each image or video adds 1. Returns mode (paid, free, trial or internal), the plan's monthly X credits, used and left, top-up credits, X posts today against the daily limit, the price table, the last movements, and links to buy top-up credits (80 credits for $5, 340 for $20; each opens a Stripe payment page, nothing is charged unless paid there). With text, it…
⟨5 unchanged words⟩ :false,"readOnlyHint":true,"title":"Showwhichwhat works: best posts,performedtimesbestand patterns"}
Make a short video from a post's words — Makes a short vertical video from the words of a post, for networks that take only video (YouTube) or video or photos (TikTok): an MP4 of 1080x1920, 8 to 12 seconds, H.264 with AAC sound. The first line appears as a large heading and up to two more sentences appear one after another over a softly moving plain background, with royalty-free background music or silence; an optional footer line (for example the brand's name) sits under the text. Emoji, links and trailing hashtags are left out and no PostWire mark is added. Draws Latin, Greek and Cyrillic text. No AI is used and nothing is publish…
⟨47 unchanged words⟩ the account's PostWire media storage for 30 days. A file attached to a chat does not reach PostWire; this page is how it gets there. Returns the page urland, an upload_id for checking the upload'sstatus.status, and message_for_user: one plain sentence telling the person what to open and do.
⟨96 unchanged words⟩ connected, it includes a one-hour link toconnectaone.page where several networks can be connected, and message_for_user: one plain sentence for the person.
⟨191 unchanged words⟩ ), listed in held_networks with a one-sentence held_message,toandrelaymessage_for_usertosays it in plain words for theuser;person; every network can still be connected and written for. TikTok and Instagram videos may still be processing when this returns (status processing, no url yet). When the networks-per-post or the monthly post limit ⟨10 unchanged words⟩ lifts it, its price and a checkoutlink.link, and, for a free account that has not had one, a link to a 3-day free trial (trial_offer). Such an account also gets the trial link once after its first post from an assistant, with a one-sentence trial_message.
⟨260 unchanged words⟩ can see the TikTok and YouTube posts: public (everyone), unlisted (YouTube), friends (TikTok mutual followers) orprivate. Without itprivatea(onlyTikTokthepostaccountgoesowner).outTikTokprivateasks(onlythat the account ownerseeschoose this for each TikTok post. Without it)andaYouTubeTikTokusespostthegoeschanneloutdefaultprivate—andsendYouTube\"public\"usestothepublishchannelpublicly.default.","enum":["public","unlisted"," ⟨52 unchanged words⟩
⟨218 unchanged words⟩ can see the TikTok and YouTube posts: public (everyone), unlisted (YouTube), friends (TikTok mutual followers) orprivate. Without itprivatea(onlyTikTokthepostaccountgoesowner).outTikTokprivateasks(onlythat the account ownerseeschoose this for each TikTok post. Without it)andaYouTubeTikTokusespostthegoeschanneloutdefaultprivate—andsendYouTube\"public\"usestothepublishchannelpublicly.default.","enum":["public","unlisted"," ⟨103 unchanged words⟩
Show which posts performed best — Returns the account's published posts ranked against the median of the same social account on the same network over the last 90 days: for each post its network, brand, link, excerpt, metric (views where the network reports them, otherwise likes + reposts + replies), value, that median, how many posts the median covers (n), and what the post had (format, first-line type, day and time, length, hashtags). Posts younger than 24 hours are not ranked. Networks or posts whose numbers cannot be read are listed with the reason. Depending on the account's plan it also returns patterns across all posts …
Draft new posts modelled on a top post — Writes new drafts, one per platform, that reuse the structure, opening type, length, format and tone of one of the account's published posts, on a new topic or a new angle; the reference post's sentences are not reused. Nothing is published or scheduled. Takes the id of a published post of the account (the ids that the account's post performance results list). Counts toward the account's daily AI limit. Available depending on the account's plan. Returns { drafts: { <platform>: { text, title?, tags? } }, reference }.
⟨60 unchanged words⟩ are refused. Every platform must already be connected.EachThedaywhole week counts as one AI draft toward the daily AI limit.DaysEvery day is written; days that do not fit in the plan's monthly post limit or in its scheduled-posts limit (Free: 3 waiting at a time) are saved as held (never published on the currentplanplan; each says held_for) and are scheduled automatically when the plan ⟨7 unchanged words⟩ that plan, its price and a checkout link. On a plan with a networks-per-post limit (Free: 2) each day goes out to the first platforms only, named in held_networks. Returns the queued and held items with their ⟨18 unchanged words⟩
⟨138 unchanged words⟩ name the handle and brand each post wentto;to.whenThe plan sets how many networks one post goes out to (Free: 2): only the first platforms in the list are published and each of the others comes back with ok: false, held: true and code networks_per_post (its version was written and not sent), listed in held_networks with a one-sentence held_message to relay to the user; every network can still be connected and written for. When the networks-per-post or the monthly post limit stops a platform, the result also names the plan thatraiseslifts it, its price and a checkout link.
⟨87 unchanged words⟩ the handle and brand it will publish to. The plan sets how many posts can wait in the queue at once (Free: 3): past that the post is not refused but saved as held (code queue_limit, status held) — kept, never published on the current plan, and scheduled automatically when the plan is upgraded; the result then also gives that plan, its price and a checkout link. On a plan with a networks-per-post limit (Free: 2) only the first platforms are published when it runs; the result names the others in held_networks. A queued or held post can be canceled before it runs.
Queues a post to be publishedpubliclyat a future time (run_at, ISO 8601 ⟨91 unchanged words⟩
⟨211 unchanged words⟩ "minItems":1,"type":"array"},"privacy":{"description":"Who can see the TikTok and YouTube posts: public, unlisted (YouTube), friends (TikTok mutual followers) or private. Without it a TikTok post goes out private (only the account owner sees it) and YouTube uses the channel default — send \"public\" to publish publicly.","enum":["public","unlisted","friends","private"],"type":"string"},"run_at":{"description":"When to publish, ⟨62 unchanged words⟩
⟨24 unchanged words⟩ for TikTok and Reels, link placement for LinkedInand X). Nothing is published. Returns { drafts: ⟨21 unchanged words⟩
⟨64 unchanged words⟩ ,"reddit","linkedin","facebook","instagram","x"],"type":"string"},"minItems":1 ⟨26 unchanged words⟩
⟨49 unchanged words⟩ ,"reddit","linkedin","facebook","instagram","x"],"type":"string"}},"required": ⟨4 unchanged words⟩
⟨86 unchanged words⟩ ,"reddit","linkedin","facebook","instagram","x"],"type":"string"},"minItems":1 ⟨49 unchanged words⟩
⟨247 unchanged words⟩ ,"reddit","linkedin","facebook","instagram","x"],"type":"string"},"minItems":1 ⟨64 unchanged words⟩
⟨205 unchanged words⟩ ,"reddit","linkedin","facebook","instagram","x"],"type":"string"},"minItems":1 ⟨69 unchanged words⟩