Post to Mastodon from one API.
Publish to Mastodon from your app with one REST call, or let your AI agent do it over MCP. SocialHelper checks every post against Mastodon’s limits before it goes out.
What you can post
Mastodon limits.
These are the limits the API enforces for Mastodon, read straight from the code. Every post is checked against them before anything is sent.
- Text
- 500 characters as people see them (an emoji counts once)
- Images
- Up to 4 per post · JPEG, PNG, GIF, WEBP · 16 MB each
- Video
- Not supported
Post with one request
Your first Mastodon post.
Send the text and the account ID. Add an Idempotency-Key so a retried request never posts twice. The response lists each account with its own status and, once it’s live, the post’s URL.
curl https://socialhelper.app/api/v1/posts \
-H "Authorization: Bearer $SOCIALHELPER_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"text": "We just shipped dark mode. Try it tonight 🌙",
"accounts": [
"ACCOUNT_ID"
]
}'
const response = await fetch("https://socialhelper.app/api/v1/posts", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SOCIALHELPER_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"text": "We just shipped dark mode. Try it tonight 🌙",
"accounts": [
"ACCOUNT_ID"
]
}),
});
const { data: post } = await response.json();
console.log(post.status, post.targets);
import os, uuid, requests
response = requests.post(
"https://socialhelper.app/api/v1/posts",
headers={
"Authorization": f"Bearer {os.environ['SOCIALHELPER_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"text": "We just shipped dark mode. Try it tonight 🌙",
"accounts": ["ACCOUNT_ID"],
},
)
post = response.json()["data"]
print(post["status"], post["targets"])
Connect
Connect Mastodon once.
Open Accounts in the SocialHelper dashboard and choose Mastodon. The connect form asks for the details below, and explains where to find each one.
- Server
- The address of your Mastodon server.
- Access token
- In Mastodon, open Preferences → Development → New application. Tick the scopes read:accounts, read:statuses, write:statuses and write:media, save, then open the application and copy “Your access token”.
SocialHelper calls Mastodon’s official API for you. Mastodon API reference ↗
FAQ
Mastodon questions.
How long can a Mastodon post be?
500, counted the way Mastodon counts it. SocialHelper checks the length before posting, and if it doesn’t fit nothing is sent.
Can I post images or video to Mastodon?
Up to 4 images per post. Video isn’t supported.
Do I need my own Mastodon developer app?
No. You paste these from your own Mastodon account into the connect form: server, access token.
Can my AI agent use Mastodon?
Yes. Connect the SocialHelper MCP server at https://socialhelper.app/mcp and your agent can post to Mastodon, after confirming the text with you.
How much does it cost?
SocialHelper is free during early access, Mastodon included.
More platforms
Same key, every account.
Bluesky
Post to your Bluesky profile.
posts
Share posts from your LinkedIn profile.
posts
Telegram
Post to channels and groups through your bot.
posts
Discord
Post to a server channel through a webhook.
posts
Post to your Facebook Pages.
posts 3 tools
Publish photos and reels to Instagram.
posts 3 tools
Google Search Console
Clicks, queries, indexing and sitemaps.
4 tools
Google Analytics
GA4 traffic, conversions and realtime reports.
4 tools
Ship your Mastodon integration today.
Create a free account, connect an account and send your first post in a few minutes.