単一のAPI呼び出しで、15のプラットフォームにプログラムで公開できます。ブラウザセッションや手動操作を必要とせず、信頼性の高いソーシャルメディア自動化を必要とする開発者、AIエージェント、LLM、エージェンティックワークフローのために構築されています。
from bulkpublish import BulkPublish
bp = BulkPublish("bp_your_key_here")
bp.posts.create(
content="Launching our new product today!",
channels=[{"channelId": 1, "platform": "x"}, {"channelId": 2, "platform": "linkedin"}],
status="scheduled",
scheduled_at="2026-04-10T09:00:00Z",
)
BulkPublishの理由
ほとんどのソーシャルメディアツールは、人間がボタンをクリックするために作られています。BulkPublishはコードのために作られています。そのコードが開発者、AIエージェント、ツールを使用するLLM、または自律型ワークフローのいずれによって書かれたものであってもです。
- 設計上ヘッドレス — ブラウザ不要、UI不要、実行時のOAuthポップアップなし。ダッシュボードで一度アカウントを接続すれば、あとはAPI経由ですべてを自動化できます。
- AIネイティブ — Claude用のMCPサーバー、GPTおよびLangChain用のツール定義、LLMが確実に解析できる構造化JSONレスポンス。
- エージェント対応 — 明確なエラーコードを持つ決定論的API。AIエージェントは自律的に投稿の作成、ステータス確認、失敗の再試行、分析の読み取りを行うことができます。
- 15のプラットフォーム、1つのエンドポイント — Facebook, Instagram, X/Twitter, TikTok, YouTube, Threads, Bluesky, Pinterest, Google Business Profile, LinkedIn, Mastodon, Discord, Telegram, Tumblr, Snapchat。
ユースケース
- AIソーシャルメディアマネージャー — Claude、GPT、またはカスタムエージェントに投稿のスケジュールと公開を自律的に任せる
- コンテンツパイプライン — RSS-to-social、ブログ-to-social、ニュースレター-to-socialの自動化
- 一括スケジュール — CSVをアップロードするか、コンテンツカレンダーをフィードして、プログラムで数週間分の投稿をスケジュールする
- クロスプラットフォームシンジケーション — プラットフォームごとにコンテンツを最適化して、すべてのプラットフォームに一度に公開する
- 分析ダッシュボード — エンゲージメントデータを独自のツール、スプレッドシート、またはAI分析に取り込む
- Zapier/n8n/Makeの代替 — ミドルウェアなしの直接APIアクセス、低レイテンシ、より高い制御性
- LLMを活用したコンテンツ作成 — AIでコンテンツを生成し、BulkPublishで公開し、パフォーマンスを追跡し、反復する
クイックスタート
1. サインアップ
app.bulkpublish.comで無料アカウントを作成します。
2. APIキーを取得する
ダッシュボードの設定 > 開発者に移動し、APIキーを作成します。キーはbp_で始まり、一度だけ表示されるので、安全に保存してください。
3. プラットフォームを接続する
ダッシュボードのチャンネルでソーシャルアカウントを接続します。APIは、接続されたチャンネルを使用して公開します。
4. SDKをインストールする
Python
pip install bulkpublish
Node.js
npm install bulkpublish
Homebrew (macOS/Linux)
brew tap azeemkafridi/bulkpublish && brew install bulkpublish
または、curl、fetch、requests、または任意のHTTPクライアントを使用して、REST APIを直接呼び出すこともできます。
5. 最初のAPI呼び出しを行う
curl -X POST https://app.bulkpublish.com/api/posts \
-H "Authorization: Bearer bp_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"content": "Hello from the BulkPublish API!",
"channels": [{"channelId": 1, "platform": "linkedin"}],
"status": "draft"
}'
AIエージェント統合
MCPサーバー (Claude, Cursor, Windsurf, Claude Code)
BulkPublishにはMCPサーバーが同梱されているため、AIアシスタントがソーシャルメディアを直接管理できます。
{
"mcpServers": {
"bulkpublish": {
"command": "npx",
"args": ["-y", "@bulkpublish/mcp-server"],
"env": {
"BULKPUBLISH_API_KEY": "bp_your_key_here"
}
}
}
}
50のツールが利用可能です: create_post、list_channels、upload_media、get_analytics、対話型compose_postコンポーザー(MCPアプリ用)など。ローカル(stdio)またはホスト型(Streamable HTTP経由でhttps://mcp.bulkpublish.com/mcp)で実行できます。詳細はmcp-server/README.mdを参照してください。
ソーシャルメディアコンテンツスキル
BulkPublishには、AIエージェントがソーシャルメディアコンテンツを計画、適応、レビュー、スケジュール、公開するための24のスキルライブラリが含まれています: ソーシャルメディアコンテンツスキル。
LLMツール使用 / 関数呼び出し
自律型AIエージェント向けのすぐに使えるツール定義:
- Claude tool_useの例 — 投稿スケジュール用のツール定義を含むAnthropic SDK
- OpenAI function callingの例 — 投稿管理用の関数を含むGPT-4
- LangChain toolの例 — BulkPublishツールを使用するLangChainエージェント
すべての例は完全で実行可能なスクリプトであり、エラーハンドリングが含まれています。
コード例
投稿を作成する
from bulkpublish import BulkPublish
bp = BulkPublish("bp_your_key_here")
post = bp.posts.create(
content="Check out our latest update!",
channels=[
{"channelId": 1, "platform": "facebook"},
{"channelId": 2, "platform": "x"},
{"channelId": 3, "platform": "linkedin"},
],
status="draft",
)
import { BulkPublish } from 'bulkpublish';
const bp = new BulkPublish({ apiKey: 'bp_your_key_here' });
const post = await bp.posts.create({
content: 'Check out our latest update!',
channels: [
{ channelId: 1, platform: 'facebook' },
{ channelId: 2, platform: 'x' },
{ channelId: 3, platform: 'linkedin' },
],
status: 'draft',
});
投稿をスケジュールする
post = bp.posts.create(
content="This will go out tomorrow morning.",
channels=[{"channelId": 1, "platform": "instagram"}],
status="scheduled",
scheduled_at="2026-04-10T09:00:00Z",
timezone="America/New_York",
)
メディアをアップロードして公開する
media = bp.media.upload("./product-photo.jpg")
post = bp.posts.create(
content="Our newest product is here.",
channels=[{"channelId": 1, "platform": "instagram"}],
media_files=[media["file"]["id"]],
status="scheduled",
scheduled_at="2026-04-10T12:00:00Z",
)
自動化の例: CSVから一括スケジュール
import csv
from bulkpublish import BulkPublish
bp = BulkPublish("bp_your_key_here")
channels = bp.channels.list()["channels"]
with open("content-calendar.csv") as f:
for row in csv.DictReader(f):
bp.posts.create(
content=row["content"],
channels=[{"channelId": ch["id"], "platform": ch["platform"]} for ch in channels],
status="scheduled",
scheduled_at=row["scheduled_at"],
timezone="America/New_York",
)
その他の例はexamples/にあります。Python自動化スクリプト、Node.jsの例、curlリファレンス、AIエージェント統合など。
機能
- 15のプラットフォーム — Facebook, Instagram, X/Twitter, TikTok, YouTube, Threads, Bluesky, Pinterest, Google Business Profile, LinkedIn, Mastodon, Discord, Telegram, Tumblr, Snapchat
- スケジュール設定 — タイムゾーン対応で任意の将来の時刻に投稿をスケジュールするか、キュー枠に最適な時刻を選択させる
- メディアアップロード — 画像(JPEG, PNG, WebP, GIF)および動画(MP4, MOV, WebM)最大100 MB
- 繰り返しスケジュール — 毎日、毎週、隔週、または毎月、設定した時刻に投稿を繰り返す
- 分析 — インプレッション、いいね、コメント、シェア、エンゲージメントを追跡。各プラットフォームは異なるサブセットのメトリクスを報告し、レスポンスはどのメトリクスがサポートされているか(
supportedMetrics/supportedTotals)を示すため、0が測定値と誤解されることはありません。詳細はプラットフォーム別メトリクスを参照。 - リンクトラッキング — 組織ごと、または投稿ごとに
linkTrackingOverrideを介してオプトインし、bulkpubli.shを介してリンクを書き換え、クリック数をカウントします。linkClicks/totalLinkClicksとして報告され、プラットフォームではなくBulkPublishによって測定されるため、プラットフォームが何も報告しない場合でも機能します。詳細は文字数制限を参照。 - ラベル — 色分けされたラベルで投稿とメディアを整理
- 一括操作 — 単一のリクエストで複数の投稿を削除または再試行
- スレッド — X、Threads、Bluesky、Mastodon向けのマルチパートスレッド投稿
- 自動ファーストコメント — 公開後に任意のプラットフォームに自動的にコメントを追加
- すべての投稿タイプ — Reels、Stories、Carousels、Threads、Shorts、動画 —
postTypeOverridesでプラットフォームごとに設定 - プラットフォーム別コンテンツ — 単一の投稿内でプラットフォームごとにテキストとオプションをカスタマイズ
- プラットフォーム固有のオプション — Instagramのコラボレーター、TikTokのプライバシー、YouTubeのカテゴリ、Pinterestのボードなど
APIリファレンス
完全なインタラクティブAPIドキュメント: app.bulkpublish.com/docs
ベースURL
https://app.bulkpublish.com
認証
Authorization: Bearer bp_your_key_here
コアエンドポイント
| メソッド | エンドポイント | 説明 |
|---|---|---|
POST | /api/posts | 投稿を作成(下書き、スケジュール、または即時) |
GET | /api/posts | 投稿を一覧表示(ページネーションあり、ステータス/日付/チャンネル/ラベルでフィルタリング可能) |
GET | /api/posts/:id | プラットフォームステータスとメトリクスを含む投稿を取得 |
PUT | /api/posts/:id | 下書きまたはスケジュールされた投稿を更新 |
DELETE | /api/posts/:id | 投稿を削除 |
POST | /api/posts/:id/publish | 下書きを即時に公開 |
POST | /api/posts/:id/retry | 失敗したプラットフォームを再試行 |
POST | /api/posts/:id/approve | チーム承認待ちの投稿を承認(post:approveロールを持つユーザー) |
POST | /api/posts/:id/reject | 保留中の投稿を下書きに戻し、オプションで理由を添える |
POST | /api/posts/bulk | 一括削除または再試行 |
GET | /api/channels | 接続されたソーシャルメディアチャンネルを一覧表示 |
GET | /api/channels/:id/health | チャンネルトークンの健全性を確認 |
GET | /api/channels/:id/options | プラットフォームオプションを取得(Pinterestボード、YouTubeプレイリスト) |
GET | /api/channels/:id/mentions | @メンション用のユーザーを検索(X、Bluesky) |
GET/POST | /api/channel-sets | ワンクリックターゲティング用の保存済みチャンネルグループ(更新/削除は/api/channel-sets/:id経由) |
GET/POST | /api/rss-feeds | RSS/Atom自動投稿フィード — 新しいアイテムが投稿になります(更新/削除は/api/rss-feeds/:id経由) |
POST | /api/media | メディアファイルをアップロード(マルチパートフォーム、最大100MB) |
POST | /api/media/multipart/create | 大きなメディアファイル(最大1GBの動画、10MBパーツ)の分割アップロードを開始 |
POST | /api/media/multipart/complete | アップロードされたパーツを結合し、メディアファイルを記録 |
GET | /api/media | アップロードされたメディアを一覧表示 |
GET | /api/analytics/summary | 日付範囲の分析サマリー |
GET | /api/analytics/engagement | 日/週/月ごとにグループ化されたエンゲージメントデータ |
POST | /api/schedules | 繰り返しスケジュールを作成 |
GET | /api/quotas/usage | 現在のプラン制限と使用状況を確認 |
完全なエンドポイントリストについては、OpenAPI仕様を参照してください。
サポートされているプラットフォーム
| プラットフォーム | 投稿タイプ | メディア |
|---|---|---|
| 投稿, ストーリー | 画像, 動画 | |
| フィード, リール, ストーリー, カルーセル | 画像(JPEG), 動画(MP4, MOV) | |
| X / Twitter | ツイート, スレッド | 画像, 動画, GIF |
| TikTok | 動画, フォトスライドショー | 動画(MP4, MOV), 画像 |
| YouTube | 動画, ショート | 動画(MP4, MOV, WebM, AVI, WMV, FLV) |
| Threads | 投稿, スレッド, 引用投稿 | 画像, 動画 |
| Bluesky | 投稿, スレッド | 画像 |
| ピン, アイデアピン | 画像, 動画 | |
| Google Business Profile | 投稿 | 画像, 動画 |
| 投稿, カルーセル | 画像, 動画, ドキュメント | |
| Mastodon | 投稿, スレッド | 画像, 動画 |
| Discord | メッセージ, 埋め込み | 画像, 動画, ファイル |
| Telegram | メッセージ, 写真, 動画 | 画像, 動画, ファイル |
| Tumblr | テキスト, 写真, 動画, リンク, 引用, チャット | 画像, 動画 |
| Snapchat | スポットライト | 動画(MP4, MOV) |
各プラットフォームの機能と制限の詳細なガイドについては、プラットフォームガイドを参照してください。