Mastodon Scheduler

Mastodon scheduler across every instance you manage

Mastodon accounts on any set of instances in one calendar, with per-instance OAuth registration handled for you.

Publish to Mastodon accounts across any set of instances from one calendar, with per-instance OAuth registration and per-instance limits handled for you.

Last updated: July 2026

One API key. No per-account fees. 15 platforms.

API key authScheduled publishing15 platforms
Quick start
API request
1await fetch("https://api.bundle.social/api/v1/post", {2  method: "POST",3  headers: {4    "x-api-key": process.env.BUNDLE_SOCIAL_API_KEY,5    "Content-Type": "application/json"6  },7  body: JSON.stringify({8    teamId: "team_123",9    title: "Mastodon update",10    postDate: "2026-05-14T10:00:00.000Z",11    status: "SCHEDULED",12    socialAccountTypes: ["MASTODON"],13    data: {14      MASTODON: {15        status: "Just shipped our API update. Here is what changed: bundle.social/changelog",16        visibility: "public"17      }18    }19  })20});
Official APIs500k+ connected accountsDirect engineer support

What native Mastodon publishing leaves to your team

Mastodon is decentralized, so each instance has its own rules, rate limits, and account requirements.

What bundle.social handles

Schedule Mastodon posts alongside Bluesky, LinkedIn, X, and other text-first channels in one workflow.

Keep Mastodon in the same workflow as every other channel

Your open-source community deserves consistent content as much as any brand. Stop treating Mastodon as a manual afterthought and put it in the same calendar.

Workflow

How it works

Connect accounts once, then create and schedule posts with channel-specific fields from one API.

01

Create an API key

Generate an organization API key in the dashboard and use it with the x-api-key header.

02

Connect accounts

Connect each social account once. bundle.social keeps the account mapping ready for future posts.

03

We talk to the user's own instance

Every Mastodon instance runs its own rules, rate limits, and character caps, so a request that succeeds on one server can fail on another. You send one request; bundle.social posts to the connected instance and reports instance-specific rejections as such.

Product architecture

Build social media workflows without rebuilding every platform

Mastodon scheduler for federated community publishing

Open-source products, developer platforms, and their community teams publish to Mastodon for an audience that notices when content is broadcast rather than written for them. The plan spans text posts, images, videos, links, alt text, polls, and visibility levels, governed per instance rather than per network.

bundle.social schedules Mastodon in the same calendar as other channels while preserving instance-specific behavior. Draft posts for the connected instance, set visibility, add alt text, schedule with the rest of the campaign, and follow delivery status in one place.

Every instance sets its own rules

Mastodon is decentralized, so character caps, rate limits, media rules, and moderation policy come from the server a user belongs to rather than from the network. A post that publishes cleanly on one instance can be rejected on another, and account standing is judged locally.

bundle.social connects to the user's own instance and reports instance-specific rejections as such, so a community manager knows whether the problem is the content, the server, or the account. Instance rules, rate limits, and account eligibility always take precedence over the schedule.

Release notes fan out to Mastodon, Bluesky, and Discord

Community announcements usually run in parallel. A release note goes to Mastodon, Bluesky, a Discord server, and a changelog, with different length and tone for each, and teams want to plan them as one set.

Those channels share one calendar with per-channel copy, approvals, and delivery status. Analytics availability depends on the connected instance and account permissions, so delivery state stays the reliable signal for reporting.

Let your own users connect their Mastodon accounts

Mastodon has no central developer portal, so bundle.social registers an OAuth application on each instance a user connects from and stores those credentials per instance.

You generate a hosted portal link, your user connects their own Mastodon account through it, and bundle.social stores and refreshes the token. The link carries your branding, expires on a window you set between 5 minutes and 48 hours, and means you never implement Mastodon REST API OAuth yourself. Publishing from your own code instead of the dashboard uses the same connected accounts.

Capabilities

Mastodon scheduling with the workflows your team already uses

Mastodon fits into the same scheduling, media, and status workflow as every other channel.

Mastodon in your cross-platform calendar

Plan and schedule Mastodon content alongside Instagram, LinkedIn, X, TikTok, and every other channel without switching between native dashboards.

Channel-specific field control

Mastodon content still uses the options and fields the platform supports. No generic template that loses native capabilities.

Team review and approvals

Marketing teams can draft, review, and approve Mastodon content in the shared calendar before anything publishes.

Media library for campaigns

Upload visuals, videos, and documents once and attach them to Mastodon posts using upload IDs across your content plan.

Post status tracking

See whether each Mastodon post is scheduled, processing, posted, or failed without checking the native platform dashboard.

Analytics where available

Pull Mastodon performance data and import post history for connected accounts where the platform API and permissions allow it.

Developer example

Schedule Mastodon content

Examples use bundle.social's public API shape: API key authentication, a post date, selected social account types, and platform-specific data.

TypeScript
API request
1await fetch("https://api.bundle.social/api/v1/post", {2  method: "POST",3  headers: {4    "x-api-key": process.env.BUNDLE_SOCIAL_API_KEY,5    "Content-Type": "application/json"6  },7  body: JSON.stringify({8    teamId: "team_123",9    title: "Mastodon update",10    postDate: "2026-05-14T10:00:00.000Z",11    status: "SCHEDULED",12    socialAccountTypes: ["MASTODON"],13    data: {14      MASTODON: {15        status: "Just shipped our API update. Here is what changed: bundle.social/changelog",16        visibility: "public"17      }18    }19  })20});

Supported content

Text postsImagesVideosLinksAlt textVisibility levels

Honest limitations

  • Instance rules, federation behavior, and account eligibility still apply.

Guarantees

Developer-first infrastructure

Visible post status

Track scheduled, processing, posted, retrying, and error states per post.

Verbose errors

When native APIs fail, we return human-readable error messages and actionable recovery steps.

Flat pricing

No per-post counting. Predictable pricing for teams managing many users, workspaces, and connected accounts.

Same-day support

Direct access to the engineers building the API. We respond to technical issues the same day, sometimes the same hour.

FAQ

Questions developers ask before building

Whose character limit applies, yours or the instance's?

The instance's, and it wins. bundle.social accepts up to 30,000 characters, but the connected server enforces its own cap, typically 500 on default configurations. A status that passes our validation can still be refused by that server, and the refusal is reported as instance-specific rather than as a broken post.

Do we need a developer account for every Mastodon instance?

There is no central Mastodon developer portal, so an OAuth application has to exist on each instance a user connects from. bundle.social registers it per instance and stores the credentials, which turns an open-ended set of integrations back into one.

Are alt text and content warnings optional on Mastodon?

Technically yes, practically no. This audience expects alt text on images, content warnings on sensitive material, and visibility chosen deliberately rather than defaulted to public. Automated cross-posting without those signals reads as spam here in a way it does not on Instagram or X. Statuses accept up to 4 media items, alt text up to 512 characters, and content warnings up to 50.

Why use bundle.social for Mastodon instead of talking to each instance?

Because there is no central Mastodon developer portal, so every instance a user connects from needs its own OAuth application and its own stored credentials. bundle.social registers and stores those per instance, exposes visibility and alt text as normal fields because this audience expects them, and reports an instance-specific refusal as instance-specific rather than as a broken post.

Can our own users connect their own Mastodon accounts?

Yes. You generate a hosted portal link carrying your own branding, and bundle.social stores and refreshes the Mastodon token, so a reconnect is something your user can do without a support ticket.

Can Mastodon run in the same calendar as our other channels?

Yes, and the per-platform differences stay per platform. One scheduled post can target several channels at once, with a MASTODON object carrying only the fields Mastodon needs.