A lightweight agenda is included.
Publish now, schedule in local time, watch provider acceptance become a terminal receipt, and recover the work that actually needs attention.
Connect each account once. After that, a single POST fans your video out to all of them — with per-platform receipts, retries, and scheduling built in.
Skip the twelve OAuth reviews, token storage, and per-network publish contracts. One key, one call, done.
Give an agent auditable posting over MCP or REST instead of raw platform credentials. Every action logged and reversible at the key.
Onboard a client's accounts in minutes, publish across every available channel, and keep receipts, logs, and limits in one place.
The dashboard is a ready-to-use reference client over the same durable scheduling, receipt, REST, webhook, and MCP contracts your own product can call.
Publish now, schedule in local time, watch provider acceptance become a terminal receipt, and recover the work that actually needs attention.
Put Social Fanout behind your own calendar, agent, approval flow, or customer-facing product. REST and MCP return the same durable job and provider receipts as the included agenda.
# REST or fanout_publish_post over MCP { "platform": "linkedin", "accountId": "connection_…", "text": "Ship from your workflow.", "scheduledAt": "2026-08-03T19:00:00Z" } # → scheduled job → terminal receipt
Two lines and a POST and I'm live on a
dozen networks from my own app — no SDKs, no token storage, no OAuth
babysitting. I wired it in in an afternoon.
I got my afternoons back. The same post goes out to six networks in one call — no exporting, no re-uploading, no five-tab juggling.
We launch a campaign and it's live everywhere from one call — no more copy-paste across five dashboards. The per-network receipts mean I finally know exactly what shipped.
From the team building and dogfooding Social Fanout, shown by role — customer stories land here as the beta grows.
Shipping "post to social" sounds like a weekend feature. Then you meet twelve OAuth reviews, twelve token stores, twelve media-upload quirks, and twelve ways to fail in production.
Sign up free, no credit card. Your dashboard key works against the REST API and the local MCP server immediately.
$ export KEY=spk_live_…
One redirect per platform. We store and refresh tokens server-side — your code never touches raw platform credentials.
GET /v1/connect/x → ✓ linked
One POST /v1/publish with one payload shape fans out to every connected target and returns per-platform receipts.
POST /v1/publish → 4/4 ✓
// One key. Every platform. One call. const res = await fetch('https://socialfanout.com/v1/publish', { method: 'POST', headers: { 'Authorization': `Bearer ${API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ text: 'Shipping something great today.', targets: ['x', 'linkedin', 'bluesky', 'instagram'] }) }); const { results, summary } = await res.json(); // summary → { requested: 4, succeeded: 4, failed: 0 }
Send one POST /v1/publish with a targets array — up to
20 — and get a per-target receipt plus a roll-up summary. No loops, no five-tab
juggling.
{
"text": "Shipping today 🚀",
"targets": [
"x", "linkedin",
"bluesky", "instagram",
"threads", "discord"
]
}
summary → 0/6 succeeded · 0 failed · one
receipt per target
POST /v1/publish takes one payload shape
— text, images, or video — the same request whether
you target one network or all twelve. No platform SDK maze, no
per-network rewrites.
Every publish returns a jobId and a
receipt per target — so a failure tells you which network and why.
One redirect to connect. Tokens stored and refreshed server-side — your code never holds raw credentials.
Point Claude or any agent at the MCP server — same key, gateway, and audit log. Zero raw tokens in the agent.
One contract across every network your audience actually uses.
Drop the publish API and MCP server into your own app or agent and ship it as your own — no sales call, no closed waitlist. Run it on your infra or let us host it, same code, same contract.
Every plan includes the REST API and local MCP access. Keys provision automatically and enforce platform-type and monthly publish limits. Platform availability depends on provider approval and account permissions. X has an additional provider-cost allowance: 100 text-only X posts per UTC month are included; linked X posts use prepaid Link Packs (10 for $10).
Facebook and Instagram count as separate platform types. A publish is one attempted post to one destination platform. Plan-wide publish limits still apply. X is additionally limited to 100 included text-only posts per API key per UTC month; an X post containing a link uses one prepaid Link Pack credit (10 linked posts for $10). Failed provider attempts do not consume an X allowance or credit. Platform availability depends on provider approval, account permissions, app review status, and upstream API health.
No. You connect each account with a standard OAuth redirect. Tokens are stored encrypted and refreshed server-side. Your app and your agents never touch raw platform credentials — they only ever use your Social Fanout API key.
Yes. Nothing posts without an explicit POST /v1/publish
call. Every publish returns a jobId and a per-platform
receipt, and the dashboard logs every attempt with its status and
provider error.
We support twelve destination types on one contract: Instagram, X, LinkedIn, TikTok, YouTube, Facebook, Pinterest, Bluesky, Threads, Reddit, Discord, and Email (SMS via Twilio is shipping soon). We don't claim all twelve are publishing for everyone today — each goes live for your account as that provider's approval and your account's permissions allow. Facebook Page and TikTok publishing are approved, and Meta Tech Provider verification is complete. Instagram and Threads publishing are implemented and their separate provider reviews are in progress. Facebook Comments and Facebook Messages remain in independent least-privilege review lanes. The dedicated TikTok Comments app is rejected, and its Accounts API application/video still need a corrected submission. Pinterest Trial can create creator-visible Sandbox Pins, while public production Pins await Standard access. YouTube upload code and quota exist, but its OAuth scopes and branding still require configuration, verification, and an external-account upload smoke test. The dashboard shows conservative provider-level readiness; each account's scopes still need a live connection check.
Both, on the same key and the same logs. Call /v1/publish
from your app, or wire the local MCP server into agent clients.
Production is hosted on Railway with CI deploys and a public health
check, and you can run your own instance.
One attempted post to one destination platform. Plans cap your monthly publish attempts and how many platform types you can target. Facebook and Instagram count as separate platform types.
Grab a free key, connect an account, and fan your first post out to every network your audience lives on — in the next two minutes.
New providers, approval milestones, AI-agent examples, and early customer notes. The list for people building on socialfanout.com as the surface expands.