Platforms
PostFuze publishes to eleven networks through a single POST /api/v1/posts call. You write the post content once, list the accounts you want it to land on, and attach an optional per-platform config map for the network-specific options (a Pinterest board_id, a YouTube privacyStatus, an Instagram story flag, and so on). Each account becomes an independent target with its own status, so one post can succeed on X while it is still uploading to YouTube.
Supported networks
The platform value is the canonical identifier used everywhere in the API — in POST /social-networks, in the config map keys, and in each target's platform field. Note that Google Business uses the underscore form google_business.
| Platform | platform id | Post types | Char limit | First comment | Config fields |
|---|---|---|---|---|---|
| X (Twitter) | x | text, thread, image, video | 280 (free) / 25,000 (premium) | Yes | none |
linkedin | text, image, video, article (personal & org) | ~3,000 | Yes | none | |
instagram | photo, carousel (2–10), video / reel, story | 2,200 caption | Yes | publishAsStory | |
| TikTok | tiktok | video (direct post / inbox draft) | 2,200 caption | n/a | privacy_level, disable_comment, … |
| YouTube | youtube | video, Short | title 100 / desc 5,000 | n/a | isShort, privacyStatus, … |
facebook | text, image, video (Page) | not enforced | Yes | none | |
| Threads | threads | text, image, video, reply-thread | 500 | Yes | none |
| Bluesky | bluesky | text, image | 300 | Yes | none (app-password auth) |
pinterest | single-image, multi-image, video pin (no text-only) | title 100 / desc 800 | No | board_id (required), title, … | |
| Google Business | google_business | STANDARD, EVENT, OFFER | 1,500 | No | topicType, callToAction, … |
reddit | self (text), link, image | title 300 | Yes | subreddit (required), title, flair_id, … |
The per-platform config map
When a post fans out to accounts on different networks, the top-level config object is keyed by platformid. Each account's target picks up config[platform] as its own settings. Keys for platforms not in the post are simply ignored.
{
"content": "Launch day is here 🚀",
"accounts": ["acct_x_01", "acct_pin_01", "acct_yt_01"],
"config": {
"pinterest": { "board_id": "9876543210", "title": "Launch day", "link": "https://example.com" },
"youtube": { "isShort": true, "privacyStatus": "public", "categoryId": "22" }
}
}The X account in this example receives no config (it has no configurable fields), the Pinterest target reads config.pinterest, and the YouTube target reads config.youtube. See each platform page for its exact field table.
Media constraints at a glance
| Platform | Media | Notable limits |
|---|---|---|
| X | image, video | Bounded by your X API tier |
| photo, carousel, video / reel, story | Story video MP4/MOV 3–60s ≤100MB 9:16; business/creator only; 100 posts / 24h | |
| image, video | Image ≤10MB 100×100–4096×4096; video ≤4GB 1s–240min; media must be public HTTPS | |
| YouTube | video | MP4 recommended; ≤128GB / 12h; >15min needs a verified channel; resumable chunks |
| image, video | At least one media item required; public HTTPS images; video uses an async pipeline | |
| Google Business | photo, video | Public URLs only; media kind auto-detected from the file extension |
| Bluesky | image | Text and images |
Connecting an account
Before you can publish, bring your own OAuth app credentials with POST /social-networks, then start the hosted connect flow. Bluesky is the exception — it authenticates with a handle and an app password rather than OAuth. Each platform page below lists the OAuth scopes PostFuze requests.