Skip to content
Opening soon

For indie hackers and founders

Ship the release. The posts write themselves out.

One update to X, Bluesky, Threads, Mastodon, LinkedIn and Discord, from the Posto app or from one request in your own deploy script.

release.sh
# after the deploy succeeds
curl $POSTO/api/v1/posts \
  -H "Authorization: Bearer $POSTO_TOKEN" \
  -H "Idempotency-Key: $GIT_SHA" \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "queue",
    "text": "v2.4 is out: dark mode and CSV export",
    "channels": [12, 15, 21],
    "channel_texts": { "21": "Shipped v2.4 🚀 changelog below" },
    "first_comment": "Changelog: example.dev/v2.4"
  }'

# 201 Created · goes out in each channel’s next free slot

Publishes to

What changes

Building in public, without the posting chores

  • Five tabs, five logins, the same update five times

    One update, every network

    X, Bluesky, Threads, Mastodon and LinkedIn from one draft, with its own text for a network that needs it.

  • A cron script that breaks with every API change

    One API instead of one per network

    Posto talks to each network’s API. You call one endpoint with one token.

  • “Was it the Bluesky post or the X thread?”

    Know which post brought the visitors

    Short links count clicks for each post and network, and UTM tags carry the source into your own analytics for the sites you list.

Two ways in, and a way back

Click it, code it, hear back

  1. No code

    The composer

    Write once, give each network its own text, and schedule it or add it to the queue.

  2. Code

    REST API

    Create, edit, reschedule and cancel posts with photos and video. Read slots, statistics and comments.

  3. Back to you

    Webhooks

    post.published, post.failed and comment.received, as a signed POST to your own endpoint.

  4. In chat

    Chat alerts

    The same events as a message in Slack, Discord or Telegram.

The API

Boring on purpose

Bearer token, JSON in and out, errors as RFC 9457 problem documents, an OpenAPI spec and a docs page. The API checks a post by the same rules as the app, so a refusal reads the same in both. API documentation

  • Scoped tokens per workspace

    Pick scopes and an expiry for each token. A token never does more than its owner’s role allows.

  • Validate before you send

    POST /posts/validate tells you which channel would refuse the post, and why, without saving anything.

  • Safe to retry

    Send an Idempotency-Key: the same request with the same key within 24 hours returns the first answer instead of making a second post.

  • Photos and video

    Send photos as a file or a link. Upload a video straight to storage with a signed URL, then register it.

  • Numbers back

    Metrics for each post and daily stats for each account, as far as the network gives them.

  • Comments as events

    Get comment.received for every new comment, and reply through the API on networks that take replies.

Real screen

Prefer clicking? Same post, own text for each network

Posto composer: one post with three photos going to two channels, one of them with its own text, and a scheduled time
The composer: a shared draft, its own text per channel, now or on a schedule.

Also in the box

For people who read their own bills

  • Your own AI and X keys

    Add your own X app and X bills its API usage to you, not to Posto.

    Free in beta, on request Your own AI key from Gemini, Claude or OpenAI bills your AI usage to you, with nothing marked up.

  • AI that sounds like you

    Free in beta, on request Drafts and reply suggestions that follow your brand profile.

  • Short links and UTM tags

    Short links count clicks for each post and network, except on Instagram and TikTok, where a link in a caption cannot be clicked. UTM tags go on links to the sites on your list.

  • Slots and best time

    The queue mode of the API and “Add to queue” in the app drop a post into the next free slot. A map of the days and hours your own posts do best, from your last 90 days, sets a channel’s slots once it has enough posts.

Free in beta, on request We switch these features on when you ask. Write to hello@posto.run and name your workspace.

Early access

Free while in beta. Founder pricing after.

Leave your email. We send an invite as soon as registration opens, and early users keep founder pricing once paid plans start.

Be first in. Free while we are in beta. One confirmation now, one email when sign-ups open. Privacy policy

Questions

Before you wire it up

Is there a rate limit?

Yes, per token. A request over the limit gets a 429 with a Retry-After header that says how long to wait.

Can I post to X through Posto?

Yes. You can also add your own X app on the API keys page of your workspace, so X’s own pricing applies to you directly.

Does the API do polls, link buttons and evergreen?

Not through the API. Text, its own text and time for each channel, photos, video, a first comment and labels work today; polls, link buttons and evergreen are set in the app. Editing a post through the API keeps what you set there.