YOUR SOCIAL POSTING GATE

Post Once. Publish Everywhere.

Connect each social account one time. After that, every app you build posts through one small API.

POST /api/v1/posts
$ curl -X POST http://localhost:3000/api/v1/posts \
    -H "Authorization: Bearer opk_your_key" \
    -H "Content-Type: application/json" \
    -d '{
      "text": "Shipped the new build tonight.",
      "platforms": ["bluesky", "mastodon", "linkedin"]
    }'

HTTP/1.1 201 Created
{
  "post": {
    "status": "published",
    "targets": [
      { "platform": "bluesky",    "status": "published" },
      { "platform": "mastodon",   "status": "published" },
      { "platform": "linkedin",   "status": "published" }
    ]
  }
}

HOW IT WORKS

Connect, Mint, Post

The setup happens once. From then on the gate is a URL your apps call.

01

Connect Once

Each platform’s sign-in runs one time. The tokens it produces live encrypted on your machine, not on someone else’s server.

02

Mint a Key

Each of your apps gets its own key. Create one in the dashboard, revoke it any time, and the rest keep posting.

03

Post Anywhere

One request fans out to every account you pick, the content is shaped to each platform’s rules automatically, and the response reports how each platform answered.

WHERE IT POSTS

The Platforms

9 adapters ship with this build. Each capability line below comes from the adapter registry, the same code that publishes.

  • X

    Text · Images · Video

  • Facebook Pages

    Text · Images · Video

  • Instagram

    Text · Images · Video

  • Threads

    Text · Images · Video

  • LinkedIn

    Text · Images

  • YouTube

    Text · Video

  • TikTok

    Text · Video

  • Bluesky

    Text · Images

  • Mastodon

    Text · Images · Video

THE API

One Request Shape

Every call is a JSON POST with a Bearer key you created in the dashboard. The response lists each target with its own status, so your app knows which platforms answered and which did not.

Before anything sends, the gate checks the content against every platform's rules. What can be converted is converted, what cannot work is skipped, and the response states each automatic change and each skip reason.

text
The words to publish.
platforms
Fans out to every active account on each platform you name.
accountIds
Pins the post to exact accounts instead of whole platforms.
mediaUrls
Public links to images or video. The gate fetches each file once and hands it to every platform.
scheduleAt
An ISO 8601 time. The gate holds the post and publishes it when the clock arrives.

Notes on every platform's quirks live in the setup guides after you sign in.

Request
POST /api/v1/posts
Authorization: Bearer opk_your_key

{
  "text": "Launch is live. Full notes are on the site.",
  "platforms": ["bluesky", "linkedin", "x", "tiktok"],
  "mediaUrls": ["https://your.app/screenshot.png"],
  "overrides": {
    "x": { "text": "Launch is live." }
  }
}
Response
HTTP/1.1 201 Created

{
  "post": {
    "status": "published",
    "targets": [
      { "platform": "bluesky", "status": "published" },
      { "platform": "linkedin", "status": "published",
        "adaptations": ["screenshot.png converted to JPEG."] },
      { "platform": "x", "status": "published" },
      { "platform": "tiktok", "status": "skipped",
        "skipReason": "TikTok does not take images." }
    ]
  }
}

NO SURPRISES

Your Keys. Your Machine. Your Accounts.

The parts other tools bury in a pricing page or a footnote, up front.

Single Tenant by Design

This gate serves one owner: you. Platforms treat multi tenant posting tools as licensed products with their own review programs, so Outpost stays personal on purpose.

What X Costs

X retired its free posting tier in 2026. Posting there bills about $0.015 a post through your own prepaid credits, and Outpost never posts to X without an action you took or a schedule you set.

Locked Platforms

TikTok and YouTube keep unaudited apps private. TikTok posts stay visible to you alone and YouTube uploads arrive as private until each audit passes. The guides explain both.

Stop Re-registering Apps.

Connect the accounts once, then point every current and future app at the gate.