Threads API:投稿検索、返信、reactions タスク

2026-10-25 時点の仕様スナップショットに基づく

要点

Threads API には 4 種類の非同期タスクがあります。キーワード検索、1 件の投稿への返信(pushs)、公開アカウントの投稿タイムライン、投稿の reactions です。reactions タスクが正常に完了すると、ポーリングレスポンスに reactions 一覧とページ情報が含まれます。検索・返信・タイムラインのポーリングはステータスと件数のみを返し、結果の取得方法(検索エンドポイントまたはプロジェクトのデータセット経由)は導入時にアカウントごとに確認します。すべてのエンドポイントで mask_author を指定すると投稿者の識別フィールドを除けます。データは Threads で公開されているコンテンツをウェブクローラーで収集したものです。

取得できるデータ

フィールドは 2026-10-25 時点の仕様スナップショットに基づきます。検索結果の投稿フィールドはスナップショットに列挙されていないため、「サンプル」と記した行は下のサンプルデータから取っています。正式なフィールドはトライアルデータでご確認ください。また、post_id や parent_id などの関連フィールドはスナップショットで必須とされていないため、実際の有無もトライアルデータでご確認ください。

データフィールドエンドポイント
検索タスクのステータス id, status, completed, total, failed_articles, failed_pages, partial, timed_out, created_at, keyword, account_username GET /threads/search/task/{task_id}
返信タスクのステータス id, status, completed, total, failed_articles, failed_pages, partial, timed_out, created_at, post_url GET /threads/pushs/task/{task_id}
公開アカウントの投稿タイムラインのタスクのステータス id, status, completed, total, failed_articles, failed_pages, partial, timed_out, created_at, author_id GET /threads/users/task/{task_id}
投稿の reactions data, pagination, error_message, task.post_id, task.post_url, task.status, task.warnings GET /threads/reactions/task/{task_id}
結果レコード(サンプル。取得方法は導入時に確認) id, url, author, content, tm, like_count, comment_count, share_count, reply_count, is_reply, is_quote, reply_to_author 導入時に確認

エンドポイント一覧

Base URL は https://api.infominer.io/api/v2 です。API キーは auth-header リクエストヘッダーで送信します。* の付いたパラメーターは必須です。

メソッドパス説明主なパラメーター
POST /threads/search/task キーワード検索タスクを作成します。アカウント名、期間、max_scroll、rerun を指定できます。 keyword* account_username end_date mask_author max_scroll rerun start_date
GET /threads/search/task/{task_id} 検索タスクのステータスと completed、total、failed_articles、failed_pages の件数を返します。結果データは含まれません。 task_id* mask_author
POST /threads/pushs/task 投稿 URL から返信の収集タスクを作成します。 post_url* mask_author max_scroll rerun
GET /threads/pushs/task/{task_id} 返信タスクのステータスと件数を返します。返信データは含まれません。 task_id* mask_author
POST /threads/users/task 公開アカウントの投稿タイムラインのタスクを作成します。期間を指定できます。 author_id* end_date mask_author max_scroll rerun start_date
GET /threads/users/task/{task_id} タイムラインタスクのステータスと件数を返します。投稿データは含まれません。 task_id* mask_author
POST /threads/reactions/task 投稿 URL から reactions の収集タスクを作成します。rerun は既定で true です。 post_url* mask_author rerun
GET /threads/reactions/task/{task_id} reactions タスクをポーリングします。成功時は reactions 一覧とページ情報を返します。 task_id* page per_page mask_author

データ取得の流れ

  1. POST /threads/search/task に keyword(必須)と、任意の account_username、start_date、end_date(当日を含む)、max_scroll(0 以上)、rerun を指定します。
  2. GET /threads/search/task/{task_id} でステータス(INIT、RUNNING、DONE、PARTIAL、TIMED_OUT、FAILED)と completed、total、failed_articles、failed_pages の件数をポーリングします。
  3. 投稿への返信は POST /threads/pushs/task に post_url を、reactions は POST /threads/reactions/task に post_url を指定します(rerun は既定で true のため、同じ URL を再送すると新しいタスクになります)。
  4. reactions タスクが DONE で partial でも timed_out でもなければ、GET /threads/reactions/task/{task_id} が data と pagination を返します。per_page は最大 1000 です。タスクは成功したが一覧を取得できなかった場合は error_message が含まれます。
  5. 検索・返信・タイムラインの結果はポーリングレスポンスに含まれません。取得方法(検索エンドポイントまたはプロジェクトのデータセット経由)は導入時にアカウントごとに確認します。

curl の例

キーワード検索タスクを作成

curl -X POST https://api.infominer.io/api/v2/threads/search/task \
  -H "auth-header: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"keyword": "登山步道", "start_date": "2026-06-01", "end_date": "2026-06-30", "max_scroll": 5, "mask_author": false}'

タスク ID でポーリング

curl "https://api.infominer.io/api/v2/threads/search/task/$TASK_ID" \
  -H "auth-header: YOUR_API_KEY"

投稿者フィールドを伏せて reactions タスクを作成

curl -X POST https://api.infominer.io/api/v2/threads/reactions/task \
  -H "auth-header: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"post_url": "https://www.threads.com/@sample_user_1/post/SAMPLE000001", "mask_author": true}'

サンプル JSON

