Data & analysis

PostLake publish

Try it

Publish a social media post right now to one or more connected accounts (X, LinkedIn, Instagram, TikTok, Facebook, Threads, Bluesky, YouTube, Pinterest) through PostLake. Use when the user wants to post immediately.

What it does

Publish a social media post right now to one or more connected accounts (X, LinkedIn, Instagram, TikTok, Facebook, Threads, Bluesky, YouTube, Pinterest) through PostLake. Use when the user wants to post immediately.

The skill document

PostLake — publish a post now

Publishes one caption to as many connected accounts as you like, in one call. Each platform is attempted independently and the response reports per-platform state and url.

Auth

Authorization: Bearer $POSTLAKE_API_KEY

Base URL https://api.postlake.dev.

Choosing where to post

Two ways to say which accounts a post goes to — pick whichever is simpler:

  • By profile (simplest) — a profile is a named group of connected accounts (a brand, a client, "me"). Pass "profile": "my-brand" and it posts to every account in it. Add "platforms": ["bluesky","linkedin"] to narrow it to certain networks. No id lookup needed.
  • By account id (precise) — pass "accounts": ["acc_…"] for exact accounts. Get the ids from the postlake-accounts skill (GET /v1/social-accounts).

Provide profile, accounts, or both. At least one is required.

Publish

# Simplest: post to a whole profile.
curl -X POST https://api.postlake.dev/v1/posts \
  -H "Authorization: Bearer $POSTLAKE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "text": "Shipping something new today 🚀",
    "profile": "my-brand"
  }'

To hit specific networks in that profile add "platforms": ["bluesky"]; to target exact accounts use "accounts": ["acc_84a4…","acc_e553…"] instead.

Response (normalised — reason over targets):

{
  "id": "post_…",
  "state": "published",
  "targets": [
    { "platform": "bluesky",  "state": "published", "url": "https://bsky.app/profile/…/post/…" },
    { "platform": "linkedin", "state": "published", "url": "https://www.linkedin.com/feed/update/…" }
  ]
}

state per target is one of published, processing (async platforms like TikTok/YouTube — poll GET /v1/posts/{id} until final), failed (see target.error), or scheduled.

Options

  • Attach media: upload first with the postlake-media skill, then pass the ids: "media": ["med_…"] (with optional "mediaAlt": ["alt text"]).
  • Per-platform captions: "textOverrides": { "x": "shorter for X", "linkedin": "…" }.
  • Platform-specific settings: "platformOptions": { "pinterest": { "boardId": "…" }, "youtube": { "title": "…", "privacyStatus": "private" } }.

Rules to respect

  • Idempotency: always send a unique Idempotency-Key header so a retry replays the same result instead of double-posting.
  • X: needs a paid plan (X is the only network that charges). On a free plan an X target returns error.type: "entitlement_exceeded" — other platforms still go out. Don't treat that as a total failure.
  • Media-required platforms: Instagram, TikTok, YouTube, Pinterest need media — a text-only post to them fails with invalid_input.
  • A failed target never sinks the others; report which went out and which didn't.

Related skills

List the social accounts connected to PostLake (X, LinkedIn, Instagram, TikTok, Facebook, Threads, Bluesky, YouTube, Pinterest) and their status. Use this first, before publishing, to get the account ids to post to.

Upload an image or video to PostLake and attach it to a post. Use when a post needs media, or for platforms that require it (Instagram, TikTok, YouTube, Pinterest).

Schedule a social media post for a future time through PostLake, and list, reschedule, or cancel scheduled posts. Use when the user wants to post later or plan a calendar.

Create, schedule, and publish social media posts across Instagram, TikTok, YouTube, X, LinkedIn, Facebook, Pinterest, Threads, and Bluesky via the Social0 CLI (preferred) or MCP. Covers account listing, media upload, drafts, instant publish, scheduling, and per-platform publish status.

2 installs

Publish and schedule social media posts across LinkedIn, Bluesky, Instagram, TikTok, Pinterest, YouTube Shorts and Mastodon, then verify delivery with per-post receipts. Uses the Postlia REST API.

1 installs

Manage social media through PostNext - schedule, publish, and analyze posts across Twitter/X, Instagram, LinkedIn, Threads, YouTube, TikTok, and Bluesky via...