OSS Social Media API.
Built for developers and AI agents.

Ship social features in minutes, not months. One API to publish across 8 platforms, with scheduling, webhooks, and idempotency built in. Native MCP server. Apache 2.0.

No credit card · 50 posts/mo free, forever · 90-second quickstart →

SHOW THE CODE

$ one terminal session
publish.sh
curl -X POST https://api.letmepost.dev/v1/posts \
  -H "Authorization: Bearer $LMP_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "targets": [
      { "platform": "bluesky" },
      { "platform": "x" },
      { "platform": "pinterest" }
    ],
    "text": "Shipped multi-target publishing today."
  }'

PLATFORMS

one POST, every connected account

PAID-IN-FULL LEDGER

work we did once, so you don't have to
Multi-target publish endpoint POST /v1/posts, fans out to every connected account in one call ~ 4 wk
Meta App Review absorbed Instagram + Facebook + Threads, one shared review, our app of record. Three rejections, four re-shot demo videos. Once. ~11 wk
LinkedIn Marketing Developer Platform review submitted, version-pinned, sunset-monitored ~12 wk
80× Preflight rules char-count, media-format, audit-state, URN patterns. One docs page each. ~ 6 wk
Platform versions pinned for you we own the LinkedIn-sunsets-every-six-weeks problem
TIME RECLAIMED ≈ 6 months

ANATOMY OF A FAILURE

structured every time, no empty 500s
HTTP/1.1 422 Unprocessable Entity application/json
codepreflight_failed
rulebluesky.text.max_graphemes
platformbluesky
platform_versionatproto-2026-04
messageText is 312 graphemes; Bluesky allows at most 300.
remediationTrim the text to 300 graphemes or fewer.
doc_urldocs.letmepost.dev/errors/preflight_failed
rule_urldocs.letmepost.dev/preflight/bluesky-text-max_graphemes
request_idreq_01HXY7Z8K9MNB1P2QR3STVW
trace_id01jb7q9c4e5f6g7h8i9k0lm1np

For agents, letmepost speaks MCP.

a hosted server + a stdio binary on npm

A hosted MCP server at api.letmepost.dev/mcp (Streamable HTTP, stateless) and a stdio binary on npm. Twenty-one tools, autogenerated from OpenAPI. Same auth as the HTTP API. Claude, Cursor, Claude Code, opencode, any MCP-aware client drives the full surface.

Read the agents landing →

{
  "mcpServers": {
    "letmepost": {
      "command": "npx",
      "args":    ["@letmepost/mcp@latest"],
      "env":     { "LMP_API_KEY": "lmp_live_…" }
    }
  }
}

Tariff sheet.

flat-rate · billed monthly

Tier Posts / mo Price
FreePersonal · single-platform automations 50 $0
Pro Indie SaaS · agencies under 50 clients 5,000 $79
BusinessEmbedded social · uptime SLA · white-label OAuth 25,000 $299
Self-hostSame image · BYO Postgres + Redis · Apache 2.0 $0

Full pricing →


Latest writing.

engineering notes from the platform-review queue

All writing →


Fine print.

questions you'd ask in a code review

What actually works today?

Bluesky, X, and Pinterest are live end-to-end. You can connect an account, send a post, attach images or video, and get a webhook back. Instagram, Facebook, Threads, and LinkedIn are in platform review and flip on the day approval clears.

Why another social media API?

Because the existing ones fail silently, charge per-profile, and break every six months when a platform sunsets a version. This one fails loudly, charges per-org, and pins the version internally. Apache 2.0 from day one.

How much does it cost?

Flat-rate per org. A real free tier covers 50 posts a month. Full pricing →

Is it really open source?

Apache 2.0. The hosted SaaS runs the exact same image you can self-host. No feature gate, no open-core trick.

Do I have to handle Meta App Review myself?

No. Connect through our OAuth flow and you publish through our reviewed app. Self-hosters can BYO Meta app if they want their own reviewer-of-record.

Can my AI agent drive this?

Yes. Native MCP server at api.letmepost.dev/mcp and a stdio binary on npm. See the agents landing for the full tool surface.


SEND THE FIRST POST.

Ninety seconds from sign-up to a Bluesky post in production.
Star the repo, file an issue when something's weird — we build in the open.

* * * THANK YOU FOR SHOPPING OPEN SOURCE * * *
000 LMP 0001 · 2026-05-23 · 14:21Z
→ START FREE