Works with all AI agents

Connect your AI agent

Choose your AI agent and connect in seconds.

Add to Claude

Works on every Claude plan, including free. Full Claude guide

  1. 1

    Add to Claude

    One click from Claude’s connector directory.

  2. 2

    Sign up or sign in

    Takes seconds, then you’re sent straight back.

  3. 3

    Ask Claude

    “Plan and schedule my posts for next week.”

One unified social media API for developers and AI agents

PostEverywhere's social media API lets you schedule, publish and generate captions across all top platforms, and pull analytics wherever each platform reports them, through one REST API, a typed SDK and a hosted MCP server. Skip the separate platform integrations, OAuth flows, and rate limits, and ship in an afternoon.

Get started from as little as $9 per month. $0 due today, cancel anytime.

ChatGPTClaudeGeminiMicrosoft CopilotGrokCursorWorks with any AI agent
Creator profileBusiness owner profileSocial media manager profileEntrepreneur profileContent creator profile

Used by 2,831 happy customers

PostEverywhere Agents page, connecting an AI agent with one address

Watch the full demo with sound

What customers say

  • 5 out of 5 starsTrustpilot
    “This product just WORKS, I didn’t have any issues with it and everything went smoothly so far. For us, is a no brainer, I used to manually schedule posts in hours , now I do it in a minute. Love the Claude Connector /MCP , for us it’s worth every dollar.”
    Laurentiu Cotet, RomaniaView original
  • 5 out of 5 starsTrustpilot
    “The calendar view is really nice and neatly organized. Originally there wasn’t a way to thread an X post but now there is - that was my biggest complaint but is now fixed. I was able to very easily integrate my agent into it which allows me to quickly draft and schedule dozens of posts in minutes. Super easy, great UI.”
    M W, United StatesView original
  • 5 out of 5 starsTrustpilot
    “Thanks for providing this easy to use software that saves me lots of time and therefore makes me more consistent with posting. Good value.”
    Lisa, AustraliaView original
  • ★★★★★Customer
    “This tool has truly made my content posting so much easier, I can't work without it. I can schedule my posts days in advance while working on other projects. Set it and forget it.”
    Kim V., Content Creator

Read all reviews

One integration, every network

One social media API to replace every platform integration

Each social network ships its own API, OAuth flow, and media rules, and maintaining all of them is a moving target. PostEverywhere gives you one consistent interface for all of them, so you can post everywhere at once without wiring up the Meta Graph API, TikTok Content Posting API, and YouTube Data API separately. Full reference lives in the PostEverywhere API documentation.

A single REST endpoint.
Publish to any of the platforms through one Bearer-token API. One request shape, one set of docs, every platform covered.
Official platform APIs.
Every post goes out through the platform's sanctioned API, not browser automation. Compliant, reliable, and account-safe.
Typed SDK and MCP server.
Install @posteverywhere/sdk for full TypeScript types, or connect any AI agent through the hosted MCP server.
  • Instagram

    Instagram Graph API

  • Facebook

    Meta Graph API

  • X

    X API v2

  • LinkedIn

    LinkedIn Marketing API

  • TikTok

    Content Posting API

  • Threads

    Meta Threads API

  • Bluesky

    AT Protocol

  • Telegram

    Telegram Bot API

  • Discord

    Discord webhooks

  • YouTube

    YouTube Data API v3

  • Pinterest

    Pinterest API

  • WordPress

    WordPress REST API

  • Google Business Profile

    Business Profile API

Built for builders

Ship in an afternoon, not a quarter

Most of the work in a social integration is not posting, it is the plumbing: OAuth, token refresh, rate limits, retries, and media formatting for every network. PostEverywhere handles all of it so you can build an agent or product feature in hours. Create an API key on the Developers page, send it as a Bearer header, and make your first call. The quick start below shows it step by step, and the quick start guide has every request ready to copy.

No per-platform OAuth maze.
Connect accounts once. The API manages tokens, refresh, and re-authentication across every platform on your behalf.
Keys you control.
Give each integration its own key with read, write or AI permissions, limit it to specific accounts, and revoke it at any time. A new key is shown once, with a command that works as-is.
Rate limits and retries handled.
No posting cap from PostEverywhere. Built-in rate-limit handling and automatic retries mean one call reaches every network reliably.
Developers
Quick Start API Keys MCP CLI REST API

API Keys

Create keys to authenticate API requests and MCP connections.

Copy your API key now - it won't be shown again

