The social posting API for developers and AI agents
Connect your accounts once. Your product, script or agent posts everywhere with one call.

Three steps, then you are posting
Connect once
Link the accounts you post from. Each one goes through its own OAuth here, so your app never holds a token.
Grab a key
Create a key in the console and copy it. One starting yp_test_ reaches sandbox only, so nothing publishes while you build.
Yeet
One POST names the connections and the text. Back comes a status, an id and a permalink for each, in the same response.
One call in, every account out
You send one request. You get one result per connection back in the same response, with the id and the permalink where it worked and the platform's own reason where it did not.
curl -X POST https://api.yeetpost.com/api/v2/posts \
-H "x-api-key: $YEETPOST_API_KEY" \
-H "content-type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"text": "shipped the new api docs today",
"connectionSlugs": ["linkedin", "x"]
}'- linkedinlinkedin.com/feed/update/7231…
- xx.com/yeetpost/status/1867…
- blueskybsky.app/profile/yeetpost…
- discorddiscord.com/channels/9042…
- telegramslot 2026-08-31T09:00:00Z
- mastodonplatform_rejected: duplicate
A failed item sits next to the sent ones. Read the per-item status, not just the HTTP status.
What you get on every plan
Post
One call, six platforms, a result for each
Name the connections in a single POST. The response carries a status, an id and a permalink for each, and a platform that bounces comes back as a failed item beside the ones that went out.
Read the posting docsSchedule and queue
Yeet it later, or let the queue pick the slot
Pass scheduledFor and the post goes out at that instant. Pass queue and each connection takes its own next free slot, under a lock, so two posts queued at once never land on the same one.
See schedulingAnalytics
What the post did, read back and kept
Every post is read off its platform an hour after it goes out, then hourly for two days, then daily for a month. Ask one post for its whole history or a window for its totals. A number a platform does not report comes back null, never zero.
See the analytics endpointsTeam
More than one person on the account
Invite people by email as owner, admin or member. Members post and manage connections; admins do everything but billing; the owner keeps billing and the account itself. One bill either way.
See what a plan includesThree ways in
For your product
Post on behalf of your users. They connect their own accounts on a page carrying your name, and you hold no tokens.
profiles · hosted connect urls · scoped keys
Build a platformFor your agent
Point it at the hosted MCP server. Five tools, small enough to keep in context, nothing to search first.
list_connections · create_post · list_posts · get_post · cancel_scheduled_post
Set up an agentFor your scripts
One curl and the post is out. No SDK to install, no OAuth dance in your cron job.
one key · one body · a result per connection
Read the quickstartPay per connected account. Posts are unlimited.
Your first two accounts are free and need no credit card. Each account after that is billed at the rate of the band it falls into.
| 1 to 2 accounts | Free |
| 3 to 10 accounts | $5 |
| 11 to 100 accounts | $2.50 |
| 101 and up accounts | $1 |
Frequently asked questions
Which platforms are live?
Six of them: LinkedIn profiles and company pages, X, Bluesky, Discord channels, Telegram channels and Mastodon. Reddit, Facebook, Instagram and Threads are built and waiting on their platform's approval. Slack, SMS and email are not shipped yet.
Do my users have to see yeetpost?
No. The connect page they land on carries your name, and a scoped key cannot reach another customer's accounts. Headless mode is there if you would rather draw the page yourself.
Can I test without publishing anything?
Yes. A sandbox connection validates the post, answers with the shapes a real platform answers with and fires the same webhooks, while publishing nothing. Keys starting yp_test_ reach sandbox only, so an agent having a moment cannot yeet forty times to your real account.
What happens when one platform fails?
You still get a 200, with a failed item for that connection and sent items for the rest. Read the per-item status, not just the HTTP status.
How does an AI agent use this?
Point it at the hosted MCP server. It gets five tools it can hold in context: list_connections, create_post, list_posts, get_post and cancel_scheduled_post. No catalogue to search first.
What does it cost?
Two connected accounts are free, no card. After that you pay per account per month and the rate drops as you add more. Posts are unlimited on every plan.
Still have a question? Email support, or read the docs.