PostAtom for developers · REST API and webhooks

One API call.
Every social platform.

Publish, schedule and measure posts across social platforms through a single API, without a separate integration for each one.

  • X
  • LinkedIn
  • Instagram
  • Threads
  • TikTok
  • YouTube
  • Facebook Pages
  • Pinterest
  • Bluesky
  • Google Business Profile in review
  • Mastodon
  • Reddit
PostAtom for developers

One API call.
Every social platform.

Publish, schedule and measure posts across social platforms through a single API, without a separate integration for each one.

  • X
  • LinkedIn
  • Instagram
  • Threads
  • TikTok
  • YouTube
  • +5 more
How it lands

Accepted at once.
Answered per destination.

Each destination settles on its own. Webhooks tell you when each one lands, or why it did not — and nothing is published twice.

publish.mjs
const api = 'https://api.postatom.com/v1';const headers = { Authorization: `Bearer ${process.env.POSTATOM_API_KEY}` };const { data } = await (await fetch(`${api}/accounts`, { headers })).json();const receipt = await fetch(`${api}/posts`, {  method: 'POST',  headers: { ...headers, 'Content-Type': 'application/json' },  body: JSON.stringify({    targets: data.filter((a) => a.publishingAvailable).map((a) => a.id),    content: 'We shipped scheduled posts today.',  }),}).then((response) => response.json());// Accepted now, answered per destination.const answer = await fetch(`${api}/posts/${receipt.id}`, { headers });const { data: post } = await answer.json();
Destinations 4 of 6 settled
  • X published
  • LinkedIn published
  • Threads published
  • Instagram uploading media
  • TikTok queued · rate limit
  • YouTube refused · error kept
One contract, twelve platforms
  • X
  • LinkedIn
  • Instagram
  • TikTok
  • Facebook Pages
  • Threads
  • YouTube
  • Pinterest
  • Bluesky
  • Mastodon
  • Reddit
  • Google Business Profile in review
12 platforms behind one contract
1 call to reach up to 20 accounts
0 network calls from posts to sandbox accounts
Capabilities

Everything the platforms make hard, handled.

The parts of a social integration nobody budgets for, built once and kept current.

Multi-platform publishing

Text, images, video, threads, carousels and stories, behind one contract.

Built-in scheduling

Queue, reschedule and cancel without running a cron of your own.

Normalized analytics

Impressions, engagement and follower deltas, in one shape across platforms.

Comments and replies

Read threads, reply, hide or delete from a single inbox.

Messaging

Read and answer Instagram direct messages through a connected Page, with a webhook when a new one arrives.

Managed OAuth

Hosted consent screens, encrypted token storage, refresh wherever the platform allows it, and a webhook when access lapses.

Multi-account and multi-tenant

Workspaces, environments and per-tenant accounts, isolated at the database.

Retries and dead letters

A refused post stops with the platform’s own error kept for you to read, not a silent retry loop.

From signup to first post
in three steps.

  1. 01

    Create an API key

    Scoped to one workspace and one environment. With a test key, posts to sandbox accounts make no network calls.

  2. 02

    Connect accounts once

    Send a person to a hosted consent screen. Tokens are encrypted, and refreshed where the platform allows it.

  3. 03

    Post everywhere

    One call reaches every connected platform. Webhooks tell you when each one lands, or why it did not.

Build

Three ways to build.

Your coding agent can wire PostAtom up on its own. So can you, with one HTTP request.

  • Agent skillNot published yet

    Drop a skill file into your coding agent. It reads the contract and starts posting, with no wrapper code of yours.

  • MCP serverNot published yet

    13 tools with schemas a model can call directly, over stdio or HTTP.

  • REST and SDKs

    An OpenAPI 3.1 spec, idempotency keys on every publish, and typed SDKs Not published yet

  • Skill
  • MCP
  • SDKs

13 tools with schemas a model can call directly, over stdio or HTTP. Not published yet

tools/list · postatom
  • publish_post Publishes the same post to one or more accounts, or schedules it for later.
  • list_accounts Lists the accounts this workspace can post to, with each one’s live limits.
  • list_scheduled Lists posts queued for later, soonest first.
  • save_draft Creates a held post that is not published until publish_draft releases it.
  • get_analytics Normalized metrics across platforms for a window, by day, week or month.
  • list_conversations Lists comment threads on this workspace’s posts, most recent first.
  • reply Posts a reply in a comment thread, as the connected account.

Frequently asked

Can I test without connecting a real account?

Yes. With a test key, a post to a sandbox account runs the same validation, queueing and status transitions without any network call to a platform.

Do I need my own developer app on each platform?

No. Hosted OAuth connects your end users through PostAtom, so you do not register or maintain an app per platform.

What happens when one platform fails mid-publish?

Each destination settles independently. A post that a platform refuses stops with that platform’s own error recorded, while the others continue. Nothing is published twice.

How does scheduling handle timezones and DST?

A scheduled time is resolved to an absolute instant when the request is accepted, so a daylight-saving change cannot move it.

Can I resell PostAtom inside my own product?

Yes. Workspaces and hosted consent are built for connecting your customers’ accounts rather than only your own.

Anything else?

The documentation covers the rest
The documentation covers the rest

Ship your social integration this week, not this quarter.

No credit card to start. With a test key, posts to sandbox accounts make no network calls.