Social media automation API for AI agents, LLMs, and developers. Publish to 11 platforms programmatically.
Project description
BulkPublish Python SDK
Official Python SDK for the BulkPublish social media API. Automate publishing to 11 platforms — built for developers, scripts, AI agents, LLMs, and agentic workflows.
Installation
pip install bulkpublish
Requires Python 3.8+. Only dependency: httpx.
Quick Start
from bulkpublish import BulkPublish
bp = BulkPublish("bp_your_key_here")
# List connected social media channels
channels = bp.channels.list()
# Upload media
media = bp.media.upload("./photo.jpg")
# Schedule a post to multiple platforms
post = bp.posts.create(
content="Hello from the BulkPublish API!",
channels=[
{"channelId": 1, "platform": "instagram"},
{"channelId": 2, "platform": "x"},
],
media_files=[media["file"]["id"]],
scheduled_at="2026-04-10T09:00:00Z",
timezone="America/New_York",
status="scheduled",
)
Built for Automation
BulkPublish is designed for programmatic social media management — no browser sessions, no UI, no OAuth flows at runtime. Connect your accounts once in the dashboard, then automate everything:
- AI agents — Use with Claude (MCP server), GPT (function calling), LangChain, or any LLM that supports tool use
- Cron jobs & scripts — Schedule content pipelines, RSS-to-social, blog-to-social workflows
- Bulk operations — Upload a CSV, iterate, and schedule hundreds of posts programmatically
- Analytics extraction — Pull engagement data into your own dashboards or AI analysis pipelines
Async Support
import asyncio
from bulkpublish import AsyncBulkPublish
async def main():
bp = AsyncBulkPublish("bp_your_key_here")
channels = await bp.channels.list()
post = await bp.posts.create(
content="Async post!",
channels=[{"channelId": 1, "platform": "x"}],
status="draft",
)
asyncio.run(main())
Available Resources
| Resource | Methods |
|---|---|
bp.posts |
create, list, get, update, delete, publish, retry, bulk, queue_slot |
bp.channels |
list, get, delete, health |
bp.media |
upload, list, get, delete |
bp.analytics |
summary, engagement, refresh, account |
bp.labels |
list, create, update, delete |
bp.schedules |
list, create, update, delete |
bp.webhooks |
list, create, update, delete |
Every method has docstrings with usage examples — works great with IDE autocomplete and LLM code generation.
Supported Platforms
Facebook, Instagram, X (Twitter), TikTok, YouTube, Threads, Bluesky, Pinterest, Google Business Profile, LinkedIn, Mastodon
Resources
- Full API Reference
- Guides & Examples
- AI Agent Examples — Claude, GPT, LangChain
- MCP Server — For Claude Desktop, Claude Code, Cursor
- Get an API Key
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bulkpublish-0.1.0.tar.gz.
File metadata
- Download URL: bulkpublish-0.1.0.tar.gz
- Upload date:
- Size: 18.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99de853000a1d8b6965bd88a0dc2dda19195f3dc03d051722d222ba66c41519f
|
|
| MD5 |
3be799a386360481db79cfaa418d966f
|
|
| BLAKE2b-256 |
c070aadbd7598fe8d83829f3d4ced0d04fc8d56d92df441b1a468e2e16ab9a21
|
File details
Details for the file bulkpublish-0.1.0-py3-none-any.whl.
File metadata
- Download URL: bulkpublish-0.1.0-py3-none-any.whl
- Upload date:
- Size: 25.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb86c4615646a9e149322b1fcb2062ebc5e65779e7811fc4a29dd77b2441312e
|
|
| MD5 |
34dfa34979220e33de8fe6adad6aba71
|
|
| BLAKE2b-256 |
57fa4329b7da2280adadf95a002566c65151fcc645a8b204e567a39cf4b78745
|