pe_live_8f3a2c19e4b75d0a96c1f2b83e7d4a5c09b6e1f7a2d8c4b3

Try it now - this command works as-is

curl -H "Authorization: Bearer pe_live_8f3a2c19..." \
  https://app.posteverywhere.ai/api/v1/accounts
I've copied it
  • Production

    pe_live_8f3a2c19...read, write, aiall accountsLast used: Just now

  • Zapier

    pe_live_51d07be2...read, write1 accountLast used: 2d ago

More than posting

Schedule, generate, and measure from one API

The same API that publishes also schedules, creates content, and reports results. Generate captions with the AI content generator, produce visuals with the AI image generator, and pull cross-platform numbers from analytics, all through code.

Schedule and publish.
Schedule a post for any time and timezone, add it to your posting queue, or publish it now. Every account gets its own result, with a status, the live link and any error.
Generate captions and images.
Call the API to produce platform-tailored captions and images from a prompt, then publish them in the same flow.
Read analytics and account health.
Fetch post metrics wherever each platform reports them, plus the health of every connected account, with a single request.
GET /posts/{id}/results
publishing
POST /api/v1/posts
{ "content": "Launch week is here",
  "account_ids": [101, 102, 103, 104, 105],
  "scheduled_for": "2026-10-06T09:00:00Z" }
  • northwind.coffeedone
  • Northwind Coffeedone
  • northwindverifying
  • northwindcoffeeuploading
  • Northwind Coffeeretry_scheduled

One request, one result per accountExample data

Hosted MCP server

Give ChatGPT, Claude or any AI agent the same API

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.
“Schedule this week's product posts to every account and tell me if any fail.” 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 AI agent and connect in seconds.

Add to Claude

Works on every Claude plan, including free. Full Claude guide

  1. 1

    Add to Claude

    One click from Claude’s connector directory.

  2. 2

    Sign up or sign in

    Takes seconds, then you’re sent straight back.

  3. 3

    Ask Claude

    “Plan and schedule my posts for next week.”

MCP tools

44 MCP tools behind the same API

The hosted MCP server at mcp.posteverywhere.ai exposes the API as tools an agent can call: 44 on the full server, with the Claude and ChatGPT connectors carrying most of them. create_post publishes now, schedules for a time, or saves a draft for you to review. See the MCP server docs for every parameter.

GroupTools
Postscreate_postschedule_postupdate_postdelete_postget_postlist_postslist_posts_advancedbulk_create_postsget_post_resultsretry_failed_postretry_failed_postsapprove_postrequest_post_changes
Queue and best timesget_queueget_best_times
Mediaupload_media_from_urlcreate_media_uploadcomplete_media_uploadlist_mediaget_mediadelete_media
AIgenerate_imagegenerate_captionget_brand
Accountslist_accountsget_accountget_account_healthcreate_connect_linkcreate_reconnect_linkconnect_credential_account
Insightget_analytics_summaryget_meget_platform_rules
Campaignslist_campaignscreate_campaignget_campaignupdate_campaigndelete_campaign
Webhookslist_webhookscreate_webhookget_webhookupdate_webhookdelete_webhooktest_webhook

Notes: bulk_create_posts takes up to 50 posts per call, generate_caption returns 1 to 5 captions, and create_connect_link returns a link that works for 10 minutes.

Connect over MCP
mcp.posteverywhere.ai

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_KEY

Run it locally

npx -y @posteverywhere/mcp

Local 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

Webhooks

Webhooks for every post, account and approval event

Subscribe to 13 event types instead of polling, with up to 25 subscriptions per organisation. Every delivery is signed with HMAC-SHA256 in the X-PostEverywhere-Signature header, and failed deliveries are retried with exponential backoff. The webhooks guide has the full event list and signature checks in several languages.

Know the moment a post goes live.
post.published arrives per platform with the platform post ID, so your app can link to it straight away.
Catch problems early.
post.failed, post.partially_failed and account.reconnect_needed tell you what needs attention before your audience notices.
Verify every delivery.
Check the signature against your webhook secret, and use the event ID header to ignore duplicates.
Webhook delivery
200 OK
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

Postspost.scheduledpost.publishedpost.warningpost.partially_failedpost.failedpost.deleted
Approvalspost.approval_requestedpost.approvedpost.changes_requested
Accountsaccount.disconnectedaccount.reconnect_needed
Mediamedia.uploadedmedia.deleted

