Quickstart
Publish your first tweet via curl in 90 seconds.
Authentication
Bearer keys, scoping, rotation.
Errors
The twelve error codes and what each one means.
Preflight
Every documented platform constraint, checked before the upstream call.
What you can do
Small, opinionated API surface — one primitive done well.Built for
AI agents
n8n, LangGraph, CrewAI, Make. Idempotent, MCP-compatible, no per-profile pricing.
Indie cross-posting tools
The wedge for anyone hand-rolling integrations because every existing scheduler is per-channel-priced.
Agencies on n8n / Postiz
Migrate off Hootsuite / Sprout / Later to a flat-priced primitive that fails loudly.
Principles
These are non-negotiable. If a feature breaks one of them, the feature loses.Preflight, not postflight
Preflight, not postflight
Every documented platform constraint is checked before we touch the upstream API. A 312-grapheme Bluesky post fails locally with a rule id, not asynchronously with
body: {}.Transparent errors
Transparent errors
No empty bodies. Every failure includes a stable code, the rule that fired, the upstream response, and a remediation hint. See errors.
Idempotency by default
Idempotency by default
Every write accepts
Idempotency-Key. Retries are safe. See idempotency.Stable platform versions
Stable platform versions
When LinkedIn sunsets an API version, we upgrade internally and publish a changelog. Your workflow doesn’t break at 2 a.m.
Status
The API surface is identical across every platform — samePOST /v1/posts, same error envelope, same idempotency contract. Each platform’s launch is gated on its own developer-portal review; approvals clear at different rates. Twitter and Bluesky are live for every signup today. The rest (Instagram, LinkedIn, Facebook, Threads, Pinterest) ship as approvals clear — track the changelog and the public version tracker at GET /v1/platform-versions.
