Skip to main content

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",
)

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 supportedMetrics before treating a 0 as 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

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bulkpublish-0.11.0.tar.gz (30.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bulkpublish-0.11.0-py3-none-any.whl (38.9 kB view details)

Uploaded Python 3

File details

Details for the file bulkpublish-0.11.0.tar.gz.

File metadata

  • Download URL: bulkpublish-0.11.0.tar.gz
  • Upload date:
  • Size: 30.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.0

File hashes

Hashes for bulkpublish-0.11.0.tar.gz
Algorithm Hash digest
SHA256 b4ce06678e9f114c9b4a4d6dd23114f630b65f9439c21979b8c0f915742f0e78
MD5 04b88a368e98b74bc9ac2d227c56d9e8
BLAKE2b-256 a6f918d8f41b3dcd6484dac083d00142b9966bed2a7ec3c9e720f8e6fddbd977

See more details on using hashes here.

File details

Details for the file bulkpublish-0.11.0-py3-none-any.whl.

File metadata

  • Download URL: bulkpublish-0.11.0-py3-none-any.whl
  • Upload date:
  • Size: 38.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.0

File hashes

Hashes for bulkpublish-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b812456c5672042b6bb320a1643ab05dee4a518fa17ce6f4c57a0428faefec30
MD5 07a602266c51218a1f927ab2cb0f5611
BLAKE2b-256 a9c1df0762eb63bcb97f0e75aaddad7ab392d5eda49ab1f1572c6edc6d09fb2f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.11.0 This release

2 files

0.4.2

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page