Python SDK
BulkPublish
Python SDK for scheduling and publishing social posts
Publish from Python with a client that works the way you do, synchronous for scripts and async for services. Schedule posts, upload media and pull analytics into your own analysis.
Python SDK operations
Python SDK can use 89 operations, sorted below into 17 areas. The list is read from the code Python SDK talks to, so everything on it works today.
| Area | Operations |
|---|---|
| Analytics | analytics.account(),analytics.engagement(),analytics.links(),analytics.post_history(),analytics.refresh(),analytics.summary() |
| Calendar notes | calendar_notes.create(),calendar_notes.delete(),calendar_notes.list(),calendar_notes.update() |
| Channel sets | channel_sets.create(),channel_sets.delete(),channel_sets.list(),channel_sets.update() |
| Channels | channels.disconnect(),channels.get(),channels.health(),channels.list(),channels.list_platforms(),channels.update() |
| Client connect links | client_connect_links.create(),client_connect_links.delete(),client_connect_links.list() |
| Hashtag groups | hashtag_groups.create(),hashtag_groups.delete(),hashtag_groups.get(),hashtag_groups.list(),hashtag_groups.update() |
| Inbox | inbox.list_conversations(),inbox.list_messages(),inbox.send_message(),inbox.update_conversation() |
| Labels | labels.create(),labels.delete(),labels.list(),labels.update() |
| Media | media.abort_multipart(),media.complete_multipart(),media.create_multipart(),media.delete(),media.get(),media.get_labels(),media.list(),media.set_labels(),media.thumbnail(),media.update(),media.upload() |
| Notifications | notifications.delete(),notifications.list(),notifications.mark_read(),notifications.preferences(),notifications.update_preferences() |
| Organisations | organizations.create(),organizations.list() |
| Platforms | platforms.list() |
| Posts | posts.approve(),posts.bulk(),posts.create(),posts.delete(),posts.engagement(),posts.get(),posts.list(),posts.metrics(),posts.moderate_comment(),posts.publish(),posts.publish_as_story(),posts.queue_slot(),posts.reject(),posts.reply_to_comment(),posts.retry(),posts.share(),posts.unshare(),posts.update() |
| Review links | review_links.create(),review_links.delete(),review_links.list() |
| RSS autopost | rss_feeds.create(),rss_feeds.delete(),rss_feeds.list(),rss_feeds.update() |
| Recurring schedules | schedules.create(),schedules.delete(),schedules.list(),schedules.update() |
| Templates | templates.create(),templates.delete(),templates.get(),templates.list(),templates.update() |
Where the posts go
Whatever Python SDK schedules can go to any of these 15 networks, to one account or to all of them at once. Each one links to its own page with its limits and post types.
Python SDK setup
Install it with pip, pass your API key, and use either the sync or the async client. Both expose the same methods.
- Create a BulkPublish account and connect the channels you want to publish to.
- Open Settings, then Developer, and make an API key. Keys belong to one organisation and can be revoked without touching the rest.
- Send the key as a bearer token on every request. The reference has a worked example for each operation.
Ways teams use this
Suits data teams, automation scripts and Django or FastAPI apps that need posting or reporting built in.
- Bulk upload a month of posts in one pass, then let the queue send them out at the times you set.
- Write once and cross-post everywhere. One post, adapted per network, goes to every connected channel together.
- Turn a blog or podcast RSS feed into automatic posts the moment a new item appears.
- Read the numbers back. Impressions, engagement and link clicks come back the same way the posts went out.
Details
The practical facts about Python SDK in one place, for setting it up now or checking something later.
| Detail | Value |
|---|---|
| Authentication | API key, made under Settings then Developer |
| Install | pip install bulkpublish |
| Operations | 89 operations |
| Networks | 15 networks |
Open Python SDK · Read the API docs
Frequently asked questions
What people usually want to know before they connect Python SDK.
Which parts of BulkPublish does it reach?
89 operations, listed above. Posts, media, labels, channel sets, recurring schedules, RSS autopost and analytics are all covered, which is everything the app itself calls.
How does authentication work?
An API key, sent as a bearer token. Make one under Settings then Developer. A key belongs to one organisation, and you can revoke it on its own without disturbing anything else.
Which networks can I publish to?
All 15 of them, in one call. Send the same text everywhere or override it per network, and the post is checked against each network limit before it is queued rather than after it fails.
Can I upload images and video?
Yes. Upload in one request for small files, or take a direct upload URL and send large video straight to storage in parts. Both give you a media id you attach to a post.
Can I read analytics back?
Yes. Per-post metrics and account summaries come back for every network that publishes them, and link clicks are measured by BulkPublish itself, so those are there even where a network reports nothing.
Is it free to use?
Yes, on every plan including the free one. There is no separate API charge. What you schedule counts against the same monthly post allowance as anything written in the app.
Still stuck? The Help Center walks through it step by step.
Guides and tutorials
Walkthroughs from our blog that use Python SDK.
Other integrations
BulkPublish also works with 28 other tools. Pick one to see how it connects.
Start publishing
Create an account, connect your channels, and your first post can be scheduled a couple of minutes later. Free plan, no card, cancel whenever you like.