BulkPublish
Enables publishing posts and threads with image media to the Bluesky platform, including scheduling and analytics capabilities.
Supports publishing posts and stories with images and videos to Facebook, including scheduling, draft management, and engagement analytics.
Provides integration with Google Business Profile for publishing posts, events, and offers with images, plus analytics tracking.
Enables publishing feed posts, reels, stories, and carousels with images and videos to Instagram, including support for collaborators and scheduling.
Supports publishing posts and threads with images and videos to Mastodon instances, with scheduling and retry capabilities.
Enables publishing pins with images and videos to Pinterest, including board selection and scheduling options.
Supports publishing posts, threads, and quote posts with images and videos to Threads, with full scheduling and analytics support.
Enables publishing videos and photo slideshows to TikTok, with privacy settings and scheduling capabilities.
Supports publishing videos and shorts to YouTube, accepting various video formats including MP4, MOV, WebM, AVI, WMV, and FLV.
BulkPublish API
The free social media API built for automation, AI agents, and LLMs.
Programmatically publish to 15 platforms from a single API call. Built for developers, AI agents, LLMs, and agentic workflows that need reliable social media automation without browser sessions or manual interaction.
from bulkpublish import BulkPublish
bp = BulkPublish("bp_your_key_here")
bp.posts.create(
content="Launching our new product today!",
channels=[{"channelId": 1, "platform": "x"}, {"channelId": 2, "platform": "linkedin"}],
status="scheduled",
scheduled_at="2026-04-10T09:00:00Z",
)Why BulkPublish?
Most social media tools are built for humans clicking buttons. BulkPublish is built for code — whether that code is written by a developer, an AI agent, an LLM with tool use, or an autonomous workflow.
Headless by design — No browser, no UI, no OAuth pop-ups at runtime. Connect accounts once in the dashboard, then automate everything via API.
AI-native — MCP server for Claude, tool definitions for GPT and LangChain, structured JSON responses that LLMs parse reliably.
Agentic-ready — Deterministic API with clear error codes. AI agents can create posts, check status, retry failures, and read analytics autonomously.
15 platforms, one endpoint — Facebook, Instagram, X/Twitter, TikTok, YouTube, Threads, Bluesky, Pinterest, Google Business Profile, LinkedIn, Mastodon, Reddit, Discord, Telegram, Tumblr.
Related MCP server: Publora MVP MCP Server
Use Cases
AI social media managers — Let Claude, GPT, or custom agents schedule and publish posts autonomously
Content pipelines — RSS-to-social, blog-to-social, newsletter-to-social automation
Bulk scheduling — Upload a CSV or feed a content calendar and schedule weeks of posts programmatically
Cross-platform syndication — Publish once to all platforms with per-platform content optimization
Analytics dashboards — Pull engagement data into your own tools, spreadsheets, or AI analysis
Zapier/n8n/Make alternatives — Direct API access without middleware, lower latency, more control
LLM-powered content creation — Generate content with AI, publish it with BulkPublish, track performance, iterate
Quick Start
1. Sign up
Create a free account at app.bulkpublish.com.
2. Get your API key
Go to Settings > Developer in the dashboard and create an API key. Keys start with bp_ and are shown only once — save it securely.
3. Connect platforms
Connect your social accounts in the dashboard under Channels. The API uses your connected channels to publish.
4. Install an SDK
Python
pip install bulkpublishNode.js
npm install bulkpublishHomebrew (macOS/Linux)
brew tap azeemkafridi/bulkpublish && brew install bulkpublishOr call the REST API directly with curl, fetch, requests, or any HTTP client.
5. Make your first API call
curl -X POST https://app.bulkpublish.com/api/posts \
-H "Authorization: Bearer bp_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"content": "Hello from the BulkPublish API!",
"channels": [{"channelId": 1, "platform": "linkedin"}],
"status": "draft"
}'AI Agent Integration
MCP Server (Claude, Cursor, Windsurf, Claude Code)
BulkPublish ships an MCP server so AI assistants can manage your social media directly:
{
"mcpServers": {
"bulkpublish": {
"command": "npx",
"args": ["-y", "@bulkpublish/mcp-server"],
"env": {
"BULKPUBLISH_API_KEY": "bp_your_key_here"
}
}
}
}50 tools available: create_post, list_channels, upload_media, get_analytics, the interactive compose_post composer (MCP Apps), and more. Runs locally (stdio) or hosted over Streamable HTTP at https://mcp.bulkpublish.com/mcp. See mcp-server/README.md.
LLM Tool Use / Function Calling
Ready-made tool definitions for autonomous AI agents:
Claude tool_use example — Anthropic SDK with tool definitions for scheduling posts
OpenAI function calling example — GPT-4 with functions for post management
LangChain tool example — LangChain agent with BulkPublish tools
All examples are complete, runnable scripts with error handling.
Code Examples
Create a Post
from bulkpublish import BulkPublish
bp = BulkPublish("bp_your_key_here")
post = bp.posts.create(
content="Check out our latest update!",
channels=[
{"channelId": 1, "platform": "facebook"},
{"channelId": 2, "platform": "x"},
{"channelId": 3, "platform": "linkedin"},
],
status="draft",
)import { BulkPublish } from 'bulkpublish';
const bp = new BulkPublish({ apiKey: 'bp_your_key_here' });
const post = await bp.posts.create({
content: 'Check out our latest update!',
channels: [
{ channelId: 1, platform: 'facebook' },
{ channelId: 2, platform: 'x' },
{ channelId: 3, platform: 'linkedin' },
],
status: 'draft',
});Schedule a Post
post = bp.posts.create(
content="This will go out tomorrow morning.",
channels=[{"channelId": 1, "platform": "instagram"}],
status="scheduled",
scheduled_at="2026-04-10T09:00:00Z",
timezone="America/New_York",
)Upload Media and Publish
media = bp.media.upload("./product-photo.jpg")
post = bp.posts.create(
content="Our newest product is here.",
channels=[{"channelId": 1, "platform": "instagram"}],
media_files=[media["file"]["id"]],
status="scheduled",
scheduled_at="2026-04-10T12:00:00Z",
)Automation Example: Bulk Schedule from CSV
import csv
from bulkpublish import BulkPublish
bp = BulkPublish("bp_your_key_here")
channels = bp.channels.list()["channels"]
with open("content-calendar.csv") as f:
for row in csv.DictReader(f):
bp.posts.create(
content=row["content"],
channels=[{"channelId": ch["id"], "platform": ch["platform"]} for ch in channels],
status="scheduled",
scheduled_at=row["scheduled_at"],
timezone="America/New_York",
)More examples in examples/ — including Python automation scripts, Node.js examples, curl reference, and AI agent integrations.
Features
15 platforms — Facebook, Instagram, X/Twitter, TikTok, YouTube, Threads, Bluesky, Pinterest, Google Business Profile, LinkedIn, Mastodon, Reddit, Discord, Telegram, Tumblr
Scheduling — Schedule posts for any future time with timezone support, or let queue slots pick optimal times
Media uploads — Images (JPEG, PNG, WebP, GIF) and videos (MP4, MOV, WebM) up to 100 MB
Recurring schedules — Repeat posts daily, weekly, biweekly, or monthly at a set time of day
Analytics — Track impressions, likes, comments, shares, and engagement. Each platform reports a different subset of metrics, and the response says which (
supportedMetrics/supportedTotals) so a0is never mistaken for a measurement — see Metrics by PlatformLabels — Organize posts and media with color-coded labels
Bulk operations — Delete or retry multiple posts in a single request
Threads — Multi-part thread posts for X, Threads, Bluesky, and Mastodon
Auto first comment — Automatically add a comment after publishing on any platform
All post types — Reels, Stories, Carousels, Threads, Shorts, Video — set per-platform via
postTypeOverridesPer-platform content — Customize text and options per platform in a single post
Platform-specific options — Instagram collaborators, TikTok privacy, YouTube categories, Pinterest boards, and more
API Reference
Full interactive API documentation: app.bulkpublish.com/docs
Base URL
https://app.bulkpublish.comAuthentication
Authorization: Bearer bp_your_key_hereCore Endpoints
Method | Endpoint | Description |
|
| Create a post (draft, scheduled, or immediate) |
|
| List posts (paginated, filterable by status/date/channel/label) |
|
| Get a post with platform statuses and metrics |
|
| Update a draft or scheduled post |
|
| Delete a post |
|
| Publish a draft immediately |
|
| Retry failed platforms |
|
| Approve a post awaiting team approval (roles with post:approve) |
|
| Reject a pending post back to draft, with an optional reason |
|
| Bulk delete or retry |
|
| List connected social media channels |
|
| Check channel token health |
|
| Get platform options (Pinterest boards, YouTube playlists) |
|
| Search users for @mention (X, Bluesky) |
|
| Saved channel groups for one-click targeting (update/delete via |
|
| RSS/Atom autopost feeds — new items become posts (update/delete via |
|
| Upload a media file (multipart form, up to 100MB) |
|
| Start a chunked upload for large media (videos up to 1GB, 10MB parts) |
|
| Assemble uploaded parts and record the media file |
|
| List uploaded media |
|
| Analytics summary for a date range |
|
| Engagement data grouped by day/week/month |
|
| Create a recurring schedule |
|
| Check current plan limits and usage |
See the OpenAPI spec for the complete endpoint list.
Supported Platforms
Platform | Post Types | Media |
Post, Story | Images, Videos | |
Feed, Reel, Story, Carousel | Images (JPEG), Videos (MP4, MOV) | |
X / Twitter | Tweet, Thread | Images, Videos, GIFs |
TikTok | Video, Photo Slideshow | Videos (MP4, MOV), Images |
YouTube | Video, Short | Videos (MP4, MOV, WebM, AVI, WMV, FLV) |
Threads | Post, Thread, Quote Post | Images, Videos |
Bluesky | Post, Thread | Images |
Pin | Images, Videos | |
Google Business Profile | Post, Event, Offer | Images |
Post, Multi-image, PDF Carousel, Article | Images (JPEG, PNG, GIF), Videos (MP4) | |
Mastodon | Post, Thread | Images, Videos |
SDKs
Python
pip install bulkpublishSupports sync and async. Rich docstrings on every method for IDE and LLM consumption.
Node.js / TypeScript
npm install bulkpublishFull TypeScript types, zero dependencies, native fetch (Node 18+).
Homebrew (macOS/Linux)
brew tap azeemkafridi/bulkpublish && brew install bulkpublishInstalls the Node SDK via Homebrew.
REST API
No SDK needed — any HTTP client works:
curl https://app.bulkpublish.com/api/channels \
-H "Authorization: Bearer bp_your_key_here"Rate Limits
Limit | Free | Pro | Business |
Writes/min | 60 | 60 | 60 |
Reads/min | 300 | 300 | 300 |
Daily API requests | 100 | 5,000 | 50,000 |
API keys | 1 | 5 | 10 |
| Recurring schedules | — | 10 | Unlimited |
See the rate limits guide for headers, backoff strategies, and best practices.
Guides
Authentication — API keys, authorization, key management
Scheduling — Scheduled posts, queue slots, recurring schedules, timezones
Media Uploads — File uploads, supported formats, using media in posts
Platform Options — Per-platform configuration and quirks
Rate Limits — Burst limits, daily quotas, best practices
Integrations
Platform | Package | Install |
Zapier | Search "BulkPublish" in Zapier | |
n8n | Settings > Community Nodes > | |
Homebrew |
|
Links
Resource | URL |
Dashboard | |
API Docs | |
Website | |
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
AlicenseAqualityDmaintenanceAccess 21+ real-time social media data from a single APILast updated51512MIT- Flicense-qualityCmaintenanceEnables AI agents to create, schedule, and manage social media posts across 10 platforms via a unified API.Last updated

Upload-Postofficial
AlicenseAqualityBmaintenanceUpload-Post is the all-in-one social media MCP server the Model Context Protocol server for social media publishing, scheduling and analytics. Connect any MCP-compatible AI agent (Claude, Cursor, ChatGPT, Claude Desktop, n8n, and more) and publish, schedule and analyze content across 13+ social networks from one API: TikTok, Instagram, YouTube, YouTube Shorts, Instagram Reels, LinkedIn, FacebookLast updated517033MIT- Alicense-qualityCmaintenanceEnables posting to multiple social media platforms (X, LinkedIn, Facebook, Instagram, etc.) via a unified API, handling OAuth, media, and scheduling for each network.Last updatedAGPL 3.0
Related MCP Connectors
Publish, schedule, and manage social media posts across major platforms via the Postproxy API.
Connect any AI agent to 11+ social platforms: schedule, publish & track posts via hosted MCP.
Schedule, publish, and analyze social posts on TikTok, Instagram, YouTube, X, Threads, LinkedIn.
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/azeemkafridi/bulkpublish-api'
If you have feedback or need assistance with the MCP directory API, please join our Discord server