NetworksMastodon
Mastodon APIthrough Siar.
Statuses on any Mastodon server, with visibility, content warnings and media. Siar registers its app on each server the first time someone connects from it.
At a glance
Account needed: An account on any Mastodon server. Pass the server URL when connecting.
| Connection | OAuth 2.0 in the browser |
|---|---|
| Channel | Not needed |
| Post types | post |
| Text length | 500 characters |
| Comment length | 500 characters |
| Media per post | Up to 4 |
Media rules
| Kind | Formats | Max size | Duration | Other |
|---|---|---|---|---|
| Image | jpeg, png, gif, webp, avif, heic | 16 MB | n/a | None |
| Video | mp4, webm, mov | 99 MB | Up to 2 h | None |
What Siar can do on Mastodon
| Comments and replies | Yes |
|---|---|
| First comment | Yes |
| Edit a published post | Yes |
| Delete a published post | Yes |
| Edit a comment | Yes |
| Delete a comment | Yes |
| Import comments | Yes |
| Post analytics | Yes |
| Account analytics | Yes |
| Post history import | Yes |
| Direct messages | No |
Siar can create comments and replies up to 500 characters, and import the comments people leave on your posts.
Publish a post
Put Mastodon's payload under data.MASTODON and list MASTODON in socialAccountTypes. Add other networks to the same request to post to all of them at once.
curl -X POST "https://api.siaran.my/api/v1/post" \
-H "x-api-key: $SIAR_API_KEY" \
-H "content-type: application/json" \
-d '{
"teamId": "TEAM_ID",
"title": "Mastodon post",
"postDate": "2026-11-02T09:00:00.000Z",
"status": "SCHEDULED",
"socialAccountTypes": [
"MASTODON"
],
"data": {
"MASTODON": {
"text": "Hello from Siar",
"uploadIds": [
"UPLOAD_ID"
],
"thumbnail": "string"
}
}
}' Mastodon fields
-
textstring nullable -
uploadIdsstring[] nullable -
thumbnailstring nullable -
privacystring nullableOne of:PUBLICUNLISTEDPRIVATEDIRECT -
spoilerstring nullable
Daily caps
| Per connected account, per UTC day | Free | Pro | Business |
|---|---|---|---|
| Posts | 10 | 50 | 100 |
| Comments | 3 | 50 | 100 |
See pricing for monthly quotas. Enterprise uses the Business caps unless agreed otherwise.
Connecting a Mastodon account
Siar sends the user to the network's consent page and stores the tokens it gets back, refreshing them before they expire. Use POST /social-account/connect from your own UI, or send your customer a hosted link from POST /social-account/create-portal-link; see connecting accounts.
Permissions requested
Siar requests only these scopes at connect time:
readwrite
Mastodon-specific operations
These exist for Mastodon only and live under /misc/mastodon.
| Operation | Endpoint |
|---|---|
| Edit an existing Mastodon status | PATCH /misc/mastodon/status |
| Delete a Mastodon status | DELETE /misc/mastodon/status |
| Edit a Mastodon comment | PATCH /misc/mastodon/comment |
| Delete a Mastodon comment | DELETE /misc/mastodon/comment |
When Mastodon says no
Siar relays Mastodon's error code and message verbatim on the post, next to a status you can act on. Open the Mastodon error reference.
Mastodon API questions
What can I post to Mastodon through the API?
post. Statuses on any Mastodon server, with visibility, content warnings and media. Siar registers its app on each server the first time someone connects from it.
How many Mastodon posts can I publish per day?
Per connected account and UTC day: 10 on Free, 50 on Pro, 100 on Business. The caps keep the account within what Mastodon tolerates.
Can I schedule Mastodon posts?
Yes. Set postDate in the future and a status of SCHEDULED. Siar publishes at that time and sends a post.published webhook when the post reaches a final state.
How do I connect a Mastodon account?
An account on any Mastodon server. Pass the server URL when connecting. Siar sends the user to the network's consent page and stores the tokens it gets back, refreshing them before they expire.
What do I do when Mastodon rejects a post?
The post carries Mastodon's own code and message. The Mastodon error reference explains how errors are reported and how to fix them.
Your first post isone request away.
The Free plan includes 20 posts and 200 uploads a month across 3 teams. No card needed.