Stop posting.
Let your agents do it.

The Social Media Infrastructure and Unified API for AI Agents.

Give any agent one secure interface to observe, publish, engage and measure across every major social media network. Your agents bring the intelligence. PostLake is the layer they act through.

Get started free →

No credit card on the free tier. Already have an account? Sign in.

One social language for every network A retry never posts twice Drafts until you approve
POST /v1/posts
$ curl -X POST \
  https://api.postlake.dev/v1/posts \
  -H "Authorization: Bearer $KEY" \
  -H "Idempotency-Key: release-001" \
  -d '{'
    "text": "the new release is here",
    "profile": "my-brand",
    "platforms": ["linkedin", "x", "bluesky"]
  '}'
X
LinkedIn
Instagram
TikTok
Facebook
Bluesky
YouTube
Shorts
Pinterest
Threads
observe then act · human approval on every agent · idempotent publishes · one social language · hosted MCP · plans from $13/mo · encrypted credentials · observe then act · human approval on every agent · idempotent publishes · one social language · hosted MCP · plans from $13/mo · encrypted credentials ·
No credit card to join First post in 5 minutes Approval, limits and audit on every agent Simple, usage-based pricing

01 / Built for autonomy

Agent-first
primitives.

Every PostLake API is designed for and used by agents.

No double posts

The agent can retry all night. Idempotency keeps it to one post. Same key, same result.

A failure you can use

X can fail and LinkedIn still go live. The agent gets a reason and a fix, not a silent 200. You see both.

Live network rules

TikTok's photo limit is read today, not guessed from last year's training data. A bad post fails before it costs you.

Nothing ships until you say so

Cap the agent by brand, network and daily posts. Turn on approval and it cannot publish its own draft.


02 / Features

Observe. Act.
Then measure what happened.

Publishing is one verb. PostLake also reads the inbox, discovers what is already being said, validates before spend, and returns analytics in one language. Most social APIs stop at the first verb.

Analytics an agent can decide from

Reach, CTR, saves and follower growth, named the same on every network. Totals, top posts and best times in one response, so the next draft is not a guess.

GET /v1/analytics?period=30d

// totals, per-network rates,
// top posts, best times

One social language

One Post, one state, one targets[] array. LinkedIn succeeding while X fails is a partial result, not a mystery.

// one Post, every network
{
 "id": "post_3kf9d2",
 "state": "published",
 "targets": [{ "platform": "bluesky" }]
}

Validate before you spend

A dry run uses the same checks as a live publish. Nothing is created and no credits move. Then call posts.create.

await pl.posts.validate(draft)
await pl.posts.create(draft)
// import { PostLake } from "postlake"

Events an agent can wake on

Signed deliveries for publish, failure, comments, mentions and inbound messages. Verify them with verifyWebhookSignature.

{
 "type": "post.published",
 "data": { "id": "post_3kf9d2" }
}

Media, uploaded once

Upload bytes, get a med_… id, then attach it. We do not silently crop. Mixed Instagram carousel ratios are declared, not hidden.

const m = await pl.media.upload(bytes, type)
await pl.posts.create({ media: [m.id] })

Scheduling in two fields

A naive local time plus an IANA timezone, or a UTC Z. Cancel or edit before it fires. Drafts cost nothing until you publish.

scheduledAt: "2026-11-20T08:30:00"
timezone: "Europe/London"

Connections, managed

We run the developer apps, X included. An agent can send a signed connect link; the owner still approves on the network's own screen.

POST /v1/social-accounts/connect {
 network: "linkedin"
} // we handle OAuth

03 / Platforms

Every major network.
One interface.

Your agent learns one social language. We keep the nine networks underneath it working. Per-network posting notes: see the posting APIs.

postscheduleanalyticsmedia
postscheduleanalyticsmedia
postReelsanalyticsmedia
postscheduleanalyticsvideo
postscheduleanalyticsmedia
postscheduleanalyticsmedia
postscheduleanalyticsmedia
postShortsanalytics
postscheduleanalytics

All posting APIs · Post from an agent · Guides


04 / Pricing

Predictable pricing.
Pick a plan, ship.

Pay for what you post with credits. Every plan includes managed keys and unlimited connected accounts. Most networks use 1 credit per successful post; X uses dedicated text and link rates. Save 25 percent on annual.

Free

Try it out

$0/mo
Start free
20 credits / mo
  • Publish on 8 networks (X uses paid or pack credits)
  • Unlimited connected accounts
  • 120 API calls per minute per profile
  • Full MCP server access
  • No card required

Starter

For individuals

$13/mo
Subscribe
2,000 credits / mo
  • All networks
  • X included
  • Unlimited connected accounts
  • 120 API calls per minute per profile
  • Full MCP server access
  • $6.50 / 1,000 credits

Pro

For high-volume creators

$85/mo
Subscribe
18,000 credits / mo
  • Everything in Standard
  • 300 API calls per minute per profile
  • 9,000 API calls per minute across the workspace
  • $4.72 / 1,000 credits

Business

For companies & agencies

$225/mo
Subscribe
50,000 credits / mo
  • Everything in Pro
  • 600 API calls per minute per profile
  • 18,000 API calls per minute across the workspace
  • $4.50 / 1,000 credits

How credits work.

You buy credits and spend them as you post. We manage every platform connection for you, X included, so there are no keys to set up and no separate bills.

  • 1 credit per post to any network except X. Unlimited connected accounts on every plan.
  • X costs 6 credits (75 with a link). X is the only platform that charges per post, so it's already priced in. No surprise bill ever lands on you.
  • Top up any time. One-off credit packs never expire, or stay pay-as-you-go with packs alone. See full pricing →
