The PostEverywhere developer hub
Schedule posts, upload media, and publish to all top platforms with a single REST API. 49 endpoints, webhooks, campaigns, bulk operations, and an official MCP server. Automate your entire social media workflow programmatically. Included on all plans from $9/mo.
Get started from as little as $9 per month. $0 due today, cancel anytime.
Used by 2,831 happy customers
curl -X POST https://app.posteverywhere.ai/api/v1/posts \
-H "Authorization: Bearer pe_live_your_key" \
-d '{
"content": "Launching our new feature today!",
"account_ids": [1, 2, 3],
"scheduled_for": "2026-10-06T09:00:00Z"
}'REST API
49 endpoints
Webhooks
15 event types
SDK + CLI
Node.js, npm
MCP server
Any AI agent
Capabilities
What you can build with the API
49 endpoints across posts, accounts, media, AI, webhooks, campaigns, and analytics, everything you need to automate social media.
Schedule & Publish Posts
Create, schedule, and publish posts to all top platforms with a single PostEverywhere API call. Powers our social media scheduler and supports bulk scheduling, set times, target specific accounts, and attach media.
Upload & Manage Media
Two upload paths: a one-call /media/upload-from-url for any public image (25 MB cap), or the 3-step presigned flow for local files and video. Videos are converted to a platform-safe MP4. Pair with the AI image generator for on-demand visuals.
Multi-Platform in One Call
Publish to Instagram, X, LinkedIn, Facebook, TikTok, YouTube, Threads, Pinterest, Bluesky, Discord, Telegram, and WordPress simultaneously from one endpoint. True cross-posting, post to all platforms at once via API.
Webhooks
Subscribe to 15 event types (post.published, post.failed, account.reconnect_needed, and more) instead of polling. Deliveries are signed with HMAC-SHA256 (RFC 6234) and retried with exponential backoff.
Campaigns
Group posts into named campaigns (Q3 Launch, Holiday 2026) via full CRUD API. Filter posts by campaign_id to report on rollouts and align with your social media calendar.
Bulk Operations
Create up to 50 posts in one call. Bulk retry failed destinations by filter (platform, account, time window). Ideal for multi-account management and high-volume bulk scheduling.
Monitor Results & Retry
Get per-platform publishing results with URLs, errors, and attempt counts. Feed data into your analytics pipeline or retry failed destinations automatically.
Account Health Monitoring
The /accounts/:id/health pre-flight check returns can_post, token state, and reasons[]. Track connected account health, token expiry, and posting capability across all platforms in real time.
AI Image Generation
Generate social media images from text prompts using our AI image generator. 4 models, 7 aspect ratios. Pair with the AI content generator for fully automated posts.
AI Caption Generation
Generate 1 to 5 caption variants tuned per-platform (respects character limits and hashtag conventions). Companion to AI image generation. Powers our AI content generator.
Introspection (/me)
Discover org, plan, quota, and scopes in one call. SDKs self-configure without hardcoded IDs. Useful for SaaS builders, agencies, and white-label tools.
Analytics Summary
Aggregate counters by period (today, week, month, custom). One call instead of listing every post. Feed straight into your analytics dashboards.
Model Context Protocol
Connect ChatGPT, Claude or any AI agent via MCP
PostEverywhere ships an official Model Context Protocol server with 39 tools that ChatGPT, Claude, Cursor, Cline, Windsurf, Zed and any other MCP client can use directly. Connect to the hosted endpoint at https://mcp.posteverywhere.ai with nothing to install, or run the open-source @posteverywhere/mcp (source on GitHub) on your own machine. Agents can read SKILL.md to learn how to use it.
- Hosted, nothing to install.
- The hosted server stores nothing: your key is passed straight through to the PostEverywhere API on every request, which enforces the same authentication, tenancy and rate limits as a direct API call.
- Or run it locally.
- Run the open-source server with npx, or add it to Claude Code with your key as an environment variable.
- Ask in plain English.
- Connect once, then ask your agent to schedule posts, retry failures or build webhook subscriptions.
Claude Code, hostedRecommended
claude mcp add --transport http posteverywhere \
https://mcp.posteverywhere.ai \
--header "Authorization: Bearer pe_live_YOUR_KEY"Any remote MCP client
URL https://mcp.posteverywhere.ai
Header Authorization: Bearer pe_live_YOUR_KEYRun it locally
npx -y @posteverywhere/mcpLocal server in Claude Code
claude mcp add --scope user \
--env POSTEVERYWHERE_API_KEY=pe_live_YOUR_KEY \
-- posteverywhere npx -y @posteverywhere/mcp- ChatGPT
- Claude
- Claude Code
- Cursor
- Cline
- Windsurf
- and any MCP client
Node.js SDK
@posteverywhere/sdk
The official Node.js SDK wraps every endpoint with typed resources: client.posts, client.media, client.accounts, client.ai, client.campaigns, client.webhooks, client.analytics, and client.me. Automatic retries, rate-limit aware, full TypeScript types.
import { PostEverywhere } from '@posteverywhere/sdk'
const client = new PostEverywhere({
apiKey: process.env.POSTEVERYWHERE_API_KEY,
})
const me = await client.me.get()
// Subscribe to publish events
const hook = await client.webhooks.create({
url: 'https://api.example.com/pe',
events: ['post.published', 'post.failed'],
})
// Group posts into a campaign
const campaign = await client.campaigns.create({ name: 'Q3 Launch' })
// Aggregate counters in one call
const summary = await client.analytics.summary({ period: 'week' })npm install @posteverywhere/sdkTyped resources, automatic retries, rate-limit awareReference
API endpoints
49 endpoints, grouped by resource.
Use cases
API use cases
POST https://your-app.com/hooks/posteverywhere
X-PostEverywhere-Event: post.published
X-PostEverywhere-Timestamp: 1791277204
X-PostEverywhere-Signature: sha256=4f9a1c0e7b3d...
{
"event": "post.published",
"created_at": "2026-10-06T09:00:04Z",
"data": {
"platform": "instagram",
"account_name": "northwind.coffee",
"published_at": "2026-10-06T09:00:03Z",
"platform_post_id": "18034529961"
}
}Events you can subscribe to include
post.scheduledpost.publishingpost.publishedpost.partially_failedpost.failedpost.deletedpost.approval_requestedpost.approvedpost.changes_requestedaccount.connectedaccount.disconnectedaccount.reconnect_neededmedia.uploadedmedia.deletedSaaS Builders Embed social media management directly in your app. Let your users schedule posts without leaving your platform. Use
/meto self-configure SDKs and/webhooksto react to publish events in real time.Agencies Automate client posting at scale with team workspaces and multi-account management. Manage every client account programmatically across all platforms, with campaigns to group rollouts and bulk endpoints to ship 50 posts at a time. See our agency solutions and top agency tools.
Internal Tools Build custom dashboards, approval workflows, and analytics pipelines on top of PostEverywhere. Integrate with our social media calendar for visual scheduling, then surface aggregate counters via
/analytics/summary.Content Pipelines Connect RSS feeds, CMS systems, or AI generators to auto-publish content. Use bulk scheduling and social media automation, plus webhook subscriptions to react when a post succeeds or fails.
Quick start
Get started with the PostEverywhere API in 3 steps
- Get your API key.
- Open the Developers page in your PostEverywhere dashboard and create a key. API access is included on all plans. Create a key →
- Make your first request.
- List your connected accounts to get account IDs, then create your first post. Quick Start Guide →
- Check publishing results.
- Monitor per-platform results, get published URLs, and retry any failed destinations. Subscribe to webhooks to react in real time. Posts API Reference →
API Keys
Create keys to authenticate API requests and MCP connections.
Copy your API key now - it won't be shown again
pe_live_8f3a2c19e4b75d0a96c1f2b83e7d4a5c09b6e1f7a2d8c4b3Try it now - this command works as-is
curl -H "Authorization: Bearer pe_live_8f3a2c19..." \
https://app.posteverywhere.ai/api/v1/accountsI've copied itProduction
pe_live_8f3a2c19...read, write, aiall accountsLast used: Just nowZapier
pe_live_51d07be2...read, write1 accountLast used: 2d ago
Pricing
API access on every plan
No separate API add-on. No enterprise-only gating. Every PostEverywhere plan includes full API access, webhooks, campaigns, bulk operations, and the MCP server.
Lite
$9/mo
- 2 accounts
- AI Studio credits included
- Full API access
- Unlimited posts
Starter
$19/mo
- 5 accounts
- AI Studio credits included
- Full API access
- Unlimited posts
Growth
$29/mo
- 10 accounts
- AI Studio credits included
- Full API access
- Unlimited posts
Scale
$39/mo
- 20 accounts
- AI Studio credits included
- Full API access
- Unlimited posts
7-day free trial on every plan. Card required, $0 due today, cancel anytime. View full pricing →
Limits
API rate limits
The same limits apply on every plan. Posting limits count each platform a post goes to, so one post to five platforms uses five.
| Window | Limit | Header |
|---|---|---|
| General API, per key | ||
| Per minute | 60 requests | X-RateLimit-Limit |
| Per hour | 1,000 requests | X-RateLimit-Remaining |
| Posting, each platform counts once | ||
| Per minute | 60 platform posts | X-RateLimit-Limit |
| Per hour | 200 platform posts | X-RateLimit-Remaining |
| Per day | 1,000 platform posts | Retry-After |
| AI generation | ||
| Per 5 minutes | 15 generations | X-RateLimit-Limit |
| Per hour | 60 generations | X-RateLimit-Remaining |
| Webhooks | ||
| Subscriptions per org | 25 webhooks | Configured per organisation |
| Bulk operations | ||
| Posts per bulk call | 50 posts | POST /posts/bulk |
Rate limit headers are included in every response. Learn more →
Connect your AI agent
Skip the integration: connect ChatGPT, Claude or any MCP client
- Connect any AI agent.
- Add PostEverywhere to ChatGPT, Claude, Grok, Perplexity, Cursor or any other AI app that supports MCP with one address. It takes seconds.
- Ask in plain English.
- “Plan next week's posts for all my accounts.” Your agent writes every post for you.
- It schedules and publishes.
- Your agent can post now, schedule for later or save a draft for you to review. Every post lands in your calendar, and scheduled posts go out on time through each network's official API.
$0 due today, cancel anytime
Connect your AI agent
Choose your assistant and connect in seconds.
Works on every Claude plan, including free. Full Claude guide
- 1
Add to Claude
One click from Claude’s connector directory.
- 2
Sign up or sign in
Takes seconds, then you’re sent straight back.
- 3
Ask Claude
“Plan and schedule my posts for next week.”
Ask your agent
See all 15 skills and prompts“Check PostEverywhere for posts that failed this week. Tell me why each one failed, then retry the ones that can go out now.”
View skill“How did my posts do last month? Use PostEverywhere analytics and tell me which platform and which kind of post worked best.”
View skill“Use PostEverywhere to plan next week of posts for all my connected accounts. Suggest one post a day, show me the plan, then schedule it when I say yes.”
View skill
FAQ
Developer FAQ
Straight answers about plans, platforms and how scheduling works.
What is the PostEverywhere API?
The PostEverywhere API is a REST API that lets you programmatically schedule and publish social media posts across all top platforms (Instagram, X, LinkedIn, Facebook, TikTok, YouTube, Threads, Pinterest, Bluesky, Discord, Telegram, and WordPress), upload media, manage connected accounts, subscribe to webhooks, group posts into campaigns, and monitor publishing results, all from a single integration with 49 endpoints.
How do I get an API key?
Open the Developers page in the PostEverywhere dashboard (under Manage in the sidebar) and create a key: name it, choose its permissions (Read, Write and/or AI) and copy it. It starts with pe_live_ and is shown only once, so store it securely.
Is the API included in my plan?
Yes. API access is included on all PostEverywhere plans, from Lite ($9/mo) to Scale ($39/mo). There is no separate API add-on or enterprise-only gating. View full pricing.
Which platforms does the API support?
The API supports all top platforms available in PostEverywhere: Instagram (posts, Reels, Stories, carousels), X (tweets, threads, articles), LinkedIn (profiles, company pages), Facebook (pages, Reels), TikTok (videos), YouTube (videos, Shorts), Threads (text, images), Pinterest (pins), Bluesky (posts), Discord (channels), Telegram (channels), and WordPress.
Can I post to multiple platforms at once?
Yes. When creating a post via POST /posts, pass multiple account IDs in the account_ids array. The API publishes to all specified platforms simultaneously from a single request.
How do webhooks work?
Subscribe to events with POST /webhooks, supplying a URL and an event list. We send signed JSON deliveries with an X-PostEverywhere-Signature header whose value is sha256= followed by the HMAC-SHA256 of the raw body, keyed with the secret returned at subscription time. 15 event types are supported, including post.published, post.failed, and account.reconnect_needed. Failed deliveries retry with exponential backoff. Each organisation can create up to 25 webhook subscriptions.
What is the bulk post limit?
You can create up to 50 posts per call via POST /posts/bulk. Each post in the batch is validated independently and reports its own success or failure in the response, so partial batches are reported cleanly. Use this for content pipelines, CMS imports, and large editorial rollouts.
Does PostEverywhere have an MCP server?
Yes, and you can connect to it two ways. The hosted server at https://mcp.posteverywhere.ai needs nothing installed (every tool is listed on the AI agents page): in Claude Code, run claude mcp add --transport http posteverywhere https://mcp.posteverywhere.ai --header "Authorization: Bearer pe_live_YOUR_KEY". Or run the open-source server @posteverywhere/mcp locally with npx -y @posteverywhere/mcp. Both expose 39 tools that Claude Code, Claude Desktop, Cursor, Cline, Windsurf, Zed, and any MCP-compatible AI coding agent can use directly to schedule posts, retry failures, or build webhook subscriptions in natural language. See the setup guide.
Can I see a log of API and MCP calls?
Yes. The Logs page in the dashboard lists every call made with an API key, including MCP tool calls from Claude, ChatGPT and Cursor, with the status, action, who made it, duration, error and redacted request and response bodies. Every response carries an X-Request-Id header you can search for. Logs are kept for 30 days on every plan. See the logs guide.
Can I retry failed posts in bulk?
Yes. POST /posts/retry-failed retries failed destinations by filter (platform, account, time window). Use this after fixing a token issue, restoring an account, or recovering from a platform outage, rather than retrying posts one at a time. For a single post, POST /posts/{id}/retry retries only the failed destinations.
What does /me return?
GET /me returns the API key context in one call: the organisation, the plan tier, current quota usage (posts, AI credits, accounts), the scopes granted to the key, and feature flags. SDKs use this to self-configure without hardcoded IDs, and white-label tools use it to render plan-aware UI.
What are the rate limits?
API requests are rate-limited to 60 requests per minute and 1,000 per hour per API key. Rate limit headers (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, Retry-After) are included in every response.
Do you have official SDKs?
We provide an official Node.js SDK on npm (npm install @posteverywhere/sdk, source on GitHub) and an MCP server (@posteverywhere/mcp, source on GitHub) that works with any MCP-compatible AI coding agent, Claude Code, Cursor, Codex CLI, Windsurf, Cline, Zed, and more. We also publish code examples in cURL. The API follows REST conventions and works with any HTTP client in any language.
Is there a command-line tool (CLI)?
Yes. Install @posteverywhere/cli with npm install -g @posteverywhere/cli and post or schedule across all top platforms straight from your terminal. Run posteverywhere login once (a device-grant flow, like the GitHub CLI), then posteverywhere connect instagram and posteverywhere post -c "Launch day" -a 123. Every command also takes --json, so the CLI doubles as a tool your AI agents (Claude, Cursor) can call directly. Full command reference on the CLI page.
Is there a sandbox or test mode?
Currently, the API operates in production mode. We recommend creating a test organisation with sandbox social accounts for development. All API keys can be revoked instantly from the Developers page if needed.
Can I use the API to build a white-label scheduler?
Yes. You can use the PostEverywhere API to build a custom-branded scheduling tool for your clients. The API handles all platform authentication, media processing, and publishing, you build the UI. GET /me makes plan-aware rendering trivial. See our agency solutions for more details.
How does AI image generation work via the API?
Send a POST request to /ai/generate-image with a text prompt. The API uses our AI image generator to create visuals and saves them to your media library. Pair it with the AI content generator (or call /ai/generate-caption for platform-tuned text) for fully automated posts. Each generation uses AI credits from your plan, and the cost depends on the model you pick.
Can I automate posting from my CMS or blog?
Yes. Use the POST /posts endpoint to auto-publish content whenever your CMS publishes. Common integrations include WordPress webhooks, Ghost, and Contentful. You can also use RSS-to-post workflows with tools like n8n or Zapier connected to our API, and the integrations page has the exact HTTP block for each. Subscribe to post.published webhooks to close the loop in your CMS. Learn more about social media automation.
What happens if a post fails on one platform?
The API publishes to each platform independently. If Instagram succeeds but TikTok fails (e.g., token expired), you get per-platform results showing exactly which destinations succeeded and which failed. Use POST /posts/{id}/retry to retry only the failed destinations without re-publishing to platforms that already succeeded, or POST /posts/retry-failed for bulk recovery by filter.
Are there any breaking changes in this release?
No. Webhooks, campaigns, bulk operations and the MCP server were all added without breaking changes. Every existing integration keeps working without modification, and new capabilities are additive and opt-in.
Still have questions?
Contact us or browse the full FAQ.
$0 due today, cancel anytime
Explore more
Related guides
Start building with PostEverywhere
Get your API key, make your first request, and go live in minutes. API access is included on every plan from $9/mo.