Social publishing API · REST + MCP

Looking to wire up social? Let us save you a few months.

One API key. One publishing contract. One receipt per eligible connected destination. We handle provider OAuth, token refresh, media paths, retries, and normalized outcomes—so your app or agent can ship the feature.

First Free key: 7 days across every currently available publishing destination, up to 300 publishes. Then 2 platform types and 100 attempts monthly. No auto-charge.

POST /v1/publish
one request
{
  "text": "Shipping today.",
  "targets": ["bluesky", "twitter", "facebook"]
}
BS Blueskyprovider receipt · job_81c… ✓ published
X Xprovider receipt · job_81d… ✓ published
f Facebook Pageprovider receipt · job_81e… ✓ published
requested: 3 succeeded: 3 failed: 0

The solved problem

Native social integrations take months. They don’t have to.

Every provider has its own authorization, media rules, error shapes, rate limits, and review process. We turn that integration tax into one bounded contract.

OAuth

Stop building a token-management product.

Launch provider authorization from one connection flow and keep credentials behind the publishing boundary.

Provider differences

Send one shape. Get one normalized result model.

Fan out to as many as 20 connected targets while preserving provider-specific detail where it matters.

Operational truth

Know what actually happened.

Every target returns its own success or failure result. Durable jobs, posts, logs, and provider receipts stay visible.

Agent control

Give agents a narrow tool, not your social credentials.

The local MCP gateway exposes health, connections, providers, publishing, and receipt lookup through an API-key boundary.

Direct integrationsOne OAuth app and callback maze per provider
With Social FanoutOne connection layer and one API-key contract
Provider-specific media, retries, and error handling
Provider-aware adapters behind one publish request
“Did it post?” scattered across multiple dashboards
Per-target results, durable jobs, posts, and receipts
Your team maintains every integration forever
New approved destinations strengthen the same contract

Five-minute proof

Connect two destinations. Validate once. Publish when ready.

The guided setup gives you an API key, walks through provider connections, and lets you verify the exact request before a live post.

1 Create a free keyNo card and no automatic charge.
2 Connect destinationsUse the guided OAuth setup in the dashboard.
3 Validate the requestKeep dryRun true for the first check.
4 Publish deliberatelyRemove dryRun and keep the idempotency key.
shell · multi-target dry run REST
# after connecting Bluesky and X
curl https://socialfanout.com/v1/publish \
  -H "x-api-key: $SOCIAL_FANOUT_KEY" \
  -H "content-type: application/json" \
  -H "idempotency-key: launch-check-001" \
  -d '{
    "text": "Shipping today.",
    "targets": ["bluesky", "twitter"],
    "dryRun": true
  }'

Bare target names resolve through stored connections. You can also pass target objects to pin an account, Page, Board, subreddit, or provider-specific setting. A fan-out call accepts up to 20 targets.

Your agent can use the same publishing boundary.

Launch the local stdio MCP server with your Social Fanout key. It calls the hosted REST API underneath; it is not a hosted remote MCP endpoint.

fanout_health fanout_list_providers fanout_list_connections fanout_publish_post fanout_get_job
Agent setup →

Publishing V1 truth

What can publish now—and what is still waiting.

This is a publishing matrix. Comments, replies, and messages are separate provider scopes and are never used to make a publishing destination look more complete than it is.

Destination Publishing V1 Current boundary
X Available 100 text-only X posts per API key monthly; link-bearing posts use prepaid Link Packs.
LinkedIn Limited Member and Page publishing remain non-sellable until the app migration, Standard Tier approval, and an ordinary-customer receipt are verified.
TikTok Available Content Posting is approved; comments are a separate review lane.
Facebook Pages Available Page publishing is approved; comments and messages are separate scopes.
Bluesky Available Native publishing through a connected account.
Reddit Available Publishing is bounded by the authorized account and target community.
Discord Available Publishing through a configured, authorized destination.
Email Available Email delivery is exposed as a destination in the same publishing contract.
Instagram In review Standalone Instagram Publishing remains provider-review gated.
Threads In review Unlocks only after provider approval and production verification.
Pinterest Sandbox Trial writes create creator-visible Sandbox Pins; Standard access is pending.
YouTube Limited Upload code and quota exist; OAuth configuration, verification, and an external-account smoke test remain.

Availability depends on provider approval, requested scopes, account permissions, and upstream API health. Pending destinations do not enter the live publishing lane until approval and production verification are complete.

Receipts, not promises

The result is part of the product.

A request being accepted is not the same as a provider publishing it. Social Fanout keeps those states distinct.

1

Request receipt

Idempotency collapses a client retry into the first response instead of quietly duplicating the request.

2

Per-target outcome

One failed provider does not erase the truth about the targets that succeeded. Each result remains explicit.

3

Durable follow-through

Jobs, posts, logs, and provider receipts give your team or agent somewhere concrete to inspect and recover.

Prove it before you buy it

Start with the integration. Upgrade after the value moment.

No cold-sales loop and no card wall. Build the proof, inspect the receipts, then decide whether the working lane belongs in production.

Free proof

Free

$0 no card

  • One-time 7-day all-current-destination trial
  • Up to 300 publishes during the trial
  • Then 2 platform types and 100 attempts monthly
  • Guided key, connection, and first-publish setup
Start the free proof →

No automatic charge. Keep the Free key after the trial.

Developer FAQ

The questions we would ask before wiring this in.

Can one API request publish to multiple destinations?

Yes. POST /v1/publish accepts up to 20 targets and returns a result for every target plus requested, succeeded, and failed counts. Each target must be connected and available for publishing.

Can we build our own calendar or workflow?

Yes. The REST API and MCP tools are the product contract. The dashboard agenda and Post Flight Deck are optional reference clients for review, scheduling, receipts, and recovery.

Is the MCP server remote?

No. It is a local stdio gateway launched by your agent client. It uses your Social Fanout API key to call the hosted REST API.

Do pending providers count as available?

No. In review, Sandbox, and Limited are distinct statuses. Pending destinations unlock only after provider approval and a production verification pass.

How does X usage work?

Each API key includes 100 text-only X posts per UTC month. X posts containing links use prepaid Link Packs: 10 linked posts for $10. Failed provider calls do not consume the allowance or a credit.

Ship the proof

Give us one publish request. Keep the receipts.

Start free, connect two destinations, and validate the exact contract your app or agent will use. If it saves the months we think it will, keep Builder for $5.99 a month while your Ride or Die subscription stays active.