SDK, CLI and local MCP

An official Node.js SDK and CLI

Use the typed SDK from your own code, the CLI from your terminal or scripts, or run the MCP server on your own machine. All three use the same API key.

Typed Node.js SDK.
npm install @posteverywhere/sdk for a promises-based client with full TypeScript types and inline documentation.
Command-line tool.
npm install -g @posteverywhere/cli, run posteverywhere login once, then post and schedule from your terminal. Every command supports --json, so scripts and AI agents can drive it.
Local MCP server.
npx -y @posteverywhere/mcp runs the MCP server on your own machine with an API key, for offline or self-managed setups.
schedule-post.ts
TypeScript
import PostEverywhere from '@posteverywhere/sdk';

const client = new PostEverywhere({
  apiKey: process.env.POSTEVERYWHERE_API_KEY,
});

const post = await client.posts.create({
  account_ids: [123],
  content: 'Shipping today.',
  scheduled_for: '2026-10-20T09:00:00Z',
});
Scheduledfor Tue, 20 Oct, 9:00 am UTC

Full capability set

What you can build on the posting API

One Bearer token unlocks publishing, scheduling, media, AI generation, analytics, and webhooks across all top platforms. The table below lists what the API covers.

CapabilityWhat it does
One-call publishingSend a single request and your post goes out to Instagram, TikTok, LinkedIn, Facebook, YouTube, X, Threads, Pinterest, Bluesky, Discord, Telegram, WordPress, and Google Business Profile through their official APIs.POST /posts
SchedulingSchedule posts for any future time in any timezone, or publish now. Move or edit a scheduled post with one request. No cron jobs to maintain.scheduled_forPATCH /posts/{id}
Media uploadUpload images and video once and attach them to any post. Videos are converted to a platform-safe MP4 before they publish.POST /media/upload
AI caption and image generationGenerate platform-tailored captions and images from a prompt, then publish them in the same flow. Uses your plan's AI credits.POST /ai/generate-captionPOST /ai/generate-image
Analytics and account healthPull post metrics and follower counts wherever each platform reports them, plus the health of every connected account.GET /analytics/summaryGET /accounts/{id}/health
Webhooks, campaigns, and bulkSubscribe to delivery webhooks, group posts into campaigns, and create up to 50 posts in one bulk request.POST /posts/bulkPOST /webhooksPOST /campaigns
client.ts
TypeScript
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 aware

Quick start and reference

Make your first social media API call in four steps

Every request goes to https://app.posteverywhere.ai/api/v1 with your key in an Authorization: Bearer header, from any language or HTTP client.

  1. 1.Create an API key.

    In the dashboard, open the Developers page (under Manage in the sidebar), name the key and pick its permissions: Read, Write and/or AI. It starts with pe_live_ and is shown once, so store it somewhere safe. See authentication.

  2. 2.Find your account IDs.

    Call GET /v1/accounts with the key as a Bearer header to list the social accounts you have connected.

  3. 3.Create the post.

    Send POST /v1/posts with content and an account_ids array. Add scheduled_for to publish later, or leave it out to publish now.

  4. 4.Check the results.

    Read GET /v1/posts/{id}/results for each platform's status and live link, retry any failed destination, or subscribe to webhooks instead of polling. The quick start guide walks through every step with copy-and-paste requests.

API endpoints, grouped by resource

Paths are relative to /api/v1. Each group links to its section of the API reference, with parameters and example responses.

Posts
  • POST/postsCreate, schedule or publish a post
  • GET/postsList posts with filters and pagination
  • GET/posts/{id}Get a post and its destinations
  • PATCH/posts/{id}Update a scheduled or draft post
  • DELETE/posts/{id}Delete a post
  • GET/posts/{id}/resultsPer-platform results: status, live link, error
  • POST/posts/{id}/retryRetry only the failed destinations
  • POST/posts/{id}/schedulePublish a draft post
  • POST/posts/bulkCreate up to 50 posts in one call
  • POST/posts/retry-failedBulk retry by platform, account or time window
  • GET/queueGet the posting queue
  • POST/posts/{id}/approveApprove a pending post
  • POST/posts/{id}/request-changesSend a pending post back with a note
Accounts
  • GET/accountsList connected social accounts
  • GET/accounts/{id}Get one connected account
  • GET/accounts/{id}/healthPre-flight check: can_post, token state, reasons
  • POST/accounts/connect-linkCreate an OAuth connect link
  • POST/accounts/connect-credentialConnect a credential platform, such as a Telegram bot
  • POST/accounts/{id}/reconnectReconnect an account whose token expired
