Definition
A social media API for AI agents is not a scheduler with a REST wrapper. It is the layer an agent acts through: observe, publish, engage and measure, with one response shape, retries that cannot double-post, capabilities it can read at runtime, and approvals the same agent cannot bypass. PostLake is that layer. REST for LangGraph and CrewAI. A hosted MCP server for Claude, Cursor and ChatGPT. Agent skills for coding agents. Official TypeScript SDK: postlake. Same accounts underneath.
Get started free →Free tier. No card · one API for every network · full MCP access
You need a citable definition of a social media API built for agents, not a dashboard with an API bolted on.
Same setup the docs quickstart uses. Do this once:
my-brand) and connect at least one account. Bluesky is the fastest first channel: no app review. Instagram/TikTok/Facebook need each platform's review before API posting.sk_live_…). It shows once; treat it like a password.This is the whole agent setup. Paste it into Claude, Cursor, ChatGPT or any MCP host. The agent gets publish, schedule, media and analytics as tools, not nine platform SDKs.
{
"mcpServers": {
"postlake": {
"url": "https://api.postlake.dev/mcp"
}
}
}Tool-specific glue on top of the shared setup above:
npx skills add postlake/postlake-mcp --all), or REST with a Bearer key in your runtime.create_post / POST /v1/posts and to always read targets[]. Partial success is normal.Idempotency-Key (or let MCP do it) so a retry never double-posts.get_analytics / GET /v1/analytics so the agent can decide what to post next.You get one Post with an overall state and a targets[] array. One entry per account. Always check each target; partial success is normal.
{
"id": "post_a1b2c3",
"state": "partial",
"targets": [
{ "platform": "bluesky", "state": "published", "url": "https://bsky.app/…" },
{ "platform": "linkedin", "state": "failed",
"error": { "type": "invalid_request", "message": "…", "retryable": false } }
]
}published: every target succeeded. partial: some published, some failed. failed: none published. processing: still going (async networks like TikTok).Idempotency-Key header on writes so a retry never double-posts.Same rules as the docs. Pick one addressing style:
"profile": "my-brand" posts to every account under that profile (the name on Channels)."platforms": ["bluesky", "linkedin"] narrows that set. It is a filter, not a selector: if you have two Pinterest boards, both match pinterest."accounts": ["acc_…"] for exact channels (copy an id on Channels, or GET /v1/social-accounts).profile? PostLake uses that profile. Multiple profiles and you omit it? You'll get an error that names them.See Publishing: where to post.
scheduledAt as UTC (trailing Z), or a naive local time plus timezone (IANA, e.g. Europe/London). Credits charge when it fires. Scheduling docs · scheduling guide.POST /v1/media, then pass the med_… id in media. Media docs.textOverrides (e.g. shorter text for X). Per-network options: platformOptions (Pinterest boardId, TikTok privacy, …). Live option lists: GET /v1/platforms/{platform}.POST /v1/posts/validate runs the same checks without publishing (free).Want zero wrapper code? Connect the hosted MCP server (https://api.postlake.dev/mcp) over OAuth. Same accounts and responses as this API path. Agents overview.
The social infrastructure an agent acts through: observe, publish, engage and measure, without per-platform SDKs. One response shape, safe retries, runtime capabilities, and approvals. PostLake is that layer, plus a hosted MCP server.
A posting API publishes. Infrastructure also lets the agent read, engage, validate, wait for approval, and recover from partial failure. PostLake is both: the posting API agents call, and the control layer they operate through.
Any MCP client (Claude, Cursor, ChatGPT, Gemini, Copilot) and any agent framework that can call HTTPS (LangGraph, CrewAI, AutoGen, custom).
Free tier, no card. Connect MCP at https://api.postlake.dev/mcp or follow the agents hub. Docs: https://docs.postlake.dev/mcp.md
These guides stay short on purpose. Canonical behaviour lives here:
Also: Media · Errors · MCP · Analytics
All guides · Full docs · llms.txt · Markdown
Stuck? The docs are the source of truth, start at Publishing.
Open the dashboard →