For social media operators
The right operating model is not an agent that needs a human beside it all day. It is a person who sets the boundary once, then lets the agent plan, draft, connect accounts with human approval, publish within a cap, and learn from results. PostLake puts that boundary on the agent connection itself, not only in a prompt.
Get started free →Free tier. No card · one API for every network · full MCP access
You want an agent to run social operations without making the human live in a social dashboard or handing the agent unrestricted account credentials.
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.https://api.postlake.dev/mcp in your agent host. It signs in through OAuth, so do not paste an API key into the agent.After the MCP connection is authorised, give the agent one clear operating policy. It can request a signed connection link, but only a person completes social-network approval:
Set up my PostLake account safely. First call whoami and list_social_accounts. If no channels are connected, call get_connect_link and send me the signed link. Wait for me to approve access on the social network, then confirm the channel exists. Before writing, call get_platform_capabilities and validate_post. Save the first posts as drafts for my approval. Do not publish until I explicitly approve it.
Tool-specific glue on top of the shared setup above:
Claude content agent or Launch crew.whoami before planning work. It sees its own profiles, platforms, remaining daily capacity, and credit rules, so it can adapt instead of discovering a boundary through a failed post.get_connect_link. Send that signed link to the human who owns the account. They complete the platform's OAuth approval, then the agent confirms the connection and continues.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.
Yes. Connect it to PostLake over MCP OAuth. It receives a separate, revocable connection. Set its permitted profiles, networks, daily post limit, purchased-credit access, and approval policy in Agents.
It can generate a signed connection link and send it to the right person. That person still approves access on the social network's own screen. Once they finish, the agent can confirm the channel and continue its workflow.
Set a daily post limit on that MCP connection and restrict the profiles and platforms it can use. Turn on Require my approval if a person should approve every post. These controls are enforced by the API.
Yes. Revoke the connection from Agents in the PostLake dashboard. The client must complete OAuth again before it can use the account.
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 →