BulkPublish Python SDK
Official Python SDK for the BulkPublish social media API. Automate publishing to 15 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",
)
Post Type Overrides
# Post a reel to Instagram
post = bp.posts.create(
content="Check this out!",
channels=[{"channelId": 1, "platform": "instagram"}],
media_files=[media_id],
post_type_overrides={"instagram": "reel"},
)
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 (check
supportedMetricsbefore treating a0as a measurement — platforms report different subsets)
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, approve, reject, bulk, queue_slot |
bp.channels |
list, get, delete, health |
bp.media |
upload, list, get, delete, get_labels, set_labels, create_multipart, complete_multipart, abort_multipart |
bp.analytics |
summary, engagement, refresh, account |
bp.labels |
list, create, update, delete |
bp.schedules |
list, create, update, delete |
bp.channel_sets |
list, create, update, delete — saved channel groups for one-click targeting |
bp.rss_feeds |
list, create, update, delete — RSS/Atom autopost feeds (new items become posts; optional field_mapping controls caption template, media, truncation, per-channel overrides) |
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
Metadata
Release files for bulkpublish 0.15.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bulkpublish-0.15.0.tar.gz | 33.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bulkpublish-0.15.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 75.1 kB
Release files / bulkpublish-0.15.0.tar.gz
| Download URL | bulkpublish-0.15.0.tar.gz |
|---|---|
| Size | 33.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
30458fdb9dfea6d2420359b8b598d6fea3e2364d65bb7cbf97d8c97891f50159
|
|
BLAKE2b-256 checksum How to use checksums |
59b1461c008c41b73d276c643ba672d5bf8b98aba24d7cb40e1ab9ee82f11814
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.0
|
Release files / bulkpublish-0.15.0-py3-none-any.whl
| Download URL | bulkpublish-0.15.0-py3-none-any.whl |
|---|---|
| Size | 41.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6f093f289380a578664cefb9117136f5e41f0c16cb126f877d7d15bbd1a7f2f9
|
|
BLAKE2b-256 checksum How to use checksums |
858b81c46e558dcf8919087fdc9fc394afaf45119fd368b31a378264b796d5a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.0
|