Media
  • POST/media/upload-from-urlImport a public file in one call
  • POST/media/uploadStart a presigned upload for local files and video
  • POST/media/{id}/completeFinalise a presigned upload
  • GET/mediaList the media library
  • GET/media/{id}Check a media item and its status
  • DELETE/media/{id}Delete a media file
AI
  • POST/ai/generate-captionGenerate 1 to 5 platform-tuned captions
  • POST/ai/generate-imageGenerate an image from a text prompt
  • GET/brandGet the workspace's brand
Campaigns
  • GET/campaignsList campaigns
  • POST/campaignsCreate a campaign
  • GET/campaigns/{id}Get a campaign
  • PATCH/campaigns/{id}Update a campaign
  • DELETE/campaigns/{id}Delete a campaign (its posts stay)
Webhooks
  • GET/webhooksList webhook subscriptions
  • POST/webhooksSubscribe (the secret is returned once)
  • GET/webhooks/{id}Get a subscription
  • PATCH/webhooks/{id}Update the URL, events or active state
  • DELETE/webhooks/{id}Delete a subscription
  • POST/webhooks/{id}/testSend a signed test delivery
Analytics, timing and rules
  • GET/analytics/summaryAggregate counters by period
  • GET/best-timesBest weekday and hour slots to post
  • GET/platform-rulesPer-platform composer limits and rules
  • GET/meKey context: organisation, plan, quota, scopes
Auth and headless connect
  • POST/auth/deviceStart a device login
  • POST/auth/device/tokenPoll a device login to mint an API key
  • POST/auth/social-connect/startStart a headless OAuth connect session
  • GET/auth/social-connect/poll/{session_id}Poll a connect session
  • POST/auth/social-connect/blueskyConnect Bluesky headlessly
  • POST/auth/social-connect/discordConnect a Discord channel headlessly
  • POST/auth/social-connect/telegramConnect a Telegram channel headlessly

Developer resources

Limits

API rate limits

The same limits apply on every plan. Use bulk endpoints and webhooks to stay well inside them; the rate limits guide covers 429 handling and backoff.

LimitDetail
Posting limitsNone from PostEverywhere on any plan; each platform enforces its own.
PublishingUnlimited posts on every plan. Each platform enforces its own limits, and PostEverywhere works within them.
Bulk createUp to 50 posts per POST /posts/bulk call. Each row succeeds or fails on its own.
WebhooksUp to 25 webhook subscriptions per organisation. Deliveries to your URL are signed and retried.
When you hit a limitThe API returns 429 with X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset and Retry-After headers, so your code knows exactly how long to wait.

No-code and low-code automation

Works with n8n, Make, Zapier, Airtable, Retool, Postman and Bubble

If your tool can send an HTTP request, it can publish through the PostEverywhere API. We do not ship a native app in these marketplaces: each one uses the tool's own generic HTTP block to POST to https://app.posteverywhere.ai/api/v1/posts with a Bearer header, which is why setup takes minutes and does not break when a marketplace listing goes stale. For an agent-driven workflow, see how to connect PostEverywhere to n8n.

POST /api/v1/posts
cURLNode.js
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"
  }'
Scheduledto Instagram, LinkedIn and X in one request

REST API

50 endpoints

Webhooks

15 event types

SDK + CLI

Node.js, npm

MCP server

Any AI agent

  • n8n: HTTP Request node. Set the method to POST, the URL to the posts endpoint, and add the Authorization header. Chain it after any trigger you already run.

  • Make: HTTP module. Use "Make a request", POST, and add the Authorization header under Headers. Map the caption straight from an earlier module.

  • Zapier: Webhooks by Zapier. Choose the Custom Request action, POST, and paste the header in. Any Zapier trigger can then publish a post.

  • Airtable: Run script automation. A fetch() call in an automation script turns a row into a scheduled post, so a content table becomes a publishing queue.

  • Retool: REST API resource. Add the base URL once as a resource with a Bearer header, and every query in the app can publish.

  • Postman: Collection. Set the Bearer token at collection level and every request inherits it, which is the fastest way to try the API before writing code.

  • Bubble: API Connector plugin. Add the endpoint as an API call with a Bearer header, then trigger it from any workflow.

  • Anything else: Any HTTP client. If a tool can send a POST request with a Bearer header, it can publish through the API.

