Limits
| Character limit | 500 characters on a default Mastodon server. Each instance can raise it, so check yours. |
|---|---|
| Links | Every URL counts as 23 characters, however long it is. |
| Media per post | Up to 4 attachments on a default server. |
| File sizes | Images up to 16 MB and video up to about 99 MB on a default install. Instances can set their own limits. |
| Alt text | Up to 1,500 characters per attachment. Many people on Mastodon skip posts without it. |
| Rate limits | 300 API requests per 5 minutes per account by default, with a stricter limit on media uploads. |
- Always add alt text. The fediverse treats it as basic courtesy, and SocialHandoff can block drafts that miss it.
- Use content warnings for spoilers and heavy topics if your instance expects them.
- Use CamelCase hashtags so screen readers read each word.
- Post as yourself or a clearly labeled project account; many instances require bot accounts to be marked as bots.
How Mastodon scheduling works natively
Mastodon supports scheduled posts in its API: a client sends a scheduled_at time and the server holds the post. The default web interface does not expose scheduling, so most people use an app or tool for it. Either way, the server holds exactly what was sent, with no reviewer in between.
Why add approval on Mastodon
Mastodon communities have their own norms, set by each instance. Automated posting is tolerated when it is useful and labeled, and noticed fast when it is not. An agent that forgets alt text or posts the same link four times will get muted or reported. In SocialHandoff, drafts from an agent wait in the approval inbox. You see the preview with its length check and alt text status, fix anything inline, and approve. Guardrails can refuse drafts with missing alt text before they reach you.
What SocialHandoff supports on Mastodon
- 500-character default check in guardrails; adjust the per-network length rule if your instance allows more.
- Reply-chain threads, each part a reply to the previous one.
- Up to 4 attachments with alt text, with SocialHandoff waiting for the server to finish processing media before posting.
- Idempotency keys on every status. Mastodon honors the
Idempotency-Keyheader, so a retried post never appears twice and a thread resumes where it stopped. - Any public instance. Connect with an access token, or let SocialHandoff register an app on your instance for OAuth.
- Per-post metrics where the API returns them.
API notes
Mastodon instances enforce their own rate limits, with defaults of 300 requests per 5 minutes per account and a separate, tighter budget for media uploads. SocialHandoff reads rate-limit reset headers and backs off. Instances must be reachable on the public internet; private addresses are refused unless a self-hosted install explicitly allows them.
Tools and agent guides
Use the cross-post length checker to see whether one draft fits Mastodon, X, and Bluesky at once, and the thread splitter for longer pieces.
Agent setups for Mastodon: Cline for Mastodon, CrewAI for Mastodon, VS Code for Mastodon, and GitHub release posts on Mastodon. Connection steps are in Connect Mastodon.