Skip to content
SocialHelper
Join waitlist
New Data tools for WordPress, WooCommerce, Ghost and more

Post to your social accounts from one API.

Connect Facebook, Instagram, X and more once. Then publish from your app with a single REST call, or let your AI agent post for you over MCP.

Free during early access No credit card 120 requests a minute per key

Works with the tools you build in

  • Claude Code
  • Cursor
  • VS Code
  • Lovable
  • Bolt
  • Replit
  • v0

Platforms

Dashboard and app

Rather not write code? Post from the dashboard.

Everything the API does, in a dashboard your whole team can use: write once, schedule it on a calendar, and share drafts and snippets.

Join the waitlist
socialhelper.app/posts/compose

New post

Fits everywhere

Post to

Fresh out of the oven: our cinnamon rolls are back for autumn 🍂 Get them warm from 7am, while they last.

Edit Add snippet
Tomorrow, 09:00 Schedule · 4

Checked before it’s sent

Write once. Fit everywhere.

Every platform counts text its own way. SocialHelper checks your post against each account before anything goes out, and if something doesn’t fit, nothing is posted. Try it: this box uses the same counting rules as the API.

0 characters typed
  • Facebook

    Text · counts Unicode characters

    0 / 63,206

  • Instagram

    Text · counts Unicode characters

    0 / 2,200

  • X

    Text · links count 23, emoji 2

    0 / 280

  • YouTube needs a video

    Video description · counts bytes: accents and emoji take more

    0 / 5,000

  • TikTok

    Caption · counts UTF-16 units: most emoji are 2

    0 / 2,200

  • LinkedIn

    Text · counts UTF-16 units: most emoji are 2

    0 / 3,000

  • Pinterest

    Text · counts Unicode characters

    0 / 800

  • Threads

    Text · each emoji counts its bytes

    0 / 500

  • Telegram

    Text · counts UTF-16 units: most emoji are 2

    0 / 4,096

  • Discord

    Text · counts Unicode characters

    0 / 2,000

  • Tumblr

    Text · counts Unicode characters

    0 / 100,000

  • Bluesky

    Text · counts what you see: one emoji is 1

    0 / 300

  • Mastodon

    Text · links count as 23, remote mentions as @name

    0 / 500

  • Google Business Profile

    Text · counts Unicode characters

    0 / 1,500

How it works

From zero to posted in three steps.

  1. 1

    Connect your accounts

    Sign in to each platform from the dashboard. Platforms that use an app password, bot token or webhook show you exactly where to find it.

  2. 2

    Create an API key

    Keys start with sh_ and are shown once. Keep yours on your server or in your builder’s secrets, never in browser code.

  3. 3

    Post with one request

    Send the text, any media and the account IDs. Publish now, or pass scheduled_at for later.

POST https://socialhelper.app/api/v1/posts
{  "text": "Fresh out of the oven: our cinnamon rolls are back for autumn 🍂 Get them warm from 7am, while they last.",  "accounts": [    "ACCOUNT_ID_1",    "ACCOUNT_ID_2"  ]}
Response 201 Created 184 ms 385 B
{  "id": "01K7Q2M8XV3D9TQZ6P4N1B5C8R",  "object": "post",  "status": "scheduled",  "source": "api",  "text": "Fresh out of the oven: our cinnamon rolls are back for autumn 🍂 Get them warm from 7am, while they last.",  "targets": [    {      "platform": "linkedin",      "status": "scheduled"    },    {      "platform": "bluesky",      "status": "scheduled"    }  ]}

Built for production

The hard parts, already done.

Every post from your code, your agent or the dashboard goes through one workflow, so the guarantees are the same everywhere.

Never posts twice

Retries only happen when nothing went out. When an outcome is unclear, SocialHelper checks the platform first where it can, and otherwise stops instead of risking a duplicate.

Idempotency keys

Repeat a request with the same key and you get the original post back.

POST · key 3b6f…201
POST · key 3b6f…200 · same post

Scheduling

Pass scheduled_at to publish up to 1 year ahead, and cancel any account that hasn’t started.

Media

Upload a file or import one from a URL: videos up to 1 GB, images up to 60 MB. Each platform’s limits decide what it accepts.

.jpg .png .webp .gif .mp4 .mov .webm

Status for every account

Each account in a post has its own status, live link or error, so one slow platform never hides the others.

scheduled queued publishing confirming published failed cancelled

Signed webhooks

Get an HMAC-signed event when a post is published, partly published, fails or is cancelled, and when an account needs reconnecting.

SocialHelper-Signature: t=1760140800,v1=5d1f9c…