Why teams build on the PostEverywhere API

Social media API pricing: one unified API from $9/mo, maintained for you

Wiring up social platforms yourself means a different integration for every network, each with its own auth, review process, and rate limits. PostEverywhere replaces all of it with one integration, and our roundup of the best social media APIs explains how the options compare.

OpenClaw agent

Write three caption options for Friday's launch, make an image for each, and schedule them for 9am.

Called the PostEverywhere API

  • POST/ai/generate-caption3 captions
  • POST/ai/generate-image×3default model, 4:5
  • POST/posts/bulk3 posts scheduled

Done. Three posts are scheduled for Friday at 9:00 AM, each with its own image. They are in your PostEverywhere calendar if you want to change anything.

Scheduled
Start 7-day free trial

$0 due today, cancel anytime

Social media API FAQ

Social media API: your questions answered

Direct answers about the PostEverywhere social media API: platforms, pricing, limits, webhooks, approvals and AI agents.

What is a social media API?

A social media API lets software publish, schedule and read social media content without anyone clicking through each app. PostEverywhere's social media API is one REST API for all top platforms, so you integrate once instead of building a separate connection to Instagram, TikTok, LinkedIn, YouTube and the rest. It handles OAuth, token refresh, rate limits, retries and per-platform formatting for you.

Which platforms does the PostEverywhere API support?

All top platforms: Instagram, TikTok, LinkedIn, YouTube, Facebook, X (Twitter), Threads, Pinterest, Bluesky, Discord, Telegram, WordPress and Google Business Profile. Every post goes out through the platform's official API, and the platform list on this page shows which API each one uses. Facebook posts go to Pages, Instagram needs a Professional account, and Telegram works with channels, groups and supergroups where the bot is an admin.

What can you post through the social media API?

Text, images, video, carousels, X threads and first comments. Each post carries one video at most; carousels take up to 10 images on Instagram, 1 to 35 photos on TikTok and 2 to 5 images as a Pinterest carousel pin, and LinkedIn takes PDF document posts. Add a first comment with settings.firstComment on Instagram, Facebook, X, Threads and LinkedIn, and post to an X Community with platform_content.x.settings.community_id. Not supported: Instagram collab, location or product tags, LinkedIn polls and articles, Facebook Stories, and comment replies or DMs.

How much does the social media API cost?

API access is included on every plan, starting with Lite at $9/mo, and there is no separate API fee. Lite already includes API keys and the hosted MCP server; higher plans add connected accounts, AI credits and seats. There is no free plan: every plan starts with a 7-day trial, and a card is required.

Can I see a log of my API calls?

Yes. Every call made with an API key, including MCP tool calls from Claude, ChatGPT and Cursor, is listed on the Logs page in the dashboard with its status, duration, who made it and any error. Every response carries an X-Request-Id header that matches the log entry. Logs are kept for 30 days on every plan, with secrets redacted.

What are the rate limits?

There’s no posting cap from PostEverywhere on any plan. Each platform enforces its own limits, and very fast bursts of requests can be rate limited for a moment: the API returns 429 with a Retry-After header. Exact figures for developers are in the [rate limits reference](/docs/rate-limits). Publishing to each platform has built-in retry and rate-limit handling, so a single call reaches every network reliably.

How does authentication work?

Your own code sends an API key as a Bearer header. An owner or admin creates keys on the Developers page, gives each one read, write or AI permissions, limits it to specific accounts and can revoke it at any time. AI agents such as ChatGPT and Claude connect to the hosted MCP server by signing in to PostEverywhere and approving access, so no key is pasted into a chat.

Which webhook events can I subscribe to?

There are 13 event types: 6 for posts, 2 for accounts, 2 for media and 3 for approvals, including post.published, post.failed, post.partially_failed and account.reconnect_needed. Every delivery is signed with HMAC-SHA256 in the X-PostEverywhere-Signature header, and failed deliveries are retried with exponential backoff. Each organisation can have up to 25 webhook subscriptions.

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. Revoke it from the same page at any time.

What happens if a post fails on one platform?

Each platform publishes independently. If Instagram succeeds but TikTok fails, for example because a token expired, GET /v1/posts/{id}/results shows exactly which destinations succeeded and which failed. POST /v1/posts/{id}/retry retries only the failed destinations, and POST /v1/posts/retry-failed retries failures in bulk by platform, account or time window.

What does /me return?

