Live API · 12 destination types

Stop integrating social APIs
one by one.

the same call posts to  Instagram

Social Fanout is the social-publishing API for apps and AI agents. Connect an account once, then one authenticated call ships your post to X, LinkedIn, Instagram, TikTok, YouTube, Bluesky and more — no SDK maze, no OAuth hell, no per-platform rewrites.

Free tier, no credit card Live in 2 minutes Self-hostable
publish.sh
→ fanning out…
4 succeeded · 0 failed · ⚡ 1.2s
12 destination types supported One REST + MCP contract OAuth handled server-side Hosted or self-hostable
One contract — every network your audience lives on
Instagram X / Twitter LinkedIn TikTok · in review YouTube Facebook Pinterest · limited Bluesky Threads Reddit Discord Email
The problem
Every platform is a different API.
That's the whole problem.

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.

Separate OAuth app review per platform Token storage & refresh, forever Different media/upload flow each Per-network rate limits & errors Rewrites every time an API changes
From zero to fanned-out in three steps.
1

Get your API key

Sign up free, no credit card. Your dashboard key works against the REST API and the local MCP server immediately.

$ export KEY=sf_live_…
2

Connect an account once

One redirect per platform. We store and refresh tokens server-side — your code never touches raw platform credentials.

GET /v1/connect/x → ✓ linked
3

Publish everywhere

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 payload. Every target. Real receipts.
publish.js
// 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 }
The boring, hard parts — already solved.
One contract

Write the publish once. Hit anything.

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.

POST /v1/publish x linkedin bluesky instagram
Receipts

Know exactly what landed.

Every publish returns a jobId and a receipt per target — so a failure tells you which network and why.

x.com 210ms
linkedin 340ms
tiktok retry
Auth

OAuth + tokens, handled.

One redirect to connect. Tokens stored and refreshed server-side — your code never holds raw credentials.

connect 🔒 stored ♻ refreshed
Agents

Agent-ready over MCP.

Point Claude or any agent at the MCP server — same key, gateway, and audit log. Zero raw tokens in the agent.

publish connect status providers
Reach

12 destination types.

One contract across every network your audience actually uses.

TikTok & Pinterest in review · SMS soon
Infra

Hosted for you — or self-host it.

Production runs on Railway with CI-backed deploys and a public health check. Use the hosted API or run your own instance, same code.

Railway CI deploys GET /health → 200 self-host ready
Three kinds of builders, one publishing backend.
⚙️
Indie builders & vibe coders
Ship it this afternoon — not next quarter.

Skip the twelve OAuth reviews, token storage, and per-network publish contracts. One key, one call, done.

🤝
AI agents & automations
One safe gateway. Zero raw tokens.

Give an agent auditable posting over MCP or REST instead of raw platform credentials. Every action logged and reversible at the key.

🏢
Agencies & operator teams
Connect once. Publish everywhere.

Onboard a client's accounts in minutes, publish across every available channel, and keep receipts, logs, and limits in one place.

We built the thing we were tired of rebuilding.
I'd wired the same twelve OAuth flows one too many times. The whole point of Social Fanout is you write the publish once and never think about a platform API again.
MM Mark M.
Founder · Social Fanout
The per-platform receipts are the part I'm proudest of. When a post fails you get the exact provider error back — not a shrug. That's the line between a toy and real infrastructure.
RC Ryan C.
Founding Engineer · Social Fanout
We pointed a Claude agent at the MCP server and it just published — to six networks, full audit trail, zero raw tokens. That's the workflow we want every builder to have.
SB Sarah B.
Product · Social Fanout

Straight from the team building it — customer stories land here as the beta rolls out.

Pricing
Start free. Pay when you publish for real.

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.

Free
$0/mo
For testing the API.
  • 2 platform types
  • 100 publishes/month
  • REST API + local MCP
  • Dashboard logs
Get your free key
Starter
$10/mo
For small automations.
  • 4 platform types
  • 1,000 publishes/month
  • REST API + local MCP
  • Dashboard logs
Choose Starter
Pro
$49/mo
For apps and small teams.
  • All 12 destination types
  • 10,000 publishes/month
  • In-place upgrades + 7-day grace
  • Priority support
Go Pro
Scale
Custom
For platforms, agencies & high-volume agents.
  • Custom publish volume
  • Dedicated usage limits
  • Security review
  • Guided onboarding
Talk to us

Facebook and Instagram count as separate platform types. A publish is one attempted post to one destination platform. Platform availability depends on provider approval, account permissions, app review status, and upstream API health.

The questions developers actually ask.
Do I have to hand over platform passwords or tokens?

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.

Can I see and control exactly what gets posted?

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.

Which platforms are actually live right now?

Twelve destination types share one contract: Instagram, X, LinkedIn, TikTok, YouTube, Facebook, Pinterest, Bluesky, Threads, Reddit, Discord, and Email (SMS via Twilio is shipping soon). Each goes live for your account as its provider approval and your permissions allow. Right now TikTok is in app review (posts land on your connected test account until approved) and Pinterest is in limited/trial access (reads work; pin-writes are gated). The dashboard shows live status per connection, so you always know before you publish.

REST or MCP — and can I self-host?

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.

What counts as a "publish"?

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.

Stop wiring 12 social APIs.
Ship one.

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.

Free tier, no credit card Live in 2 minutes Self-hostable

Get the useful pings, not the noise.

New providers, approval milestones, AI-agent examples, and early customer notes. The list for people building on socialfanout.com as the surface expands.

Product updates only. Unsubscribe any time by replying to an email or contacting hello@socialfanout.com.