# PostEverywhere API > Schedule and publish social media content across 11 platforms (Instagram, TikTok, YouTube, LinkedIn, Facebook, X, Threads, Pinterest, Bluesky, Telegram, Discord) from a single API. This file is the index for LLM agents — fetch /llms-full.txt for the complete docs as one markdown blob. ## Quick facts - Base URL: `https://app.posteverywhere.ai/api/v1` - Auth: `Authorization: Bearer pe_live_` - All timestamps are UTC ISO 8601 with `Z` suffix - All field names are snake_case - Round-trip principle: every name in a request also appears in the response with the same meaning ## Agent system prompt (drop-in template for any LLM agent) - [Agent System Prompt](https://developers.posteverywhere.ai/integrations/agent-system-prompt) — copy-paste system prompt that teaches any LLM agent the canonical field names, error handling, and the most common LLM-invented mistakes to avoid ## Getting Started - [Social Media Post API Documentation](https://developers.posteverywhere.ai/): Schedule and publish social media content across Instagram, TikTok, YouTube, LinkedIn, X, Facebook, Threads, Pinterest, Bluesky, Telegram, and Discord from a single API. - [API Authentication - API Keys & Bearer Tokens](https://developers.posteverywhere.ai/authentication): How to authenticate with the PostEverywhere API using Bearer tokens. Generate API keys, manage scopes, and secure your integration. - [Quick Start Guide](https://developers.posteverywhere.ai/quick-start): Get up and running with the PostEverywhere API in under 5 minutes. Create your first cross-platform social media post. ## API Reference - [Accounts](https://developers.posteverywhere.ai/api/accounts): Accounts - [AI](https://developers.posteverywhere.ai/api/ai): AI - [Analytics](https://developers.posteverywhere.ai/api/analytics): Analytics - [Auth](https://developers.posteverywhere.ai/api/auth): Auth - [Create up to 50 posts in one call](https://developers.posteverywhere.ai/api/bulk-create-posts): Each item is dispatched through the same validation as `createPost` - [Campaigns](https://developers.posteverywhere.ai/api/campaigns): Campaigns - [Finalize a media upload (step 3 of 3)](https://developers.posteverywhere.ai/api/complete-media-upload): Call after uploading the file to the presigned `upload_url`. Verifies - [Connect a Bluesky account (headless, app password)](https://developers.posteverywhere.ai/api/connect-bluesky): Requires an API key. Use an App Password (Bluesky Settings → App - [Connect telegram, discord, or bluesky directly with credentials](https://developers.posteverywhere.ai/api/connect-credential-account): Connects a credential-based platform entirely through the API, no - [Connect a Discord channel (headless, webhook URL)](https://developers.posteverywhere.ai/api/connect-discord): Requires an API key. Create the webhook in Discord under Server - [Connect a Telegram channel (headless, bot token)](https://developers.posteverywhere.ai/api/connect-telegram): Requires an API key. The bot (from @BotFather) must be an - [Create a campaign](https://developers.posteverywhere.ai/api/create-campaign): Campaigns group related posts (assign via `campaign_id` when listing - [Mint an OAuth connect link for a new social account](https://developers.posteverywhere.ai/api/create-connect-link): Returns a short-lived (10 minute) authorization URL for connecting a - [Create, schedule, or draft a post](https://developers.posteverywhere.ai/api/create-post): Omit `scheduled_for` to publish immediately; provide it (ISO 8601, - [Mint an OAuth link to repair an existing broken account](https://developers.posteverywhere.ai/api/create-reconnect-link): Returns a short-lived (10 minute) authorization URL that repairs an - [Create a webhook subscription](https://developers.posteverywhere.ai/api/create-webhook): PostEverywhere POSTs event payloads to your URL, signed with - [Delete a campaign](https://developers.posteverywhere.ai/api/delete-campaign): Posts in the campaign survive — their campaign_id is set to null. - [Delete a media file](https://developers.posteverywhere.ai/api/delete-media): If the media is attached to scheduled posts the delete is refused with - [Delete a post and all its destinations](https://developers.posteverywhere.ai/api/delete-post): Permanent. Fires the `post.deleted` webhook event. - [Delete a webhook subscription](https://developers.posteverywhere.ai/api/delete-webhook): Cascades to stored deliveries. - [Generate social media captions with AI](https://developers.posteverywhere.ai/api/generate-caption): Generates 1-5 captions for a topic, styled per platform/tone/length. - [Generate an image with AI and store it in the media library](https://developers.posteverywhere.ai/api/generate-image): Generates one image via FAL AI, stores it in the media library and - [Get a single connected social account](https://developers.posteverywhere.ai/api/get-account): Account IDs are integers (as returned by `GET /accounts`), not UUIDs. - [Get a detailed health report for an account](https://developers.posteverywhere.ai/api/get-account-health): Tells clients whether an account is currently usable (token alive, no - [Aggregate post counters and engagement metrics for a time window](https://developers.posteverywhere.ai/api/get-analytics-summary): Buckets posts created in the window by derived status, breaks down - [Get a campaign](https://developers.posteverywhere.ai/api/get-campaign): Fetch one campaign by id — name, description, color, status, and - [Get current API key context, organization, quota and usage](https://developers.posteverywhere.ai/api/get-me): Returns who the key belongs to, its scopes, the organization's - [Get media status and details](https://developers.posteverywhere.ai/api/get-media): `media_status` stays `uploading` until you call `/complete` — polling - [Get platform composer rules](https://developers.posteverywhere.ai/api/get-platform-rules): Server-authoritative composer rules for every supported platform: - [Get a post with destination statuses](https://developers.posteverywhere.ai/api/get-post): For drafts, the chosen accounts and per-platform content are surfaced - [Get per-platform publish results for a post](https://developers.posteverywhere.ai/api/get-post-results): Poll this after an immediate publish. Each destination's status moves - [Get a webhook subscription (without secret)](https://developers.posteverywhere.ai/api/get-webhook): Fetch one webhook subscription — URL, subscribed events, active - [Upload media (direct or presigned)](https://developers.posteverywhere.ai/api/init-media-upload): TWO modes, selected by the request Content-Type. - [Introspection](https://developers.posteverywhere.ai/api/introspection): Introspection - [List connected social accounts](https://developers.posteverywhere.ai/api/list-accounts): Returns all active social accounts in the organization with a brief - [List campaigns in the workspace](https://developers.posteverywhere.ai/api/list-campaigns): Returns every campaign in the workspace with name, color, status, - [List media library items](https://developers.posteverywhere.ai/api/list-media): Newest first. `pagination` echoes `limit`/`offset` only (no total). - [List posts with filters](https://developers.posteverywhere.ai/api/list-posts): Post status is derived live from per-destination statuses (the raw - [List webhook subscriptions](https://developers.posteverywhere.ai/api/list-webhooks): The signing secret is never included — it is returned only on creation. - [Media](https://developers.posteverywhere.ai/api/media): Media - [Platform Rules](https://developers.posteverywhere.ai/api/platform-rules): Platform Rules - [Poll a device login and mint the API key on approval](https://developers.posteverywhere.ai/api/poll-device-token): UNAUTHENTICATED. Poll every 5 s with the `device_code`. Non-terminal - [Poll a connect session until the browser OAuth completes](https://developers.posteverywhere.ai/api/poll-social-connect): Requires the SAME API key that started the session. Resolves to - [PostEverywhere API Reference](https://developers.posteverywhere.ai/api/posteverywhere-api-reference): Public v1 API for PostEverywhere — schedule and publish content across - [Posts](https://developers.posteverywhere.ai/api/posts): Posts - [Bulk-retry failed destinations by filter](https://developers.posteverywhere.ai/api/retry-failed-posts): Retries every failed destination matching the filter (at least one - [Retry all failed destinations of one post](https://developers.posteverywhere.ai/api/retry-post): Resets every `failed` destination of the post to `queued` with a fresh - [Schedule (publish) a draft](https://developers.posteverywhere.ai/api/schedule-post): Turns a draft into a live scheduled/publishing post: flips the post to - [AccountHealthReport](https://developers.posteverywhere.ai/api/schemas/accounthealthreport) - [AnalyticsSummary](https://developers.posteverywhere.ai/api/schemas/analyticssummary) - [BulkResultEnvelope](https://developers.posteverywhere.ai/api/schemas/bulkresultenvelope) - [Campaign](https://developers.posteverywhere.ai/api/schemas/campaign) - [ConnectCompletedEnvelope](https://developers.posteverywhere.ai/api/schemas/connectcompletedenvelope) - [ConnectedAccountResult](https://developers.posteverywhere.ai/api/schemas/connectedaccountresult) - [CreatePostRequest](https://developers.posteverywhere.ai/api/schemas/createpostrequest): Body for createPost (and each item of bulkCreatePosts). camelCase - [DestinationMetrics](https://developers.posteverywhere.ai/api/schemas/destinationmetrics): Engagement metrics fetched from the platform (null until first fetch; only some platforms have metric fetchers) - [DraftCreated](https://developers.posteverywhere.ai/api/schemas/draftcreated): createPost response when draft: true - [ErrorBody](https://developers.posteverywhere.ai/api/schemas/errorbody) - [ErrorEnvelope](https://developers.posteverywhere.ai/api/schemas/errorenvelope) - [GeneratedImage](https://developers.posteverywhere.ai/api/schemas/generatedimage): generateImage response — the image is already in the media library - [Me](https://developers.posteverywhere.ai/api/schemas/me) - [MediaCompleted](https://developers.posteverywhere.ai/api/schemas/mediacompleted): completeMediaUpload response - [MediaDetail](https://developers.posteverywhere.ai/api/schemas/mediadetail) - [MediaItem](https://developers.posteverywhere.ai/api/schemas/mediaitem): Media library item (listMedia shape) - [MediaStatus](https://developers.posteverywhere.ai/api/schemas/mediastatus): uploading until /complete is called; it never flips to ready on its own - [MediaUploadTicket](https://developers.posteverywhere.ai/api/schemas/mediauploadticket): initMediaUpload response — where and how to send the file bytes - [Meta](https://developers.posteverywhere.ai/api/schemas/meta): Response metadata. request_id is an 8-char correlation id (absent on auth-layer 401/402). - [Pagination](https://developers.posteverywhere.ai/api/schemas/pagination) - [PlatformRule](https://developers.posteverywhere.ai/api/schemas/platformrule): Composer rules for one platform - [Post](https://developers.posteverywhere.ai/api/schemas/post): Post as returned by listPosts / getPost - [PostCreated](https://developers.posteverywhere.ai/api/schemas/postcreated): createPost response for a scheduled/immediate post - [PostDestination](https://developers.posteverywhere.ai/api/schemas/postdestination): One platform/account target of a post - [PostResult](https://developers.posteverywhere.ai/api/schemas/postresult): Per-destination publish result (getPostResults) - [PostStatus](https://developers.posteverywhere.ai/api/schemas/poststatus): Derived from live destination statuses (the stored post_status column is frozen at creation) - [SocialAccount](https://developers.posteverywhere.ai/api/schemas/socialaccount) - [UpdatedPost](https://developers.posteverywhere.ai/api/schemas/updatedpost): Post as returned by updatePost (a slimmer shape than getPost) - [Webhook](https://developers.posteverywhere.ai/api/schemas/webhook) - [WebhookEventType](https://developers.posteverywhere.ai/api/schemas/webhookeventtype) - [Start a device-grant login (RFC 8628 style)](https://developers.posteverywhere.ai/api/start-device-auth): UNAUTHENTICATED. Show the returned `user_code` and - [Start a browser OAuth connect session](https://developers.posteverywhere.ai/api/start-social-connect): Requires an API key (session fallback rejected with - [Send a signed test payload to a webhook URL](https://developers.posteverywhere.ai/api/test-webhook): Sends a synthetic ping (payload has `data.test: true`) so you can - [Update a campaign](https://developers.posteverywhere.ai/api/update-campaign): At least one of name, description, color, status is required. - [Update a scheduled or draft post](https://developers.posteverywhere.ai/api/update-post): Only posts whose derived status is `scheduled` or `draft` can be - [Update a webhook subscription](https://developers.posteverywhere.ai/api/update-webhook): At least one of url, events, name, description, is_active is required. - [One-shot import of a public image or MP4 video URL](https://developers.posteverywhere.ai/api/upload-media-from-url): Fetches the URL server-side and stores it — no presign/PUT/complete - [Webhooks](https://developers.posteverywhere.ai/api/webhooks): Webhooks ## Integrations - [Agent System Prompt — Drop-in Template for Any LLM Agent](https://developers.posteverywhere.ai/integrations/agent-system-prompt): A copy-paste system prompt that teaches any LLM agent (Claude, GPT, Gemini, open-source) how to call the PostEverywhere API correctly. Covers field names, the round-trip principle, UTC handling, and the most common LLM mistakes. - [Build AI Agents with PostEverywhere API](https://developers.posteverywhere.ai/integrations/agents): How to build AI agents that schedule and publish social media posts via the PostEverywhere API. Works with OpenClaw, LangChain, CrewAI, AutoGen, and any agent framework. - [Use PostEverywhere with Claude - AI Social Media Scheduling](https://developers.posteverywhere.ai/integrations/claude): Schedule and publish social media posts using Claude AI. Connect PostEverywhere to Claude Code, Claude Desktop, and Claude API for AI-powered social media management. - [MCP Server - Use PostEverywhere with Claude, Cursor & AI Agents](https://developers.posteverywhere.ai/integrations/mcp): Connect PostEverywhere to Claude Code, Cursor, Windsurf, and other AI tools via MCP (Model Context Protocol). Schedule social media posts from your IDE. - [PostEverywhere SDKs & CLI Tools](https://developers.posteverywhere.ai/integrations/sdk): Official PostEverywhere Node.js SDK and CLI for scheduling social media posts. Install via npm, authenticate, and start publishing. - [Use PostEverywhere with Zapier - No-Code Social Media Automation](https://developers.posteverywhere.ai/integrations/zapier): Connect Zapier to PostEverywhere to publish posts from any of 7,000+ apps. Includes the working raw-JSON setup, the array-as-string gotcha, and the exact action and field formats. ## Platforms - [Post to Bluesky via API - Schedule & Publish](https://developers.posteverywhere.ai/platforms/bluesky): Bluesky posting API: publish and schedule text, images, video, threads, and quote posts to the AT Protocol network via REST. - [Post to Discord via API - Publish to Servers](https://developers.posteverywhere.ai/platforms/discord): Discord post API: publish and schedule messages to server channels via webhook. Text, image embeds, and media in one REST call. - [Post to Facebook via API - Schedule & Publish](https://developers.posteverywhere.ai/platforms/facebook): Post to Facebook via API: publish and schedule Page posts, Reels, and link shares with one REST call. Video types, previews, examples. - [Post to Instagram via API - Reels, Stories & Carousels](https://developers.posteverywhere.ai/platforms/instagram): Post to Instagram via API: publish and schedule feed posts, Reels, Stories, Trial Reels, and carousels with one REST call. - [Post to LinkedIn via API - Schedule & Publish](https://developers.posteverywhere.ai/platforms/linkedin): Post to LinkedIn via API: publish and schedule text, images, video, and PDF carousels to profiles and company pages with one REST call. - [Post to Pinterest via API - Schedule & Publish Pins](https://developers.posteverywhere.ai/platforms/pinterest): Pinterest post API: create and schedule Pins via REST with titles, descriptions, board selection, and destination links. - [Post to Telegram via API - Publish to Channels](https://developers.posteverywhere.ai/platforms/telegram): Telegram post API: publish and schedule channel posts via your bot. Text, images, carousels, and video through one REST call. - [Post to Threads via API - Schedule & Publish](https://developers.posteverywhere.ai/platforms/threads): Threads API post guide: publish and schedule Threads posts via REST. Reply controls, auto first comments, images and video. - [Post to TikTok via API - Schedule & Publish Videos](https://developers.posteverywhere.ai/platforms/tiktok): TikTok posting API: publish and schedule videos via REST. Privacy levels, duets and stitches, cover thumbnails - no 2-6 week audit. - [Post to Twitter (X) via API - Schedule & Publish](https://developers.posteverywhere.ai/platforms/x-twitter): Twitter post API for X: publish and schedule tweets and threads via REST. Reply permissions, alt text, and auto first comments. - [Upload to YouTube via API - Schedule & Publish Videos](https://developers.posteverywhere.ai/platforms/youtube): YouTube upload API: publish and schedule videos and Shorts via REST. Titles, descriptions, privacy, tags, and categories. ## Reference - [API Changelog](https://developers.posteverywhere.ai/changelog): PostEverywhere API changelog and version history. Track breaking changes, new endpoints, and improvements. - [Error Handling & Error Codes](https://developers.posteverywhere.ai/errors): Complete reference of PostEverywhere API error codes, HTTP status codes, and retry strategies. Handle errors gracefully in your integration. - [Media Requirements by Platform](https://developers.posteverywhere.ai/media-requirements): Image dimensions, video duration limits, file sizes, aspect ratios, and format requirements for every platform supported by the PostEverywhere API. - [API Pagination - limit & offset Parameters](https://developers.posteverywhere.ai/pagination): How to paginate through PostEverywhere API results. Offset-based pagination with limit and offset parameters. - [API Rate Limits - 60/min, 1,000/hour](https://developers.posteverywhere.ai/rate-limits): PostEverywhere API rate limits, headers, and best practices for handling 429 responses. - [API Key Scopes - read, write, ai](https://developers.posteverywhere.ai/scopes): PostEverywhere API key scopes and permissions. Control access to accounts, posts, media, and AI features. - [Testing Your API Integration - Sandbox & Strategies](https://developers.posteverywhere.ai/testing): How to test your PostEverywhere API integration safely — dedicated test accounts, schedule-then-delete, and verifying media before attaching. - [Webhooks API - Real-Time Post Status Events](https://developers.posteverywhere.ai/webhooks): Receive real-time HTTPS notifications when posts publish or fail, accounts disconnect, or media uploads complete. Includes HMAC-SHA256 signing, retry policy, and verification examples. ## Other - [Account Health](https://developers.posteverywhere.ai/account-health): Check whether a connected social account is currently usable (token alive, no reconnection required, recent publish history) before publishing. - [Analytics Summary](https://developers.posteverywhere.ai/analytics-summary): Aggregate counters and per-platform totals for the current workspace — one call instead of listing every post. - [Bulk Posting API - Create 50 Posts in One Call](https://developers.posteverywhere.ai/bulk-operations): Create up to 50 posts in one call and bulk-retry failed destinations by filter — counts as ONE API-rate-limit hit instead of N. - [Campaigns API - Group, Filter & Report on Posts](https://developers.posteverywhere.ai/campaigns): Group related posts under named campaigns ("Q3 Launch", "Holiday 2026"). Filter and report on them as a unit. - [Social Media CLI - Post from the Terminal](https://developers.posteverywhere.ai/cli): Log in, connect all 11 social platforms, and publish from the terminal with the PostEverywhere CLI (@posteverywhere/cli). Built for developers and AI agents. - [Connecting Accounts](https://developers.posteverywhere.ai/connecting-accounts): Connect social accounts from the API, an AI agent, or the terminal. Mint OAuth connect links for X, Instagram, Facebook, YouTube, Pinterest, Threads, LinkedIn, TikTok, or pass credentials directly for Telegram, Discord, Bluesky. - [AI Caption Generator API](https://developers.posteverywhere.ai/generate-caption): AI-generated social media captions tuned per-platform — respects character limits, hashtag conventions, and emoji style. - [API Introspection (/v1/me)](https://developers.posteverywhere.ai/introspection): Get the current API key context — organization, scopes, quota, plan, and usage stats — in a single call. --- Generated by `scripts/generate-llms-txt.mjs` from the docs source. Last update: 2026-08-19T17:23:23.951Z