Schedule via API

Schedule social posts
with one API call.

Scheduling in PostLake is one extra field. Send the post you want with a scheduledAt timestamp and PostLake holds it, then publishes at that moment across every network — with a webhook the instant it goes live or fails.

Get started free →

No card for the free tier · one API for every network · full MCP access

The fastest way: ask your agent

Prefer no code at all? Connect PostLake's hosted MCP server to your AI assistant (Claude, ChatGPT, Cursor and others) and just ask it to post. It authorizes over OAuth — no key to paste. See the MCP guide.

Schedule a post

Same call you'd use to publish now — just add the scheduledAt field:

curl -X POST https://api.postlake.dev/v1/posts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Scheduled from PostLake ⏰",
    "platforms": ["bluesky", "linkedin"],
    "profile": "my-brand",
    "scheduledAt": "2026-08-01T09:00:00Z"
  }'

Step by step

  1. Create an API key and connect your accounts under a profile.
  2. POST to /v1/posts exactly as you would to publish now, but add a scheduledAt field.
  3. Use an ISO 8601 timestamp in UTC (e.g. 2026-08-01T09:00:00Z) — PostLake rejects an unparseable time with a clear 400.
  4. Listen for the webhook (or poll the post) to know the instant it publishes or fails on each network.

Good to know

Why PostLake

One call, every network

List the platforms in one request and PostLake posts to all of them, returning a single normalised shape — your code never branches per platform.

No app setup

PostLake manages each network's developer app and OAuth for you — nothing to register or get reviewed yourself.

Agent-safe

Idempotency keys mean a retry never double-posts, and analytics come back normalised so an agent can decide what to post next.

Honest pricing

A free tier to start, then usage-based credits — one per post. You only pay for posts that actually publish.

Common questions

How do I schedule a social media post with an API?

Send your post to PostLake's /v1/posts endpoint with a scheduledAt timestamp (ISO 8601, UTC). PostLake queues it and publishes at that time across every network you listed, then fires a webhook on the result.

What time format does scheduledAt use?

ISO 8601 in UTC, like 2026-08-01T09:00:00Z. An unparseable value is rejected with a clean 400 rather than failing silently.

Can I cancel or change a scheduled post?

Yes — a scheduled post can be cancelled before it fires, from the dashboard or the API.

More guides

Python · Node.js · n8n · Make · Zapier · All guides · Full docs

One API and MCP server for every major network. Free to start.

Get started free →