PostEverywhere Social Media API Documentation
Reference documentation for the PostEverywhere API: authentication, publishing, webhooks, rate limits, media requirements and a guide for every supported platform.
Getting started with the PostEverywhere API
- Quick StartGet up and running with the PostEverywhere API in under 5 minutes. Create your first cross-platform social media post.
- AuthenticationHow to authenticate with the PostEverywhere API using Bearer tokens. Generate API keys, manage scopes, and secure your integration.
- ScopesPostEverywhere API key scopes and permissions. Control access to accounts, posts, media, and AI features.
- Account ConnectionConnect 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 and WordPress.
PostEverywhere API core concepts
- WebhooksReceive real-time HTTPS notifications when posts publish or fail, accounts disconnect, or media uploads complete. Includes HMAC-SHA256 signing, retry policy, and verification examples.
- Bulk OperationsCreate up to 50 posts in one call and bulk-retry failed destinations by filter, with the exact rate-limit cost of each.
- CampaignsGroup related posts under named campaigns ('Q3 Launch', 'Holiday 2026'). Filter and report on them as a unit.
- AI CaptionAI-generated social media captions tuned per platform, respecting character limits, hashtag conventions, and emoji style.
- Analytics SummaryAggregate counters and per-platform totals for the current workspace, in one call instead of listing every post.
- Account HealthCheck whether a connected social account is currently usable (token alive, no reconnection required, recent publish history) before publishing.
- Token IntrospectionGet the current API key context in a single call: organization, scopes, quota, plan, and usage stats.
- TestingHow to test your PostEverywhere API integration safely: dedicated test accounts, schedule-then-delete, and verifying media before attaching.
- API and MCP LogsSee every API call and MCP tool call made on your PostEverywhere account: who made it, what it did, how long it took and why it failed. Kept for 30 days on every plan.
Platforms the PostEverywhere API publishes to
- Instagram APIPostEverywhere API reference for Instagram: request fields, media rules and examples for feed posts, Reels, Stories, Trial Reels and carousels.
- Facebook APIPostEverywhere API reference for Facebook: request fields, video types, link previews and examples for Page posts, Reels and link shares.
- LinkedIn APIPostEverywhere API reference for LinkedIn: request fields, media rules and examples for text, images, video and PDF carousels on profiles and pages.
- X (Twitter) APIPostEverywhere API reference for X (Twitter): request fields, reply permissions, alt text, threads and auto first comments.
- TikTok APIPostEverywhere API reference for TikTok: privacy levels, duet and stitch settings, cover thumbnails and request examples for video posts.
- YouTube APIPostEverywhere API reference for YouTube: titles, descriptions, privacy, tags, categories and request examples for videos and Shorts.
- Threads APIPostEverywhere API reference for Threads: reply controls, auto first comments, media rules and request examples.
- Pinterest APIPostEverywhere API reference for Pinterest: board selection, titles, descriptions, destination links and request examples for Pins.
- Bluesky APIPostEverywhere API reference for Bluesky: request fields, media rules and examples for text posts, images, video and threads.
- Telegram APIPostEverywhere API reference for Telegram: bot setup, request fields and examples for channel posts with text, images, carousels and video.
- Discord APIPostEverywhere API reference for Discord: channel webhook setup, request fields and examples for text, image embeds and media.
- WordPress APIPostEverywhere API reference for WordPress: request fields for posts, drafts, images, categories and tags on WordPress.com or self-hosted sites.
PostEverywhere API integrations: MCP, SDK, Claude and Zapier
- MCPConnect PostEverywhere to Claude Code, Cursor, Windsurf, and other AI tools via MCP (Model Context Protocol). Schedule social media posts from your IDE.
- ClaudeSchedule and publish social media posts using Claude AI. Connect PostEverywhere to Claude Code, Claude Desktop, and Claude API for AI social media management.
- AgentsHow 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.
- Agent System PromptA 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.
- SDKOfficial PostEverywhere Node.js SDK and CLI for scheduling social media posts. Install via npm, authenticate, and start publishing.
- ZapierConnect 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.
- CLILog in, connect all top social platforms, and publish from the terminal with the PostEverywhere CLI (@posteverywhere/cli). Built for developers and AI agents.
PostEverywhere API reference
- Rate LimitsPostEverywhere API rate limits, headers, and best practices for handling 429 responses.
- Error HandlingComplete reference of PostEverywhere API error codes, HTTP status codes, and retry strategies. Handle errors gracefully in your integration.
- PaginationHow to paginate through PostEverywhere API results. Offset-based pagination with limit and offset parameters.
- Media RequirementsImage dimensions, video duration limits, file sizes, aspect ratios, and format requirements for every platform supported by the PostEverywhere API.
- ChangelogPostEverywhere API changelog and version history. Track breaking changes, new endpoints, and improvements.
Schedule and publish social media content across all top platforms from a single API.
Connect your social accounts, create posts with platform-specific customizations, upload media, schedule for optimal times, and monitor publishing results, all through one unified interface.
The OpenAPI spec is the canonical reference
Building with an AI agent or code generator? Point it at developers.posteverywhere.ai/openapi.json. It is generated from the live API and always current, and its field names are authoritative: the upload request takes
size(notfile_size), and media readiness lives inmedia_status(notstatus).
Every platform the API publishes to
| Platform | Post Types | Media |
|---|---|---|
| Feed posts, Stories, Reels | Images, video, carousels | |
| TikTok | Videos, photo carousels | Video, images (up to 35) |
| YouTube | Videos, Shorts | Video |
| Posts, articles | Images, video, PDF carousels | |
| X (Twitter) | Posts, threads, X Articles | Images, video |
| Posts, Reels | Images, video | |
| Threads | Posts | Images, video |
| Pins | Images | |
| Bluesky | Posts, threads | Images, video |
| Telegram | Channel posts | Images, video, PDF, carousels |
| Discord | Server posts via webhook | Images, video |
| WordPress | Blog posts (draft, pending, private or published) | Images (up to 20), featured image, video |
What the PostEverywhere API can do
- Schedule posts to multiple platforms simultaneously
- Customize content per platform (hashtags, titles, privacy settings)
- Save drafts with
draft: true, review them, then schedule withPOST /v1/posts/{id}/schedule: ideal for human-in-the-loop agent workflows - Upload media (images and video) with automatic processing
- Schedule many posts by calling Create Post in a loop with different
scheduled_fortimes - Monitor results with per-platform publishing status
- Retry failed posts automatically or on demand
- Generate AI images from text prompts
The two PostEverywhere post status vocabularies, and why polling needs both
A post and each of its destinations use different status names. Mixing them up is the most common integration mistake, so they are listed here in full.
Post status (post_status on a post, and the status filter on GET /posts) is derived
live from the destinations underneath it:
draft · scheduled · publishing · published · partially_failed · failed
Destination status (destination_status on each entry in a post's destinations array) is
the real lifecycle of one platform target:
| Value | Meaning |
|---|---|
queued |
Waiting for its scheduled time |
preparing, uploading, publishing, verifying |
In flight right now |
retry_scheduled |
Failed once, will be retried automatically |
done |
Published successfully |
failed |
Terminal failure, see the error field |
A destination is never "published"
At the destination level, success is
done.publishedexists only in the post-level vocabulary above. Filtering destinations onstatus == "published"matches nothing.
The PostEverywhere API base URL
https://app.posteverywhere.ai/api/v1
Making your first API call
- Create a PostEverywhere account if you don't have one
- Go to the Developers page in your dashboard to create an API key
- Follow the Quick Start guide to make your first API call
Official PostEverywhere SDKs, CLI and MCP server
Node.js SDK
npm install @posteverywhere/sdk
import { PostEverywhere } from '@posteverywhere/sdk';
const client = new PostEverywhere({ apiKey: 'pe_live_...' });
const post = await client.posts.create({
content: 'Hello from the API!',
account_ids: [123, 456, 789],
scheduled_for: '2026-04-01T10:00:00Z',
});
Command line (CLI)
Log in, connect every platform, and publish straight from your terminal:
npm install -g @posteverywhere/cli
posteverywhere login # browser approve, key saved locally
posteverywhere connect instagram # OAuth opens; the account is auto-detected
posteverywhere post -c "Hello from the CLI!" -a 123,456
Every command supports --json for AI agents. Full guide: CLI.
Claude Code (MCP)
Easiest: connect to the hosted endpoint, nothing to install:
claude mcp add --transport http posteverywhere \
https://mcp.posteverywhere.ai \
--header "Authorization: Bearer pe_live_YOUR_KEY"
Or run it locally via npx:
{
"mcpServers": {
"posteverywhere": {
"command": "npx",
"args": ["-y", "@posteverywhere/mcp"],
"env": { "POSTEVERYWHERE_API_KEY": "pe_live_..." }
}
}
}
Full guide: MCP Server.
cURL
curl -X POST https://app.posteverywhere.ai/api/v1/posts \
-H "Authorization: Bearer pe_live_..." \
-H "Content-Type: application/json" \
-d '{
"content": "Hello from the API!",
"account_ids": [2280, 2281, 2282],
"scheduled_for": "2026-04-15T14:30:00Z"
}'
Evaluating the API rather than building on it? Start with the API overview, see plans, limits and pricing, or read how AI agents schedule posts through PostEverywhere.
Prefer not to write code? Use the Zapier integration or the PostEverywhere CLI.