yeetpostyeetpost

Bluesky posting API

yeetpost posts to Bluesky with one HTTP call: POST the text to /api/v2/post/bluesky with an API key. You connect with a Bluesky app password, so there is no OAuth flow to build, and every thread segment is checked against the 300 grapheme limit before anything goes out.

Post with curl

curl -X POST https://api.yeetpost.com/api/v2/post/bluesky \
  -H "x-api-key: $YEETPOST_API_KEY" \
  -d 'we rewrote the scheduler. three things we got wrong:'

The body is the post. The slug in the path is your connection's slug; GET /api/v2/connections lists yours. For several connections, scheduling, drafts and idempotency use POST /api/v2/posts, see the posting guide.

Post from an agent over MCP

claude mcp add --transport http \
  --header 'Authorization: Bearer ${YEETPOST_API_KEY}' \
  yeetpost https://api.yeetpost.com/api/v2/mcp

# then ask Claude: post this to my Bluesky

The hosted MCP server also accepts an OAuth login, so claude.ai can add it as a custom connector with no key. See MCP for agents.

Bluesky limits

Text300 graphemes
ImagesUp to 4 per post, 1 MB each (png, jpeg, gif, webp), alt text sent
ThreadsYes, up to 24 replies under the head post
First commentNo
DeleteYes
Metrics read backYes

A post over a text limit is refused whole with 400 text_too_long and a field naming the part to shorten, before anything is sent.

Connecting Bluesky

Create an app password in Bluesky settings and paste it with your handle in the yeetpost dashboard. Running your own PDS is supported with an https service URL.

Fees

Posting to Bluesky is free. Billing is per connected account: the first 2 are free.

Posts are unlimited on every plan. See pricing.

Docs

Last verified 2026-10-29