Stop building a token-management product.
Launch provider authorization from one connection flow and keep credentials behind the publishing boundary.
Social publishing API · REST + MCP
One API key. One publishing contract. Per-destination results for eligible connected accounts. We handle connection setup, supported token refresh, provider-aware media paths, and recorded 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.
The solved problem
Every provider has its own authorization, media rules, error shapes, rate limits, and review process. We turn that integration tax into one bounded contract.
Launch provider authorization from one connection flow and keep credentials behind the publishing boundary.
Fan out to as many as 20 connected targets while preserving provider-specific detail where it matters.
Every target returns its own success or failure result. Durable jobs, posts, logs, and provider receipts stay visible.
The local MCP gateway exposes health, connections, providers, publishing, and receipt lookup through an API-key boundary.
First publishing check
The guided setup gives you an API key, walks through provider connections, and lets you verify the exact request before a live post.
dryRun true for the first check.
dryRun: false and use a new key for this live attempt.
# 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
}'
The validation key is only for this dry run. After approving the exact content and accounts, use a distinct live-attempt key; never reuse the validation key to publish. Keep the live key and body unchanged while checking its outcome. 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.
Launch the local stdio MCP server with your Social Fanout key. Or import the GPT Action into ChatGPT where Actions are available. Both call the hosted REST API underneath; neither turns the current local MCP server into a hosted remote MCP endpoint.
fanout_health
fanout_list_providers
fanout_list_connections
fanout_publish_post
fanout_get_job
Publishing V1 truth
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 members | Available | LinkedIn member publishing is available for eligible connected profiles, with periodic reconnect when LinkedIn does not issue refresh access. |
| LinkedIn Pages | Administered Pages | LinkedIn Page publishing works for Pages administered by the connected member under Development Tier, and refreshable Page connections renew on publish; Standard Tier review is pending for unrestricted customer Page access. LinkedIn uses the dashboard, REST API, or local MCP; the current ChatGPT Action excludes it. |
| 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. |
| Available | Publishing is bounded by the authorized account and target community. | |
| Discord | Available | Publishing through a configured, authorized destination. |
| Available | Email delivery is exposed as a destination in the same publishing contract. | |
| Available | Standalone image/Reel publishing is approved for eligible Professional accounts through Business Login for Instagram. | |
| Threads | Available | Text and image publishing is approved for eligible connected accounts. |
| Limited | Standard access and production OAuth/public-Board lookup are verified; final publishing verification remains pending. Publishing is immediate-only. | |
| YouTube | Limited | Required Google/YouTube reviews and publishing verification remain pending. |
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
A request being accepted is not the same as a provider publishing it. Social Fanout keeps those states distinct.
A cached successful response can be returned for the same key. Concurrent requests, partial fanout, and cache failures can still duplicate posts. Check receipts before retrying.
One failed provider does not erase the truth about the targets that succeeded. Each result remains explicit.
Jobs, posts, logs, and provider receipts give your team or agent somewhere concrete to inspect and recover.
Prove it before you buy it
No cold-sales loop and no card wall. Build the proof, inspect the receipts, then decide whether the working lane belongs in production.
$0 no card
No automatic charge. Keep the Free key after the trial.
$9.99 / month
Founder price stays locked while the subscription remains active. X link-bearing posts use separate Link Pack credits.
Developer FAQ
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.
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.
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.
No. Not available, In review, Sandbox, and Limited are distinct statuses. Pending destinations unlock only after provider approval and a production verification pass.
Each API key includes 100 text-only X posts per UTC month. X posts containing links use prepaid Link Packs: 40 linked posts for $10. Failed provider calls do not consume the allowance or a credit.
Ship the proof
Start free, connect two destinations, and validate the exact contract your app or agent will use. When the integration fits your workflow, choose Builder for $9.99 a month while that discounted subscription stays active.