Skip to main content

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

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

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

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

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

bulkpublish-0.1.4.tar.gz (18.2 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.1.4-py3-none-any.whl (24.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for bulkpublish-0.1.4.tar.gz
Algorithm Hash digest
SHA256 41c5d978b4e9664496f307d88f32de3a89d295eaa31edead9d05dd17a5bbad02
MD5 4cecc7a500f4136443c6269298a679fe
BLAKE2b-256 8c2b7849296cbd040dfc3ecf2dcbcabda58cc2aa1f3cc9cbab37bab59daec297

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for bulkpublish-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f883d4c96071a0bdd11ec070b608d72391f7cd1fd4cada2211728c2b1f727a6b
MD5 80312d40a58fdf6eec13204cade8f7b1
BLAKE2b-256 b7f13ec3d2a2c79e0a53a0a339cbd7654452173718e2a657d23b741ff0f4fadc

See more details on using hashes here.

Supported by

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