X / Twitter6 credits / post
LinkedIn1 credit / post
Instagram1 credit / post
TikTok1 credit / post
Facebook1 credit / post
Threads1 credit / post
Bluesky1 credit / post
YouTube1 credit / post
Pinterest1 credit / post

Ship the agent.
Not nine integrations.

Your agent learns one social interface. Direct APIs mean nine OAuth flows, nine schemas, nine rate limits and nine ways to fail. PostLake is the layer in between.

// If you build it yourself

3 to 6 months

Wiring up 9 APIs, OAuth flows, and token refresh, before a single user posts.

~$75k

A developer's time for half a year, at roughly $150k a year fully loaded. Then you own it.

forever

Platforms change their APIs constantly. Every break is yours to chase, or posting quietly dies.

// Or start on PostLake

5 min

From signup to your first live post across all networks. One integration, done.

$0

To start. The Free plan gives you 20 credits a month, no card. Paid plans from $13. Cancel anytime.

0

Upkeep on your side. Token refreshes, rate limits, breaking changes are our job, not yours.


05 / Model Context Protocol

Control it from Claude
or any AI agent.

Point any MCP client at one hosted server. The agent can observe, publish, engage and measure without a key in chat. REST is there for LangGraph, CrewAI and anything you write yourself.

claude · postlake-mcp
U
Which of last week's posts did best? Repost the top one to Instagram and Pinterest.
AI
Let me check.
✓ get_analytics({ periodDays: 7 })
✓ create_post({ profile: "my-brand", platforms: ["instagram", "pinterest"], media: ["med_8x2"] })
AI
Your Bluesky carousel won, 3.2x your usual reach. I've reposted it to Instagram and Pinterest. Want me to schedule a recap for tomorrow's peak window?
Ask PostLake to do anything…
Loop
observe, act, measure
Validate, draft, wait for approval, publish, then read what happened. That is the workflow, not a tool count.
All
networks, one setup
Paste one config and your agent can post to every network. No code to write.
3 min
to get started
Paste the config, ask in plain English, watch it happen.
0
double-posts
If an agent retries after a hiccup, it won't post twice. Sleep fine.

Agent skills

Or drop a skill into your coding agent.

One command adds PostLake to Claude Code, Cursor, Codex or Windsurf. Then just tell it to post. No keys pasted into chat, no glue code.

See all three ways in →
npx skills add postlake/postlake-mcp --all

06 / What you'll build

One layer.
Many agents to run.

Bring Claude, Cursor, LangGraph or your own runtime. PostLake is the social layer underneath them.

01

AI social agent

Let an agent observe last week's winners, draft the next post, validate it, and wait for approval. Drop into LangGraph, CrewAI, or the TypeScript SDK.

validate_postdraftsget_analytics
02

Agent content calendar

Let an agent fill next week from a changelog. Review it on a calendar. Approve drafts before anything ships. You do not need a second scheduler product, and you do not need to host one.

scheduledAttimezonedrafts
03

Analytics dashboard

Cross-platform performance in one view: impressions, reach, CTR, saves, follower growth, all normalised and benchmarked. The reporting tool teams have wanted for years.

GET /analyticsbenchmarkstrends
04

Agency client management

Manage every client’s social accounts from one integration. Unlimited connected accounts, managed connections, and one normalised API across all of them.

unlimited accountsmanaged keysmulti-client

07 / Free tools

Try the rules
before you write a line of code.

PostLake has to know exactly what every network will refuse, because its API refuses a bad post before it costs you anything. That knowledge is open at postlake.dev/tools. No account, no upload, nothing leaves your browser.

Post checker

Paste a caption, attach media, and get every network’s verdict at once with the exact change that fixes each failure.

Check a post →

Character counter

One caption counted against every limit live, including X’s own arithmetic where a link is a flat 23 characters.

Count a caption →

Image size checker

Drop an image, see who accepts it on pixels, weight and format, then make a version that fits in one click.

Check an image →

08 / FAQ

Questions agents
(and people) ask.

What PostLake is, which networks you can post to, how an agent uses it, and what a retry cannot do. Same facts in llms.txt.

What is the social media API for AI agents?

PostLake is the social infrastructure for AI agents. One REST contract and a hosted MCP server. Claude, Cursor, ChatGPT or your own agent can observe, publish, engage and measure across X, LinkedIn, Instagram, TikTok, Facebook, Threads, Bluesky, YouTube and Pinterest, with one normalised response shape.

How does an AI agent post to social media?

Connect https://api.postlake.dev/mcp and approve once over OAuth, or run npx skills add postlake/postlake-mcp --all. Then ask it to post. No API key in chat. LangGraph, CrewAI and backend agents can call the REST API with a Bearer key instead. See PostLake for agents.

Which social platforms does PostLake support?

X (Twitter), LinkedIn, Instagram, TikTok, Facebook, Threads, Bluesky, YouTube and Pinterest. Same call, same response shape. Per-network how-tos: posting API.

Do I need to create developer apps on each platform?

No. PostLake manages the connections, X included. You connect accounts and post. Bring-your-own-keys is optional.

Is there a free tier?

Yes. 20 credits a month, no card. Paid plans start at $13/month for 2,000 credits. X uses dedicated credit rates: 6 credits for text and 75 for a post with a link. Full pricing.

What stops an AI agent from double-posting?

Send an Idempotency-Key on each logical publish. Retries with the same key return the original post instead of creating another.


Give your agents
the keys to social.

Your agents bring the intelligence. PostLake is the infrastructure they act through. Sign up and connect the first channel in minutes.

Get started free →

No credit card on the free tier. See our privacy policy.