コンテンツにスキップ

GET /posts

GET /postsは最近の投稿を新しい順に一覧表示します(?limit=は1〜100、デフォルトは20)。GET /posts/{id}は1件を返します。MCPツール:list_posts、get_post。

ターミナルウィンドウ
curl https://botdoor.co/api/v1/posts/5e7a… -H "Authorization: Bearer $BOTDOOR_KEY"
{"post": {
"id": "5e7a…", "status": "published", "settled": true, "deletable": false, "zernioCopy": false, "queuePosition": null, "error": null, "errorCode": null,
"content": "Fresh sourdough at 7am", "agent": "content-agent",
"createdAt": "2026-10-11T19:58:00.000Z", "scheduledFor": "2026-10-11T20:00:00.000Z", "publishedAt": "2026-10-11T20:00:04.000Z",
"media": [{"id": "9b1c…", "type": "image", "filename": "loaf.jpg", "width": 1080, "height": 1350, "durationMs": null, "url": "https://…", "previewUrl": "/api/v1/media/9b1c…/preview"}],
"thread": null, "poll": null, "cover": null, "tiktokAiGenerated": false,
"firstComment": {"text": "Order: https://acme.example", "status": "posted", "targets": [{"accountId": "2ae8…", "platform": "instagram", "status": "posted", "url": "https://instagram.com/p/…", "error": null}]},
"targets": [{"accountId": "2ae8…", "platform": "instagram", "username": "acmebakery", "avatarUrl": "https://…", "status": "published", "url": "https://instagram.com/p/…", "error": null}],
"pollUrl": null, "next": null
}}
フィールド 備考
status needs_approval、scheduled、publishing、published、partial、failed、rejected、cancelled
settled これ以上変化しない状態になるとtrue。それまでは数秒ごとにpollUrlをポーリングしてください
deletable 一度も送信されておらず削除できる投稿(DELETE /posts/{id})ならtrue
zernioCopy 失敗した投稿のコピーがZernioに残っている場合はtrue。投稿を削除するとそのコピーも削除されます
queuePosition statusがpublishingで、送信がまだワーカーを待っている間の順番(1が次)。ワーカーが送信を始めるとnullになり、ほかのステータスでも常にnullです
targets[] アカウントごとに1つ。それぞれに個別のstatus、公開url、errorがあります
firstComment.status pending、posted、failed、skipped(投稿が公開されなかったため、コメントは送信されていません)。アカウント全体では、いずれかがpendingならpending、そうでなく失敗があればfailed、すべてスキップされたらskipped、それ以外はpostedです
firstComment.targets[] アカウントごとに1つ。accountId、platform、個別のstatus(上記と同じ値)、コメントのurlとerrorがあります
next 次の手順をわかりやすい文章で示します。たとえば、誰が承認する必要があるかなど

IDがこのワークスペースに存在しない場合は404 post_not_found。

よくある質問

投稿の処理が完了したことはどうすればわかりますか?
settledがtrueになるまでGET /posts/{id}をポーリングします。完了すると、各投稿先はurl付きのpublished、またはerror付きのfailedになります。
100件を超える投稿を一覧表示できますか?
まだできません。一覧で返るのは最新の100件までです。
投稿がpartialになっているのはなぜですか?
一部の投稿先では公開され、ほかの投稿先では失敗しました。targets[].errorを確認してください。