Start here
Quickstart
One HTTP call posts to LinkedIn, X and Bluesky. No SDK, no OAuth dance in your app: you connect the accounts once in the dashboard, then post to them by slug.
#1. Connect an account
Sign in at app.yeetpost.com and connect LinkedIn or X. Each connection gets a slug, which is how you address it from the API: linkedin, x, alexdoe_linkedin.
#2. Create an API key
Keys live in settings. Keep it in an environment variable, not in your source.
export YEETPOST_API_KEY="yp_secret_..."#3. Yeet
The one-liner endpoint takes the post as the request body, as plain text. This is the whole thing.
curl -X POST "https://api.yeetpost.com/api/v2/post/linkedin" \
-H "x-api-key: $YEETPOST_API_KEY" \
-H "content-type: text/plain" \
-d 'shipped the new api docs today'A post to LinkedIn or X comes back with a permalink: { "platform": "linkedin", "link": "https://..." }.
#Not sure what you can post to?
Ask. Every slug you can use is one call away.
curl "https://api.yeetpost.com/api/v2/connections" \
-H "x-api-key: $YEETPOST_API_KEY"{
"connections": [
{
"slug": "linkedin",
"description": "Alex Doe (LinkedIn)"
},
{
"slug": "x",
"description": "@alexdoe (X)"
}
]
}#Beyond a shell one-liner
For anything real, use the JSON endpoint. It posts to several connections at once, gives you a post id per connection, takes an Idempotency-Key so retries are safe, and can schedule.
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"
]
}'200 with a failed item in results. The request as a whole only errors out (400 invalid_connection) when none of the slugs match a connection of yours.#Where to next
- Posting: fan-out, scheduling and cancelling.
- Webhooks: find out how a scheduled post went.
- MCP: let an agent post without writing glue.
- API reference: every endpoint, generated from the spec.