REST APIの概要
Botdoor REST APIは、HTTPS上でJSONをやり取りします。ベースURLはhttps://botdoor.co/api/v1です。
APIキーをBearerトークンとして送信します。
curl https://botdoor.co/api/v1/accounts -H "Authorization: Bearer $BOTDOOR_KEY"キーはbd_で始まり、表示されるのは一度だけです。アプリのAPIキーで作成するか、サインアップで取得します。キーがない、または誤っている場合は、WWW-Authenticate: Bearerとともに401 unauthorizedが返ります。同じエンドポイントはログイン済みのブラウザセッションも受け付けます。Webアプリはこの方法でAPIを呼び出しています。承認と一括承認・一括却下にはこのセッションが必要で、キーで呼び出すと403 approval_requires_humanが返ります。キーが却下、再試行、キャンセル、日時の変更をできるのは、そのキー自身が作成した投稿だけです(それ以外は403 reject_not_own_post、retry_not_own_post、cancel_not_own_post、reschedule_not_own_post)。人間や別のキー、取り消されたキーが作成した投稿は、ログイン済みの人間が操作します。
エンドポイント
Section titled “エンドポイント”| メソッド | パス | 内容 |
|---|---|---|
| POST | /signup |
オーナーのためにFreeワークスペースを作成(認証不要) |
| POST | /claim-link |
新しい受け取りリンクをメールで送信(未受け取りのワークスペース) |
| GET | /accounts |
連携済みのSNSアカウントを一覧表示 |
| GET | /connect/{platform} |
アカウントを連携するためのブラウザ用URLを取得 |
| POST | /media |
画像または動画をアップロード |
| GET | /media/{id}/preview |
アップロードの小さなJPEGプレビュー |
| POST | /posts |
投稿の作成、予約、ドライラン |
| GET | /posts |
最近の投稿を一覧表示 |
| GET | /posts/{id} |
1件の投稿とアカウントごとのステータスを取得 |
| POST | /posts/{id}/approve |
承認待ちの投稿を承認(人間のみ) |
| POST | /posts/{id}/reject |
承認待ちの投稿を却下(キーまたは人間) |
| POST | /posts/{id}/cancel |
公開前にキャンセル |
| POST | /posts/{id}/reschedule |
予約日時を変更 |
| POST | /posts/{id}/first-comment/retry |
失敗した最初のコメントを再試行 |
https://botdoor.co/api/mcpのMCPサーバーでは、同じ操作をツールとして利用できます。
エラーはすべて同じ形式です。codeで分岐してください。codeは変わりません。hintは次に何をすべきかを示します。retryableは、同じリクエストが後で成功しうるかどうかを示します。
{"error": {"code": "post_not_found", "message": "No post with this id in this workspace.", "hint": "List posts with GET /api/v1/posts.", "retryable": false}}必要に応じてdetailsが追加されます。たとえば、検証エラーでは{"fields": ["scheduledFor"]}、レート制限では{"retryAfterSeconds": 3600}です。一覧はエラーをご覧ください。
POST /postsにはIdempotency-Keyヘッダーを付けて送信してください。同じキーと同じボディで再試行すると、二重に投稿されることはなく、元の投稿が返ります(200、replayed: true)。同じキーで異なるボディを送ると422 idempotency_key_reusedが返ります。
日時はISO 8601形式です。入力にはタイムゾーンのオフセットが必要です。たとえば2026-10-12T15:00:00-04:00や...Zのように指定します。出力はZ付きのUTCです。