JSPM

@posteverywhere/sdk

1.2.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 66
  • Score
    100M100P100Q72503F
  • License MIT

Official PostEverywhere Node.js SDK — schedule and publish posts to Instagram, TikTok, YouTube, LinkedIn, Facebook, X (Twitter), Threads & Pinterest from code or AI agents.

Package Exports

  • @posteverywhere/sdk

Readme

PostEverywhere — Official Node.js SDK

npm version npm downloads License: MIT GitHub stars

The official Node.js / TypeScript SDK for PostEverywhere — schedule and publish posts to Instagram, TikTok, YouTube, LinkedIn, Facebook, X (Twitter), Threads, and Pinterest from a single API. Build social media scheduling, content automation, and AI agent workflows in minutes.

💡 Building an AI agent? Try the companion @posteverywhere/mcp package — a Model Context Protocol server that lets Claude Code, Claude Desktop, Cursor, and other MCP-compatible clients schedule posts using natural language.

Resource URL
🌐 Homepage posteverywhere.ai
🛠️ Developers landing page posteverywhere.ai/developers
📖 API Documentation developers.posteverywhere.ai
📦 This SDK on npm npmjs.com/package/@posteverywhere/sdk
💻 This SDK on GitHub github.com/posteverywhere/sdk
🤖 MCP server (npm) npmjs.com/package/@posteverywhere/mcp
🤖 MCP server (GitHub) github.com/posteverywhere/mcp
🎛️ Dashboard app.posteverywhere.ai
🔑 Get an API key app.posteverywhere.ai/developers
💵 Pricing posteverywhere.ai/pricing
📚 Help Center posteverywhere.ai/support
🐛 Issues / bug reports github.com/posteverywhere/sdk/issues
📧 Support support@posteverywhere.ai

Why PostEverywhere SDK?

  • One API, eight platforms — write once, publish to Instagram, TikTok, YouTube, LinkedIn, Facebook, X, Threads, and Pinterest
  • Schedule posts at any future time with timezone awareness
  • AI image generation built in (Flux, Ideogram, Gemini 3, Nano Banana Pro)
  • Multi-platform publishing with per-platform content overrides
  • Robust error handling with typed exceptions, automatic retries, and rate-limit awareness
  • Full TypeScript support with rich type definitions
  • AI-agent friendly — clean REST envelope, retryable flags on every error, idempotency keys, circuit breaker
  • Transparent pricing — flat plans from $19/mo, 7-day free trial, cancel anytime

A modern, API-first alternative to legacy social media management tools — designed for developers, AI agents, and automation-heavy workflows.

Install

npm install @posteverywhere/sdk
pnpm add @posteverywhere/sdk
yarn add @posteverywhere/sdk

Quick Start

import PostEverywhere from '@posteverywhere/sdk';

const client = new PostEverywhere({
  apiKey: 'pe_live_your_api_key_here',
});

// List connected social accounts
const { accounts } = await client.accounts.list();
console.log(accounts);

// Publish to all accounts immediately
const post = await client.posts.create({
  content: 'Hello from the PostEverywhere SDK! 🚀',
  publish_now: true,
});

// Or schedule for later
const scheduled = await client.posts.create({
  content: 'Tomorrow morning',
  scheduled_for: '2026-04-30T09:00:00Z',
  timezone: 'America/New_York',
});

Getting Started

  1. Sign up free at posteverywhere.ai — 7-day free trial
  2. Connect your social accounts in the dashboard (Instagram, TikTok, YouTube, LinkedIn, Facebook, X, Threads, Pinterest)
  3. Create an API key under Settings → Developers
  4. Install the SDK (above) and start building
  5. Read the full API docs for every endpoint

Accounts

// List all connected social accounts across all platforms
const { accounts } = await client.accounts.list();

// Get a single account by ID
const account = await client.accounts.get(123);

Each account has a health field showing token status and whether it can post — useful for surfacing reconnect prompts to your users.

Posts

The core of the SDK. Create, schedule, edit, retry, and delete posts across all platforms.

// Publish immediately to ALL connected accounts
const post = await client.posts.create({
  content: 'My post content',
  publish_now: true,
});

// Schedule for later (timezone-aware)
const scheduled = await client.posts.create({
  content: 'Scheduled post',
  scheduled_for: '2026-03-20T09:00:00Z',
  timezone: 'America/New_York',
});

// Target specific accounts only
const targeted = await client.posts.create({
  content: 'Just for Instagram and TikTok',
  account_ids: [456, 789],
  publish_now: true,
});

// Attach media (upload first, then reference)
const withMedia = await client.posts.create({
  content: 'Check out this photo!',
  media_ids: ['media-uuid-here'],
  publish_now: true,
});

// Per-platform content overrides — same post, different copy per network
const customized = await client.posts.create({
  content: 'Default content',
  platform_content: {
    twitter: { content: 'Short version for X' },
    linkedin: { content: 'Longer professional version for LinkedIn...' },
  },
  publish_now: true,
});

// List posts with filters
const { posts } = await client.posts.list({ status: 'done', limit: 10 });

// Get per-platform publishing results (with platform_post_url for each)
const results = await client.posts.results('post-id');

