Free tier · No credit card · Open source

You have content.
Posting shouldn't
be the hard part.

Every platform wants its own OAuth flow, its own API, its own token refresh schedule. Postgate handles all of it. Connect your accounts once, then post everywhere with a single API call, CLI command, or MCP tool.

2 min sign up to
first post
6 platforms
supported
AES-256 tokens
encrypted at rest
Talks to
Instagram YouTube X / Twitter LinkedIn Facebook Threads
The problem

You shouldn't need five API integrations to say the same thing five times.

Each platform has its own auth flow, media upload quirks, rate limits, and failure modes. Postgate absorbs all of that. You send one request — it handles the rest.

# Crosspost a video to four platforms in one call
curl -X POST https://postgate.enraio.com/api/v1/crosspost \
  -H "X-API-Key: pg_live_••••••••••••" \
  -H "Content-Type: application/json" \
  -d '{
    "workspace": "logixy",
    "targets": ["instagram","youtube","linkedin","twitter"],
    "content": {
      "text": "New episode: Binary Search Trees, visualised.",
      "media": ["https://cdn.logixy.com/ep07.mp4"]
    }
  }'
import Postgate from "postgate";

const pg = new Postgate({ apiKey: process.env.POSTGATE_KEY });

await pg.crosspost({
  workspace: "logixy",
  targets: ["instagram", "youtube", "linkedin", "twitter"],
  content: {
    text: "New episode: Binary Search Trees, visualised.",
    media: ["https://cdn.logixy.com/ep07.mp4"],
  },
});
from postgate import Postgate

pg = Postgate(api_key=os.environ["POSTGATE_KEY"])

pg.crosspost(
    workspace="logixy",
    targets=["instagram", "youtube", "linkedin", "twitter"],
    content={
        "text": "New episode: Binary Search Trees, visualised.",
        "media": ["https://cdn.logixy.com/ep07.mp4"],
    },
)
# Claude Code / any MCP host — drop into ~/.claude.json
{
  "mcpServers": {
    "postgate": {
      "command": "postgate",
      "args": ["mcp"],
      "env": { "POSTGATE_API_KEY": "pg_live_••••" }
    }
  }
}

# Then in chat:
"Post the rendered episode to all my channels with this caption…"
Response · 200 OK · 1.42s
posted instagram17912_8842
posted youtubeqXxR1k9-cMo
posted linkedinurn:li:share:73…
retried twitter1789…420 · 2nd try
How it works

Set it up once. Never touch OAuth again.

  1. 01

    Sign up or self-host

    Create an account on our hosted version, or run the open-source binary on your own machine. No Postgres, no Redis, no infra to babysit.

    ./postgate serve
  2. 02

    Connect accounts

    Click "Connect" for each platform. That's it. Postgate handles the OAuth callback, token exchange, PKCE, scopes, and every platform's special requirements.

    Instagram YouTube LinkedIn X
  3. 03

    Organise by brand

    Running multiple brands? Group accounts into workspaces. Post to "logixy" instead of juggling platform-specific IDs across five dashboards.

    postgate workspace create logixy
  4. 04

    Post from anywhere

    Your code, your AI agent, a cron job, or a quick terminal command. Same payload everywhere — Postgate translates it per platform.

    REST CLI Node SDK Python SDK MCP
Problems we solve

The stuff you'd rather not build yourself.

Every one of these is a week of work, a pile of edge cases, and an ongoing maintenance burden. Postgate ships them out of the box.

Tokens expire at 3am. Yours won't.

LinkedIn tokens last 60 days. Google's last an hour. Meta's page tokens are "permanent" except when they aren't. Postgate tracks every expiry window and refreshes tokens silently before they break your pipeline.

instagram · token refreshed silently · 2h ago
linkedin · token refreshed silently · 11h ago
youtube · token refreshed silently · 1d ago

Multiple brands? One dashboard.

Stop switching between five platform dashboards per brand. Group accounts into workspaces and manage everything from one place.

One platform down? The rest still post.

Twitter rate-limited you but LinkedIn and Instagram went through? You get a structured response with exactly what worked, what was retried, and what needs attention.

Your tokens are someone else's keys.

A leaked access token is full account access. Postgate encrypts every token with AES-256-GCM, key stored separately. Even a full database dump gives an attacker nothing.

Built for code, not clicks.

No drag-and-drop scheduler. Clean REST API, real HTTP status codes, typed SDKs for Go, Python, and TypeScript. Automate it, don't babysit it.

Let your AI agent post for you.

Tell Claude "post this to all my channels" and it just works. Postgate ships an MCP server — any model that speaks Model Context Protocol can list your accounts, draft, and publish without you touching a dashboard.

toolpostgate_list_accounts → 6 accounts
toolpostgate_crosspost → 4 platforms ok
Platforms

Every platform you actually use. More coming.

Instagram

Feed, Reels & carousels via Graph API. Business / Creator accounts.

stable

YouTube

Uploads, titles, descriptions and tags via YouTube Data API v3.

stable

LinkedIn

Member & organization posts. Auto-refresh of 60-day tokens.

stable

X / Twitter

Tweets + media via v2 + v1.1. PKCE handled, OAuth 2.0 only.

stable

Facebook Pages

Text, link & media posts to any Page you administer.

stable

Threads

Posts via Threads Graph API. Single-post and thread chains.

beta

TikTok

Direct video upload & description.

soon

Bluesky

AT Protocol posts. Coming this quarter.

soon
Get started

Free to start. Upgrade when you need more.

No credit card required. Every platform, every integration, every feature — from day one.

Free

Everything you need to get started.

$0 forever · no card
  • 1 workspace
  • All platform connectors
  • 50 posts / month
  • REST API, CLI & MCP
  • Go, Python & TypeScript SDKs
  • Encrypted token storage
  • Community support
Create free account
Unlimited

Pro

For teams and agents that ship daily.

$12 / month
  • Unlimited workspaces
  • All platform connectors
  • Unlimited posts (platform limits apply)
  • REST API, CLI & MCP
  • Go, Python & TypeScript SDKs
  • Managed hosting & backups
  • Priority email support
Start free, upgrade anytime

Prefer to run it yourself? Postgate is open source (MIT) — single Go binary, unlimited everything, your infra.

You've got better things to build than OAuth plumbing.

Connect your accounts in two minutes. Post to all of them with one line of code. Free forever on the starter tier.