GET /v1/me returns the API key's context in one call: the organisation, the plan, current quota usage, the scopes granted to the key and feature flags. SDKs use it to configure themselves without hardcoded IDs, and white-label tools use it to show plan-aware options.

Is there a sandbox or test mode?

There is no separate sandbox. To test safely, connect accounts you use only for testing, or schedule posts far in the future, inspect them through the API and delete them before they publish. Any key can be revoked instantly from the Developers page.

Can I build a white-label scheduler or publish from my CMS?

Yes. The API handles platform authentication, media processing and publishing while you build the interface, so agencies and SaaS builders can offer scheduling under their own brand. To publish from a CMS or blog, call POST /v1/posts when your CMS publishes (or use an RSS-to-post workflow in n8n or Zapier), and subscribe to post.published webhooks to close the loop.

Can I create posts in bulk?

Yes. One bulk API call creates up to 50 posts. If you would rather use a spreadsheet, Bulk Upload in the app takes a .csv file of up to 200 posts.

Is there an SDK or npm package?

Yes. Install @posteverywhere/sdk for a fully typed Node client with promises and inline documentation. You can also call the REST API directly with a single Bearer token from any language, or run the MCP server locally with npx -y @posteverywhere/mcp.

Is there a command-line tool?

Yes. Install @posteverywhere/cli with npm install -g @posteverywhere/cli to post and schedule across all top platforms from your terminal. Run posteverywhere login once, connect your accounts, and publish. Every command also supports --json output, so the same CLI works as a tool for AI agents like Claude Code and Cursor.

Can I upload media from a URL?

Yes. POST /v1/media/upload-from-url fetches a public file for you. Images (JPEG, PNG, GIF, WebP, HEIC and HEIF) up to 25 MB are ready straight away; MP4 video up to 4 GB imports in the background, so you check the media item until it is ready. Imported media counts toward your storage.

Can I approve posts through the API?

Yes. POST /v1/posts/{id}/approve approves a pending post, and POST /v1/posts/{id}/request-changes sends it back with a note the author sees. Posts created with an API key skip approval by default; to send one for review, create it with draft: true and request_approval: true. GET /v1/queue and GET /v1/posts?approval=pending list what is waiting. The MCP server can read the queue but cannot approve posts or request changes.

Should an AI agent use the API or the MCP server?

Use the MCP server when an AI agent such as ChatGPT, Claude or Cursor does the work in a conversation: it connects once, sees the tools and calls them in plain language, with nothing to install. Use the REST API or SDK when your own code, a backend job or a no-code tool such as n8n publishes. Both work on the same account and the same posts; see what an agent can do through our MCP server.

Can the API tell me the best time to post?

Yes. GET /v1/best-times returns the best weekday and hour slots for one account, several accounts (one combined pick) or a whole platform, in the time zone you ask for. Each slot says what it is based on: the account's own posts, what works across PostEverywhere on that platform, or general guidance. next_best is the soonest good slot at least 30 minutes ahead, so pass its next.iso as scheduled_for when you create the post. Through MCP, create_post and schedule_post take schedule_at: "best_time" to do this in one step.

Can I delete a published post through the API?

Deleting a published post removes it from PostEverywhere only; it stays live on the platform. The exception is X: add ?delete_on_platforms=x to the delete request and the live X post is deleted too.

Does PostEverywhere have a native Zapier or n8n app?

Not today. Every automation tool connects through its own generic HTTP block (the n8n HTTP Request node, the Make HTTP module, Webhooks by Zapier, an Airtable script, a Retool REST resource, a Postman collection or the Bubble API Connector) against the REST API. It is one POST request with a Bearer header, so setup takes minutes and nothing needs installing.

How is this different from using each platform's API directly?

Each platform has its own API, OAuth flow, token refresh cycle, rate limits, and media rules. Building and maintaining all of them is weeks of work that keeps breaking as platforms change. PostEverywhere gives you one integration that handles OAuth, token refresh, rate limiting, retries, and per-platform formatting behind a single consistent interface.

Does it use official platform APIs or browser automation?

Official platform APIs only, including the Meta Graph API, TikTok Content Posting API, and YouTube Data API. There is no fragile browser automation or unofficial scraping, which means reliable delivery and accounts that stay in good standing.

Still have questions?

Contact us or browse the full FAQ.

Start 7-day free trial

$0 due today, cancel anytime

Start building on the PostEverywhere API

API access on every plan from $9/month. 7-day trial, cancel anytime.