Cross-post via API

Post to every network
in one call.

Cross-posting normally means writing against nine different APIs, each with its own auth, its own limits and its own response. PostLake takes one request listing the networks you want, fans it out, and hands back a single response with the live URL for each — so posting everywhere costs you the same code as posting to one.

Get started free →

No card for the free tier · one API for every network · full MCP access

The fastest way: ask your agent

Prefer no code at all? Connect PostLake's hosted MCP server to your AI assistant (Claude, ChatGPT, Cursor and others) and just ask it to post. It authorizes over OAuth — no key to paste. See the MCP guide.

One request, every network

List every network you want in the platforms array. That's the whole thing:

curl -X POST https://api.postlake.dev/v1/posts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: launch-day-001" \
  -d '{
    "text": "We just shipped something 🚀",
    "platforms": ["bluesky", "linkedin", "x", "threads", "facebook"],
    "profile": "my-brand"
  }'

Step by step

  1. Create a PostLake API key (Settings → API Keys).
  2. Connect every account you want to cross-post to, once, under one profile in the dashboard.
  3. POST to /v1/posts with your text and every network listed in platforms.
  4. Read the targets array in the response — one entry per network, each with its status and live URL.
  5. Handle partial results honestly: if one network rejects the post, the others still publish and that target reports its own error.

Good to know

Why PostLake

One call, every network

List the platforms in one request and PostLake posts to all of them, returning a single normalised shape — your code never branches per platform.

No app setup

PostLake manages each network's developer app and OAuth for you — nothing to register or get reviewed yourself.

Agent-safe

Idempotency keys mean a retry never double-posts, and analytics come back normalised so an agent can decide what to post next.

Honest pricing

A free tier to start, then usage-based credits — one per post. You only pay for posts that actually publish.

Common questions

How do I post to all social media at once?

Send one POST to PostLake's /v1/posts endpoint with every network listed in the platforms array. PostLake publishes to all of them and returns a single response containing each network's status and live URL.

What happens if one network fails?

The rest still publish. The response has a targets array with one entry per network, so a failure is reported against that target alone rather than failing the whole post.

Can I change the content per network?

Yes — pass platformOptions in the same request for per-network details like a Pinterest board or a YouTube title, without splitting it into separate calls.

How much does cross-posting cost?

One credit per network per post, so posting to five networks costs five credits. X costs more because it is the only network that charges per post. The free tier includes monthly credits with no card.

More guides

Python · Node.js · n8n · Make · Zapier · All guides · Full docs

One API and MCP server for every major network. Free to start.

Get started free →