platforms live today
20
MCP tools for agents
11
requests a minute per key
120
accounts in one post
50

MCP server

Your agent posts. You approve.

Connect ChatGPT, Claude or Gemini by signing in, or add SocialHelper to Claude Code, Cursor and other MCP clients with an API key. Your agent gets 11 tools, and the server tells it to confirm the text and accounts with you before it posts.

  • list_accounts
  • get_platform_rules
  • upload_media
  • validate_post
  • create_post
  • get_post
  • update_post
  • list_posts
  • cancel_post
  • list_account_tools
  • run_account_tool
claude mcp add --transport http socialhelper https://socialhelper.app/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"
socialhelper · connected
  1. Post “Fresh out of the oven: our cinnamon rolls are back for autumn 🍂 Get them warm from 7am, while they last.” to my LinkedIn and Bluesky.
  2. called list_accounts
  3. called get_platform_rules
  4. It fits both. I’ll post it to LinkedIn (Jane Doe) and Bluesky (@jane.dev). Go ahead?
  5. Yes, post it.
  6. called create_post
  7. called get_post
  8. Done. It’s live on both accounts, and here are the links.

For vibe coders

Give the app you’re building a Share button.

Keep your API key in your builder’s secrets and call SocialHelper from a server function, so the key never reaches the browser. Paste the prompt and let the builder wire it up.

Lovable
Key in Cloud → Secrets
Bolt
Key in Secrets
Replit
Key in Secrets
v0
Key in Vercel environment variables
prompt.txt

Add a “Share” button that posts the selected update to my social accounts. Create a server-side function that sends POST https://socialhelper.app/api/v1/posts with the header “Authorization: Bearer ” followed by the secret SOCIALHELPER_API_KEY, and a JSON body with “text” and “accounts”. Load the account IDs from GET https://socialhelper.app/api/v1/accounts. Never put the API key in client-side code.

The full guide for vibe coders

Pricing

Free during early access.

Every feature, no credit card. Paid plans with higher limits will come later, and you’ll get notice before you’re ever charged.

See pricing

FAQ

Questions developers ask first.

Something else? [email protected]

What is SocialHelper?

SocialHelper is a REST API and MCP server that lets developers, vibe coders and AI agents post to their own social accounts and pull marketing data from the tools they use, through one integration.

Which platforms can I post to?

Right now: Facebook, Instagram, X, YouTube, TikTok, LinkedIn, Pinterest, Threads, Telegram, Discord, Tumblr, Bluesky, Mastodon and Google Business Profile. LinkedIn Pages and Snapchat are coming soon. Data tools are available for Facebook, Instagram, YouTube, TikTok, Pinterest, Threads, Tumblr, WordPress, WooCommerce, Ghost, Google Search Console, Google Analytics, Google Ads and Google Business Profile.

Do I need my own developer app on every platform?

No. Facebook, Instagram, X, YouTube, TikTok, LinkedIn, Pinterest, Threads, Tumblr, Google Search Console, Google Analytics, Google Ads and Google Business Profile connect with a normal sign-in through SocialHelper’s own apps. Telegram, Discord, Bluesky, Mastodon, WordPress, WooCommerce and Ghost connect with a token, app password or webhook URL that you create on the platform, and the connect screen shows you where to find it.

Can my AI assistant post for me?

Yes. In ChatGPT, Claude or Gemini, add the MCP server at https://socialhelper.app/mcp as a custom connector and sign in; no API key needed. Claude Code, Cursor, VS Code and other MCP clients connect with an API key. Either way, the server asks the assistant to confirm the text and the accounts with you before it posts.

Can SocialHelper help me write posts?

Yes. The AI writer in the dashboard makes a post shorter or friendlier, fixes its spelling, adds hashtags, or drafts one from a short brief, and fits it to each platform’s character limit. It only suggests text: nothing changes or goes out until you choose to. Early access includes 100 AI writes a month per team.

Will a post ever go out twice?

SocialHelper only retries when nothing was published. If a platform’s answer is unclear, it checks the platform for the post first where that platform allows it, and otherwise marks the post as failed instead of risking a duplicate. An Idempotency-Key header also makes a repeated request return the original post.

Can the users of my app connect their own accounts?

Not yet. Accounts are connected by you and your team in the SocialHelper dashboard, and your API key posts to those accounts.

How much does it cost?

SocialHelper is free during early access. Paid plans with higher limits will come later, and you will get notice before you are ever charged.

Ship social posting today.

SocialHelper is invite-only during early access. Join the waitlist: the first 100 people to sign up get a Founding account with higher limits, free for 12 months.