// Retry failed destinations
await client.posts.retry('post-id');

// Update a scheduled or draft post
await client.posts.update('post-id', { content: 'Updated content' });

// Delete a post
await client.posts.delete('post-id');

📖 Full posts API reference →

Bulk Scheduling

Scheduled posts (with a future scheduled_for) bypass the per-minute publishing limit, so you can fire a month of content in parallel:

const posts = [
  { content: 'Monday morning', scheduled_for: '2026-04-01T09:00:00Z' },
  { content: 'Wednesday update', scheduled_for: '2026-04-03T12:00:00Z' },
  { content: 'Friday wrap-up', scheduled_for: '2026-04-05T16:00:00Z' },
];

const results = await Promise.allSettled(
  posts.map(p =>
    client.posts.create({
      content: p.content,
      account_ids: [2280, 2282],
      scheduled_for: p.scheduled_for,
    })
  )
);

Media

Three-step upload flow handled automatically — get presigned URL → upload bytes → mark complete.

import fs from 'fs';

// Upload (full 3-step flow handled internally)
const media = await client.media.upload(
  fs.readFileSync('photo.jpg'),
  { filename: 'photo.jpg', contentType: 'image/jpeg' }
);

// Use it in a post
await client.posts.create({
  content: 'Photo post!',
  media_ids: [media.id],
  publish_now: true,
});

// List your media library
const { media: files } = await client.media.list({ type: 'image' });

// Delete media
await client.media.delete('media-id');

📖 Media requirements per platform →

AI Image Generation

Generate images from text prompts using state-of-the-art models, then post them directly.

const image = await client.ai.generateImage({
  prompt: 'A professional social media banner with abstract green shapes',
  model: 'flux-schnell',
  aspect_ratio: '16:9',
});

await client.posts.create({
  content: 'AI-generated visual!',
  media_ids: [image.media_id],
  publish_now: true,
});

Available models: nano-banana-pro, ideogram-v2, gemini-3-pro, flux-schnell

Aspect ratios: 1:1, 16:9, 9:16, 4:3, 3:4, 4:5, 5:4

AI Agent Integration

The PostEverywhere API is designed to be agent-friendly:

  • retryable: false on every permanent error — agents know when to stop retrying
  • Circuit breaker on identical-content failures (after 5 retries, returns 422 with permanent_failure_circuit_breaker) so runaway loops can't burn rate limits
  • Stable error codes — programmatic error handling
  • Comprehensive validation with explicit per-platform validation_errors

Using a Claude/MCP-style agent? Skip this SDK and use @posteverywhere/mcp instead — natural-language scheduling via the Model Context Protocol. Works with Claude Code, Claude Desktop, Cursor, and other MCP-compatible clients.

📖 LLM agent system prompt template →

Error Handling

import PostEverywhere, {
  AuthenticationError,
  RateLimitError,
  ValidationError,
  InsufficientCreditsError,
  PostEverywhereError,
} from '@posteverywhere/sdk';

try {
  await client.posts.create({ content: 'Hello!' });
} catch (error) {
  if (error instanceof AuthenticationError) {
    console.error('Invalid API key — check your key at posteverywhere.ai/developers');
  } else if (error instanceof RateLimitError) {
    console.error('Rate limited, retry after:', error.retryAfter, 'seconds');
  } else if (error instanceof ValidationError) {
    console.error('Bad request:', error.details);
  } else if (error instanceof InsufficientCreditsError) {
    console.error('Not enough AI credits — upgrade or wait for monthly reset');
  } else if (error instanceof PostEverywhereError) {
    console.error('API error:', error.message, error.requestId);
  }
}

Every error includes a retryable boolean — use it instead of inferring retry behavior from status codes.

📖 Full error reference →

Configuration

const client = new PostEverywhere({
  apiKey: 'pe_live_...',  // Required
  timeout: 120000,        // Default: 120s (AI generation can be slow)
  maxRetries: 2,          // Default: 2 — automatic retry on 429/5xx with backoff
});

Rate Limits

Resource Per minute Per hour Per day
General API calls 60 1,000
Posts 60 200 1,000
AI generation 60

The SDK auto-retries on 429 with exponential backoff, respecting the Retry-After header. See Rate Limits for the full breakdown.

Supported Platforms

All eight platforms work on every plan — no per-network add-ons:

  • Instagram Scheduler — feed, reels, stories, carousels
  • TikTok Scheduler — videos, photo carousels
  • YouTube Scheduler — videos with thumbnails, tags, descriptions
  • LinkedIn Scheduler — text, images, video, documents (carousels)
  • Facebook Scheduler — pages, video, reels, multi-image
  • X (Twitter) Scheduler — text, threads, media, tier-aware char limits
  • Threads Scheduler — text and media posts
  • Pinterest Scheduler — pins to boards

Documentation

PostEverywhere Around the Web

Per-Platform Schedulers

Every plan includes every platform — these are the per-platform landing pages:

Support

License

MIT — see LICENSE.


Built by the team at PostEverywhere. The smarter way to schedule social media posts to Instagram, TikTok, YouTube, LinkedIn, Facebook, X, Threads, and Pinterest from one place.