PostEverywhere API
Schedule and publish social media content across multiple platforms from a single API. Manage accounts, create posts, upload media, and monitor publishing results.
Quick Start
Node.js SDK:
npm install posteverywhere
Claude Code (MCP):
{
"mcpServers": {
"posteverywhere": {
"command": "npx",
"args": ["-y", "@posteverywhere/mcp"],
"env": { "POSTEVERYWHERE_API_KEY": "pe_live_..." }
}
}
}
CLI Setup:
npx posteverywhere init
Authentication
All endpoints require a Bearer token. Generate an API key from Developers in the PostEverywhere dashboard.
Authorization: Bearer pe_live_abc123...
Sign up for a free 14-day trial (no credit card required).
Response Format
All responses follow a consistent envelope:
{
"data": { ... },
"error": null,
"meta": { "request_id": "a1b2c3d4", "timestamp": "2026-03-01T12:00:00.000Z" }
}
On error, data is null and error contains { "message": "...", "code": "error_code", "details": ... }.
Rate Limits
API keys are rate-limited per minute and per hour. When exceeded, the API returns 429 Too Many Requests with Retry-After and X-RateLimit-* headers.
Platform Guides
Use the platform_content parameter on POST /posts to customise content per platform.
Instagram
Supports Feed Posts, Reels, Stories, and Trial Reels.
{
"platform_content": {
"instagram": {
"content": "Instagram-specific caption",
"contentType": "Story",
"settings": {
"altText": "Image description for accessibility",
"firstComment": "First comment text"
}
}
}
}
contentType:"Post"(default for images),"Reels"(default for videos),"Story","Trial Reel"altText: max 100 charactersfirstComment: auto-posted as first comment after publishing- Media (image or video) is required
TikTok
{
"platform_content": {
"tiktok": {
"content": "TikTok caption (max 150 chars)",
"settings": {
"privacyLevel": "PUBLIC_TO_EVERYONE",
"allowComments": true,
"allowDuet": true,
"allowStitch": true,
"videoCoverTimestamp": 1000
}
}
}
}
privacyLevel:"PUBLIC_TO_EVERYONE"|"MUTUAL_FOLLOW_FRIENDS"|"FOLLOWER_OF_CREATOR"|"SELF_ONLY"videoCoverTimestamp: thumbnail frame in milliseconds (default 1000)- Video is required for TikTok
YouTube
{
"platform_content": {
"youtube": {
"content": "Video description",
"settings": {
"title": "My Video Title (required)",
"privacyStatus": "public",
"tags": ["tag1", "tag2"],
"categoryId": "22",
"madeForKids": false
}
}
}
}
title: required for YouTube, max 100 charactersprivacyStatus:"public"|"unlisted"|"private"categoryId: YouTube category (e.g."22"= People & Blogs)- Video is required for YouTube
LinkedIn
{
"platform_content": {
"linkedin": {
"content": "LinkedIn-specific text (max 3000 chars)",
"settings": {
"visibility": "PUBLIC",
"firstComment": "First comment text"
}
}
}
}
visibility:"PUBLIC"|"CONNECTIONS"|"LOGGED_IN_MEMBERS"- Supports images, videos, and PDF documents
X (Twitter)
{
"platform_content": {
"x": {
"content": "Tweet text (max 280 chars)",
"settings": {
"replySettings": "everyone",
"mediaAltText": "Image description",
"firstComment": "Reply text"
}
}
}
}
replySettings:"everyone"|"following"|"mentionedUsers"mediaAltText: max 1000 characters- Threads: pass
threadPostsarray at top level for multi-tweet threads
Facebook
{
"platform_content": {
"facebook": {
"content": "Facebook post text",
"settings": {
"videoType": "reel",
"link": "https://example.com",
"firstComment": "First comment text"
}
}
}
}
videoType:"reel"(9:16, default) |"video"(any aspect ratio)link: URL to share as link preview
Threads
{
"platform_content": {
"threads": {
"content": "Threads post (max 500 chars)",
"settings": {
"replyControl": "everyone",
"firstComment": "First comment text"
}
}
}
}
replyControl:"everyone"|"following"|"mentioned"
Resources
Authentication
- HTTP: Bearer Auth
API key from Developers. Format: pe_live_ followed by 32 hex characters.
Security Scheme Type: | http |
|---|---|
HTTP Authorization Scheme: | bearer |