以下は手作業で作成したサンプルデータ(架空)です。アカウントは sample_user_n、ID は明らかな仮の値で、実在の投稿ではありません。

タスク作成時のレスポンス:サンプルデータ(架空)

{
  "id": "00000000-0000-4000-8000-000000000001",
  "keyword": "登山步道",
  "status": "INIT",
  "start_date": "2026-06-01",
  "end_date": "2026-06-30",
  "max_scroll": 5,
  "rerun": false,
  "partial": false,
  "timed_out": false,
  "completed": null,
  "total": null,
  "failed_articles": 0,
  "failed_pages": 0,
  "created_at": 1781056800
}
Threads の検索タスクのポーリングはステータスと件数のみを返します。以下のレコードはフィールドの形を示すためのサンプルです。結果の取得方法は導入時にアカウントごとに確認します。

結果レコード:サンプルデータ(架空)、ポーリングレスポンスではありません

{
  "total_count": 2,
  "data": [
    {
      "id": "00000000-0000-4000-8000-0000000000a1",
      "source": "threads",
      "url": "https://www.threads.com/@sample_user_1/post/SAMPLE000001",
      "author": "sample_user_1",
      "title": "",
      "content": "週末走了一條不太熱門的步道,沿途視野很開闊,建議早點出發避開人潮",
      "tm": 1781056800,
      "sentiment": "Positive",
      "like_count": 34,
      "comment_count": 4,
      "share_count": 1,
      "reply_count": 4,
      "is_reply": false,
      "is_quote": false,
      "reply_to_author": "",
      "search_type": "keyword",
      "tag": "",
      "tag_id": ""
    },
    {
      "id": "00000000-0000-4000-8000-0000000000a2",
      "source": "threads",
      "url": "https://www.threads.com/@sample_user_2/post/SAMPLE000002",
      "author": "sample_user_2",
      "title": "",
      "content": "請問這條步道雨天好走嗎?下週想安排家人一起去",
      "tm": 1781060400,
      "sentiment": "Neutral",
      "like_count": 3,
      "comment_count": 1,
      "share_count": 0,
      "reply_count": 1,
      "is_reply": true,
      "is_quote": false,
      "reply_to_author": "sample_user_1",
      "search_type": "keyword",
      "tag": "",
      "tag_id": ""
    }
  ]
}

投稿とコメントの関連付け

返信と reactions のタスクはどちらも投稿 URL(post_url)から作成します。reactions タスクは収集後に投稿のネイティブ ID(post_id)を補い、収集前は null です。サンプルの結果レコードでは、返信を is_reply と reply_to_author、引用を is_quote で示し、reply_count は返信数です。mask_author を true にすると投稿者の識別フィールドが除かれますが、url と post_url は残るため、元の投稿との対応は保たれます。

取得期間と制限

  • 検索・返信・公開アカウントの投稿タイムラインのタスク:ポーリングはステータスと件数のみを返し、結果の取得方法は導入時にアカウントごとに確認します。
  • start_date なしで end_date だけを指定すると、上流側はその指定を無視して既定の期間を適用します。
  • reactions の per_page は最大 1000 です。タスクは成功したが一覧を取得できなかった場合、レスポンスに error_message が含まれます。
  • max_scroll は整数で、検索タスクでは 0 以上である必要があります。
  • 遡れる期間と更新頻度はプロジェクトの範囲に応じて確認します。
収集方法:各プラットフォームで公開されているコンテンツをウェブクローラーで収集しています。ご利用目的に適するかどうかは、用途と法域に応じて買い手側の法務部門でご判断ください。収集元と収集方法の説明はご提供できます。

納品形式

タスクのステータスと reactions は JSON で返します。検索・返信・タイムラインの結果の受け取り方(検索エンドポイントまたはプロジェクトのデータセット)は導入時にアカウントごとに確認し、バッチファイルなど他の納品方法はプロジェクトの範囲に応じて確認します。

トライアルの申し込み

下のフォームで Threads を選び、キーワードやアカウント、返信と reactions の要否、投稿者フィールドを伏せる必要があるかをお知らせください。範囲と結果の取得方法を確認し、トライアルと API キーの進め方についてご連絡します。

ご入力いただいた情報は、今回のお問い合わせへの返信にのみ使用します。詳細はプライバシーポリシーをご覧ください。 またはメールでのご連絡: [email protected]

よくある質問

Threads API で投稿の reactions を取得できますか?
はい。POST /threads/reactions/task に投稿 URL を指定し、タスクが成功したら GET で reactions 一覧とページ情報を取得します。
Threads の検索タスク完了後、結果はどこで取得しますか?
検索タスクのポーリングはステータスと件数のみを返します。結果の取得方法(検索エンドポイントまたはプロジェクトのデータセット経由)は導入時にアカウントごとに確認します。
レスポンスから投稿者情報を除けますか?
はい。作成時またはポーリング時に mask_author=true を指定すると投稿者の識別フィールドが除かれ、url と post_url は残ります。
公開アカウントの投稿を収集するには?
/threads/users/task に author_id(先頭の @ は任意)を指定し、必要に応じて start_date と end_date を加えます。
Threads のデータはどのように収集していますか?
Threads で公開されているコンテンツをウェブクローラーで収集しています。ご利用目的に適するかどうかは、用途と法域に応じて買い手側の法務部門でご判断ください。収集元と収集方法の説明はご提供できます。