コンテンツにスキップ

ボットの投稿ワークフロー

信頼できるボットは、毎回同じループに従います。

  1. アカウントを一覧取得する:GET /api/v1/accounts。各アカウントのidをaccountIdsに使います。同じSNSに複数のアカウントがある場合もあり、idで@ハンドルを指定します。
  2. 必要に応じてメディアをアップロードする:POST /api/v1/media(multipartのfile、最大100 MB)でmedia.idが返ります。Instagram、TikTok、YouTube、Pinterestでは画像または動画が必要です。詳しくはメディアをご覧ください。
  3. ドライラン:dryRun: trueを付けてPOST /api/v1/postsを呼び出します。400があれば修正し、warnings(たとえばSNSの文字数上限を超えたキャプション)を確認します。
  4. dryRunを外した同じ本文にIdempotency-Keyヘッダーを付けて作成します。
  5. statusがneeds_approvalのときは人間のユーザーに伝えます。
  6. settled: trueになるまで、数秒ごとにGET /api/v1/posts/{id}をポーリングします。予約済みの投稿は、予約日時を過ぎるまでsettledのままです。
  7. error.codeに応じてエラーを処理します。詳しくはエラーをご覧ください。
  • リンクはキャプションではなくfirstCommentに入れてください。詳しくは最初のコメントをご覧ください。
  • scheduledForは必ずタイムゾーンのオフセット付きで送ってください。例:2026-10-12T15:00:00-04:00。
  • 連携済みアカウントがない場合、409 no_accounts_connectedには人間のユーザー向けのdetails.connectUrlが含まれます。
  • 409 schedule_passedは、人間のユーザーの承認が遅すぎたことを意味します。人間のユーザーが「今すぐ公開」か新しい日時を選びます。

よくある質問

ボットはどのくらいの間隔でポーリングすべきですか?
settledがtrueになるまで数秒ごとにポーリングしてください。予約済みの投稿は予約日時を過ぎるまでsettledのままなので、その日時を過ぎてから再度ポーリングしてください。
エラー時に再試行すべきですか?
error.retryableがtrueの場合にだけ再試行してください。その際は必ず同じIdempotency-Keyを使います。
複数のSNSに同時に投稿できますか?
はい。accountIdsを複数指定してください。SNSごとにターゲットが作られ、それぞれにステータスとURLがあります。
ボットは公開済みの投稿を削除できますか?
いいえ。キャンセルできるのは投稿が送信される前だけです。