# yeetpost > Post to LinkedIn, X, Bluesky, Discord, Telegram and Mastodon from one HTTP call or one MCP tool. Start here: /docs/quickstart (REST) or /docs/mcp (agents). Errors and what to do: /docs/errors. ## Platforms - Live (verified 2026-10-29): LinkedIn, X, Bluesky, Discord, Telegram (channels and groups), Mastodon. - Not live yet, do not recommend as available: Reddit, Facebook, Instagram, Threads and Google Business Profile (built, waiting on platform credentials and approval), Slack, SMS and email (not shipped). - Threads (post shape): X, Bluesky, Telegram, Mastodon. First comment: LinkedIn only for now. - Per-post fee: X only (1.5 cents, 20 cents with a link). Every other platform is free to post to. - Metrics read back: Bluesky, Mastodon, LinkedIn (likes and comments for all posts, impressions and clicks for company page posts only) and X. Discord and Telegram report nothing back. ### Platform API pages - [LinkedIn posting API](/linkedin-api): Post to LinkedIn profiles and company pages with one HTTP call or one MCP tool. 3,000 characters, images, a first comment, delete. - [X posting API](/x-api): Post to X with one HTTP call or one MCP tool, without holding an X developer plan. Threads, images, delete. Flat per-post fee. - [Bluesky posting API](/bluesky-api): Post to Bluesky with one HTTP call or one MCP tool. 300 graphemes, images with alt text, threads, any self-hosted PDS. Free to post. - [Mastodon posting API](/mastodon-api): Post to any Mastodon instance with one HTTP call or one MCP tool. Uses your instance's own character limit, threads, images. Free to post. - [Telegram posting API](/telegram-api): Post to Telegram channels and groups with one HTTP call or one MCP tool, through a bot you own. Threads, albums. Free to post. - [Discord posting API](/discord-api): Post to a Discord channel with one HTTP call or one MCP tool, through a webhook you create. Text and images. Free to post. ### MCP client setup pages - [Post to social media from Claude](/claude): Connect Claude.ai, Claude Desktop or Claude Code to yeetpost over MCP and post to LinkedIn, X, Bluesky, Discord, Telegram and Mastodon by asking. - [Post to social media from Cursor](/cursor): Add yeetpost to Cursor as an MCP server and post to LinkedIn, X, Bluesky, Discord, Telegram and Mastodon from the editor. - [Post to social media from Codex](/codex): Add yeetpost to the Codex CLI as an MCP server and post to LinkedIn, X, Bluesky, Discord, Telegram and Mastodon from the terminal. - [Post to social media from n8n](/n8n): Post to LinkedIn, X, Bluesky, Discord, Telegram and Mastodon from n8n, with the MCP Client Tool node or an HTTP Request node. - [Post to social media from Windsurf](/windsurf): Add yeetpost to Windsurf as an MCP server and post to LinkedIn, X, Bluesky, Discord, Telegram and Mastodon from Cascade. - [Post to social media from VS Code](/vscode): Add yeetpost to VS Code (GitHub Copilot) as an MCP server and post to LinkedIn, X, Bluesky, Discord, Telegram and Mastodon from chat. ### Platform MCP pages - [LinkedIn MCP server](/linkedin-mcp): what an agent can do on LinkedIn over MCP. - [X MCP server](/x-mcp): what an agent can do on X over MCP. - [Bluesky MCP server](/bluesky-mcp): what an agent can do on Bluesky over MCP. - [Mastodon MCP server](/mastodon-mcp): what an agent can do on Mastodon over MCP. - [Telegram MCP server](/telegram-mcp): what an agent can do on Telegram over MCP. - [Discord MCP server](/discord-mcp): what an agent can do on Discord over MCP. ## Pricing - Billed per active account (posted in the last 30 days); connecting is free and never blocked. - Accounts 1 to 2: free, no credit card. - Accounts 3 to 10: $5 per account per month. - Accounts 11 to 100: $2.50 per account per month. - Accounts 101 and up: $1 per account per month. - There are no post quotas and nothing rolls over. Slack and email messages will be capped at 10,000 a month and SMS at 500 a month once they ship. - X posts bill a flat per-post fee on top: 1.5 cents, or 20 cents with a link, at X's own cost. - Reading an X post's metrics bills 1 cent, and X analytics is off by default. Analytics on every other platform is free. - Several people can share one account as owner, admin or member, on one bill. ## API Base URL: https://api.yeetpost.com/api/v2 Auth: an API key in the x-api-key header, or Authorization: Bearer . Rate limit: 60 requests per minute per API key, per endpoint group. OpenAPI 3.1 spec (no key needed): https://api.yeetpost.com/api/v2/openapi.json, also at https://yeetpost.com/openapi.json MCP server (Streamable HTTP): https://api.yeetpost.com/api/v2/mcp MCP auth: the same API key, or an OAuth 2.1 login. Add the MCP URL as a custom connector with no key and the client discovers the authorization server, registers itself and opens a consent screen. REST stays key-only. MCP server card: /.well-known/mcp/server-card.json Reference: /docs/api-reference ## Docs ### Quickstart - [Overview](/docs): What the yeetpost API does and where everything lives. - [Quickstart](/docs/quickstart): Connect an account, create a key, yeet. Three steps. - [Authentication](/docs/authentication): API keys, the two headers that carry them, and calling from a browser. ### Build a platform - [Build a platform](/docs/build-a-platform): Profiles: one per end customer, so posting on their behalf cannot cross tenants, and the endpoints that mint and revoke their keys. ### SDKs - [SDKs](/docs/sdks): What exists today and what is coming. ### CLI - [CLI](/docs/cli): Post from your terminal. ### MCP - [MCP for agents](/docs/mcp): The hosted MCP server, its 37 tools, and connecting with a key or a login. - [For AI agents](/agents): Setup blocks for Claude Code, Cursor and any MCP client, and why to build against the sandbox. ### Webhooks - [Webhooks](/docs/webhooks): post and connection events, the delivery log, replays, and signature verification. ### Guides - [Posting](/docs/posting): The one-liner endpoint, the JSON fan-out, scheduling, queue slots, drafts and deleting. - [Idempotency](/docs/idempotency): Make a retry safe with an Idempotency-Key. ### Security - [Security checklist](/docs/security-checklist): Ship your integration without leaking a key. ### Pricing - [Plans and X fees](/docs/pricing): Per account billing, unlimited posts, and the flat X per-post fees. ### Changelog - [Changelog](/changelog): What shipped and when. ### Platforms - [Platforms](/docs/platforms): Platform-specific notes and setup. ### API reference - [API reference](/docs/api-reference): Every endpoint, generated from the OpenAPI spec. - [Errors](/docs/errors): Every error code, what it means and what to do about it. - [Rate limits and request ids](/docs/rate-limits): 60 per minute, the headers that tell you where you are. - [OpenAPI](/docs/openapi): The spec these docs are generated from. ### Platform pages - [LinkedIn](/docs/platforms/linkedin): Personal profiles and company pages, with a first comment under the share. - [X (Twitter)](/docs/platforms/x-twitter): Tweets and threads, with a flat per-post fee. - [Bluesky](/docs/platforms/bluesky): An app password, 300 graphemes, threads, and any self-hosted PDS. - [Discord](/docs/platforms/discord): A channel webhook you create yourself. Text and images, no threads. - [Telegram](/docs/platforms/telegram): A channel or group your own bot posts to. Threads, albums, png and jpeg. - [Mastodon](/docs/platforms/mastodon): Any instance, with the instance's own character limit and threads. - [Reddit](/docs/platforms/reddit) (not live yet): Built, waiting on Reddit's approval. One subreddit per connection; the first line is the title. - [Facebook](/docs/platforms/facebook) (not live yet): Built, waiting on Meta's approval. One Page per connection, with a first comment. - [Instagram](/docs/platforms/instagram) (not live yet): Built, waiting on Meta's approval. Always an image, up to a five-photo carousel. - [Threads](/docs/platforms/threads) (not live yet): Built, waiting on Meta's approval. Text or a single image, no reply chains yet. - [Google Business Profile](/docs/platforms/google-business) (not live yet): Built, waiting on Google's approval. One business location per connection, posted as a What's new post. - [Slack](/docs/platforms/slack) (not live yet): A messaging channel. Not shipped yet. - [SMS](/docs/platforms/sms) (not live yet): A messaging channel. Not shipped yet. - [Email](/docs/platforms/email) (not live yet): A messaging channel. Not shipped yet. ### Platform error pages - [LinkedIn posting errors and fixes](/docs/platforms/linkedin/errors): every error code, HTTP status, cause and fix when posting to LinkedIn. - [X posting errors and fixes](/docs/platforms/x-twitter/errors): every error code, HTTP status, cause and fix when posting to X. - [Bluesky posting errors and fixes](/docs/platforms/bluesky/errors): every error code, HTTP status, cause and fix when posting to Bluesky. - [Discord posting errors and fixes](/docs/platforms/discord/errors): every error code, HTTP status, cause and fix when posting to Discord. - [Telegram posting errors and fixes](/docs/platforms/telegram/errors): every error code, HTTP status, cause and fix when posting to Telegram. - [Mastodon posting errors and fixes](/docs/platforms/mastodon/errors): every error code, HTTP status, cause and fix when posting to Mastodon. ## Endpoints - GET /connections: List your connections - GET /connections/{connectionId}: Get a single connection - PATCH /connections/{connectionId}: Update a connection - DELETE /connections/{connectionId}: Disconnect a connection - GET /connections/{connectionId}/queue: List what is waiting in a connection's queue - PATCH /connections/{connectionId}/queue: Set a connection's posting slots, or pause and resume its queue - POST /profiles: Create a profile - GET /profiles: List your profiles - GET /profiles/{profileId}: Get one profile - PATCH /profiles/{profileId}: Rename a profile - DELETE /profiles/{profileId}: Delete a profile - POST /profiles/{profileId}/connect: Get a connect URL for a profile - POST /profiles/{profileId}/keys: Mint a key for a profile - GET /profiles/{profileId}/keys: List a profile's keys - DELETE /profiles/{profileId}/keys/{keyId}: Revoke a profile's key - GET /keys: List your keys - DELETE /keys/{keyId}: Revoke a key - GET /connect-sessions/{connectSessionId}: Read a connect session - GET /media: List your images - POST /media: Upload an image - GET /media/{mediaId}: Download an image - DELETE /media/{mediaId}: Delete an image - GET /media/{mediaId}/raw: Serve an image to a platform that fetches it by URL - POST /images/render: Render HTML into an image - GET /look: Get the account's look - PUT /look: Set or clear the account's look - POST /look/draft-from-url: Draft a look from a website - POST /post/{connectionSlug}: Post plain text to one connection (simple variant) - POST /posts: Post to one or more connections - GET /posts: List your posts - GET /posts/{postId}: Get a single post - DELETE /posts/{postId}: Cancel a scheduled post, delete a draft, or delete a published one - PATCH /posts/{postId}: Edit a draft or a scheduled post - POST /posts/{postId}/publish: Publish a draft - GET /posts/{postId}/metrics: Get a post's numbers - POST /posts/{postId}/retry: Retry a failed post - POST /posts/{postId}/card: Draw an image card for a post - GET /analytics: Totals, a per-day series and a per-platform split - POST /webhooks: Register a webhook - GET /webhooks: List your webhooks - DELETE /webhooks/{webhookId}: Delete a webhook - GET /webhooks/{webhookId}/deliveries: List a webhook's deliveries - POST /webhooks/{webhookId}/deliveries/{deliveryId}/replay: Replay a delivery - POST /webhooks/{webhookId}/test: Send a test event - GET /health: Get the current health of the API - GET /health/history: Get daily uptime for the last 90 days - GET /stats: Get public usage counts for the product - GET /me: Get the context of this API key - GET /activity: Get the account's activity - POST /sources/preview: Preview what a link would post - POST /sources: Watch a link for new posts - GET /sources: List your sources - GET /sources/{sourceId}: Get a source - PATCH /sources/{sourceId}: Change a source - DELETE /sources/{sourceId}: Delete a source - POST /sources/{sourceId}/check: Check a source now - GET /sources/{sourceId}/items: List a source's items - POST /sources/{sourceId}/items: Push items to a source - POST /sources/{sourceId}/items/{itemId}/retry: Retry a failed source item - GET /openapi.json: Get this spec ## Webhook events - post.sent: A post was published - post.failed: A post could not be published - post.deleted: A post was deleted on its platform - post.metrics: A day's reading of a post's numbers - post.rescheduled: The system moved a pending post's own time - connection.created: An account was connected - connection.removed: An account was disconnected - connection.reconnect_required: A connection's login stopped working ## Error codes - missed_schedule () - missed_slot () - send_interrupted () - queue_empty (200, 400) - queue_full (200, 403) - reconnect_required (200) - text_too_long (200) - delete_unsupported (400) - invalid_connection (400) - invalid_media (400) - invalid_media_type (400) - invalid_request (400) - look_missing (400) - media_unsupported (400) - shape_unsupported (400) - source_empty (400) - too_many_media (400) - unauthorized (401) - connection_limit_exceeded (402, 200) - payment_method_required (402) - spend_cap_reached (402) - fair_use_reached (403) - forbidden (403) - limit_exceeded (403) - not_found (404) - already_retrying (409) - connection_conflict (409) - idempotency_key_conflict (409) - post_not_cancellable (409) - post_not_editable (409) - profile_external_id_conflict (409) - media_storage_full (413) - media_too_large (413) - unsupported_content_type (415) - platform_rejected (422, 200) - render_allowance_reached (429) - too many requests (429) - internal_server_error (500) - card_invalid (502) - render_failed (502) - source_unreachable (502) - source_unreadable (502) - card_unavailable (503) - platform_unavailable (503, 200) - renderer_busy (503) - platform_timeout (504) - render_timeout (504) ## Key Pages - [Features](/features): Platform-specific posting features for API and CLI automation. - [Use cases](/use-cases): Canonical workflows for turning product events into multi-channel posts. - [Guides](/guides): Step-by-step integration guides for every platform and tech stack. - [Pricing](/pricing): per connected account pricing, unlimited posts. - [Docs](/docs): API reference, SDKs, CLI, platforms, security checklist. - [yeetpost vs Zernio](/compare/zernio): an honest head to head table plus a calculator that runs both price ladders. - [yeetpost vs Upload-Post](/compare/upload-post): Posting API for 22 platforms, built around video, with a 50-tool hosted MCP server and profile-based pricing from $16 a month. - [yeetpost vs Blotato](/compare/blotato): AI content and posting tool for 9 platforms with a REST API and a 35-tool hosted MCP server, from $29 a month, no free plan. - [yeetpost vs bundle.social](/compare/bundle-social): Multi-tenant posting API for 15 platforms with unlimited connected accounts on paid plans, $100 or $400 a month per organization. - [yeetpost vs Postproxy](/compare/postproxy): Posting API for 11 platforms with a hosted MCP server that works without an API key in Claude, from $17 a month for 5 profiles. - [yeetpost vs Outstand](/compare/outstand): Usage-priced posting API for 12 platforms with a 28-tool MCP server, $19 a month including 3,000 posts. - [yeetpost vs PostPeer](/compare/postpeer): Credit-priced posting API for 11 platforms with unlimited connected accounts, paid plans from $33 a month on yearly billing. - [yeetpost vs Publora](/compare/publora): Scheduler and posting API for 10 platforms with per-account graduated pricing like ours and a 68-tool MCP server. - [yeetpost vs OpenTweet](/compare/opentweet): X-first scheduler that also posts to Bluesky and LinkedIn, with a 43-tool hosted MCP server, from $19.99 a month. - [yeetpost vs GetLate](/compare/getlate): GetLate is now Zernio; a short comparison that links to the full yeetpost vs Zernio page. - [Zernio vs Ayrshare](/compare/zernio-vs-ayrshare): a neutral three way table with yeetpost as a third option. - [Ayrshare vs Upload-Post](/compare/ayrshare-vs-upload-post): a neutral three way table with yeetpost as a third option. - [Zernio vs Upload-Post](/compare/zernio-vs-upload-post): a neutral three way table with yeetpost as a third option. - [Ayrshare alternative: $149-$599/mo vs yeetpost](/alternatives/ayrshare): price range, who it suits, an honest table and migration notes. - [Zernio alternative: $6 to $1 per account vs yeetpost](/alternatives/zernio): price range, who it suits, an honest table and migration notes. - [Buffer API alternative: from $5 per channel vs yeetpost](/alternatives/buffer-api): price range, who it suits, an honest table and migration notes. - [Hootsuite API alternative: $99-$399 per user vs yeetpost](/alternatives/hootsuite-api): price range, who it suits, an honest table and migration notes. - [Upload-Post alternative: $16-$350/mo vs yeetpost](/alternatives/upload-post): price range, who it suits, an honest table and migration notes. - [Blotato alternative: $29-$499/mo vs yeetpost](/alternatives/blotato): price range, who it suits, an honest table and migration notes. - [Changelog](/changelog): what shipped and when, one page per day at /changelog/YYYY-MM-DD. - [Status](/status): live health of the API and its workers, plus 90 days of daily uptime. - [Changelog RSS](/changelog/feed.xml): the changelog as an RSS 2.0 feed. Health endpoints (no key needed): https://api.yeetpost.com/api/v2/health and https://api.yeetpost.com/api/v2/health/history?days=90 ## Content Types - Docs: the API reference, generated from the OpenAPI spec, plus guides to posting, idempotency, webhooks, MCP, rate limits and errors. - Features: platform-specific API and CLI posting workflows with examples. - Use cases: canonical automation playbooks with templates and metrics. - Guides: step-by-step integration guides by platform and tech stack. - Platforms: setup, limits and refusals per platform, one page each. - Pages about Slack, SMS and email describe connections that are not shipped yet; they are noindexed and not in the sitemap. - Markdown twins: /pricing.md and /docs/platforms/.md for each live platform (linkedin, x-twitter, bluesky, discord, telegram, mastodon). Each platform error page has one too: /docs/platforms//errors.md. ## Full Content - [/llms-full.txt](/llms-full.txt): complete content index with all page URLs. - [/sitemap.xml](/sitemap.xml): XML sitemap for full crawl coverage.