Threads検索API
APIの稼働状況
- 24時間の稼働状況
- 正常
- 24時間の平均応答時間
- —
- 良好/正常
- 利用可能
- 制限あり
- ほぼ停止
過去24時間
過去30日間
キーワードに言及しているThreadsの投稿を取得します。各投稿のテキスト、投稿者、いいね数とコメント数、公開日時が含まれます。名前によるプロフィール検索は行わず、全履歴やリアルタイムの網羅性も保証しません。
Threads Searchは、keywordに一致するThreadsの公開投稿を検索し、各投稿の全文、リンク、いいね数とコメント数、公開日時、投稿者の表示名、ハンドル、author_idを返します。ブランド、広報、リサーチの各チームは、トピック、ブランド、ローンチについてThreadsで何が語られているかを把握するために使います。会話のモニタリング、センチメント分析用の投稿収集、特定のテーマについて最も多く投稿している人の特定などに活用できます。
検索対象は投稿で、アカウントは対象外です。Threads上の投稿者の一意のIDであるauthor_idで行をグループ化すると、そのトピックについて誰が最も多く投稿しているかがわかります。後で投稿を引用できるよう、各行にurlを残しておいてください。posted_atはUTCのタイムスタンプです。like_countやcomment_countがnullの場合は、0ではなく数値が公開されていないという意味です。
料金は1,000リクエストあたり$0.56(1回あたり$0.000556)です。失敗した呼び出しと空の結果には課金されません。 同期処理です。時間のかかるジョブでは、ボディに"mode": "async"を追加し、job_idを取得してポーリングしてください。
AIプロンプト
EveryInfraのThreads 検索エンドポイント(threads/search)を使ったデータ収集スクリプトの作成を手伝ってください。
エンドポイントの仕組み:
- リクエスト:ヘッダーにAuthorization: Bearer <API key>を指定して、https://api.everyinfra.com/api/v1/socialにPOSTします。APIキーは環境変数EVERYINFRA_API_KEYから読み込み、ハードコードしないでください。
- リクエストボディでplatformにthreads、actionにsearchを指定し、パラメータはparamsの中に入れます。
- 必須パラメータ:
- keyword: searchで公開投稿を、discover_profilesでクリエイターのプロフィールを検索するためのクエリを指定します。discover_profilesアクションは非同期で動作するため、最初に返されるタスクステータスのレスポンスを最終的なクリエイターリストとして解析しないでください。
- 任意パラメータ:
- limit: この呼び出しで返す最大行数で、1〜50の整数で指定します。省略するとデフォルト値が適用されます。また、返される行数がこれより少なくなる場合があります。最大値を超える値を指定すると、課金前に422が返されます。(デフォルト:15)
- レコードのリストを返します。各レコードの主なフィールド: id、url、text、author_name、author_username、author_id、like_count、comment_count、posted_at、author_is_verified、media、hashtags。フィールドは全部で14個です。一覧はhttps://api.everyinfra.com/api/v1/social/catalog?platform=threadsを参照してください。.
- リクエストボディの例:
{
"platform": "threads",
"action": "search",
"params": {
"keyword": "indie development"
}
}
- 料金:1,000リクエストあたり$0.56。失敗時および結果が空の場合は課金されません。
- 対象が数十〜数百件ある場合は、ボディに"mode": "async"を追加します。すぐにjob_idが返されるので、GET https://api.everyinfra.com/api/v1/jobs/{job_id}をポーリングして結果を取得します。
- 422の場合は、エラーに含まれる推奨パラメータ名と指定可能な値を使ってリクエストを修正します。429または503の場合は、Retry-Afterの指定に従って待ってから再試行します。
コードを書く前に、必要な対象とその件数、必要なフィールド、希望する出力形式を私に質問してください。そのうえで、計画と概算費用を私に確認してください。リクエストパラメータ
| 名前 | 場所 | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|---|
Authorization | header | string | はい | - | Bearerの後にAPIキーを続けます。APIキーはコンソールで作成してください。URLやコードリポジトリには絶対に含めないでください。 |
platform | body | string | はい | threads | プラットフォームの識別子です。値は固定です。 |
action | body | string | はい | search | 機能の識別子です。値は固定です。 |
keyword | body.params | string | はい | - | searchで公開投稿を、discover_profilesでクリエイターのプロフィールを検索するためのクエリを指定します。discover_profilesアクションは非同期で動作するため、最初に返されるタスクステータスのレスポンスを最終的なクリエイターリストとして解析しないでください。 |
limit | body.params | integer (1–50) | いいえ | 15 | この呼び出しで返す最大行数で、1〜50の整数で指定します。省略するとデフォルト値が適用されます。また、返される行数がこれより少なくなる場合があります。最大値を超える値を指定すると、課金前に422が返されます。 |
コードサンプル
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H 'Content-Type: application/json' \
--data-raw '{
"platform": "threads",
"action": "search",
"params": {
"keyword": "indie development"
}
}'OpenAPI定義(JSON)サンプルは環境変数EVERYINFRA_API_KEYからAPIキーを読み込みます。コピーしたコードにAPIキーが含まれることはありません。
レスポンス例
September 26, 2026 at 08:56(UTC)に、上のコードサンプルのパラメータでこのAPIを呼び出して取得しました。resultsとcountはその呼び出しの実際のレスポンスから個人情報(名前、ハンドル、アバター、プロフィールリンク、連絡先)を削除したものです。リストは先頭の2件のみ掲載しています。id、billing、quotaは呼び出しごとに異なるため、構造のみを示しています。
{
"id": "req_…",
"platform": "threads",
"action": "search",
"results": [
{
"id": "•••",
"url": "https://threads.com/t/DdvXgRHjJAi",
"text": "Kyiv has long requested additional Patriot systems and manufacturing access to improve protection against Russian ballistic missile attacks. The Kremlin said it is closely monitoring which countries provide weapons and production licenses to Ukraine. Trump had previously supporte…",
"author_name": "•••",
"author_username": "•••",
"author_id": "•••",
"like_count": 0,
"comment_count": 1,
"posted_at": "2026-09-26T06:14:49+00:00",
"platform": "threads"
},
{
"id": "•••",
"url": "https://threads.com/t/DdvXgtqjKTo",
"text": "The latest statement may therefore represent a significant development in #USUkraine cooperation while diplomatic discussions on de escalation remain active. #Geopolitics #Defense #Diplomacy #NATO #Trump #Zelensky\n\n✦\nIt is not just about quality, it is about identity. I compose o…",
"author_name": "•••",
"author_username": "•••",
"author_id": "•••",
"like_count": 0,
"comment_count": 0,
"posted_at": "2026-09-26T06:14:52+00:00",
"platform": "threads"
}
],
"count": 25,
"billing": {
"charged": …,
"charged_usd": …,
"balance_after_usd": …,
…
},
"quota": { … }
}レスポンスフィールド
業務データはresultsに含まれます。この表はレコードに含まれうるフィールドの一覧です。プラットフォームに表示されない値を作り出すことはありません。
| フィールド | 意味 |
|---|---|
id | プラットフォーム上でのレコードの一意なIDです。一意性は1つのプラットフォーム内に限られ、プラットフォームが異なるとIDが重複する場合があります。 |
url | プラットフォーム上のレコードへのリンクです。 |
text | HTMLを除去した本文です。省略されることなく全文が返されます(一部のプラットフォームでは一覧結果自体に抜粋しか含まれません。その場合は各プラットフォームのフィールドの注記に記載しています)。 |
author_name | 投稿者の表示名です。 |
author_username | 投稿者のユーザー名(@ハンドル)で、通常はURLに使用できます。 |
author_id | プラットフォーム上での投稿者の一意なIDです。 |
like_count | いいね数です。nullはプラットフォームまたはこの機能が公開していないことを示し、0ではありません。 |
comment_count | コメント数です。nullは非公開を示し、0ではありません。 |
posted_at | 投稿日時です。ISO 8601形式のUTCで返されます(例:2026-08-07T12:34:56+00:00)。プラットフォームから非標準の文字列が返された場合はそのまま渡されるため、パース処理は堅牢に実装してください。nullはプラットフォームが公開していないことを示します。 |
author_is_verified | プラットフォーム上の意味のまま |
media | プラットフォーム上の意味のまま |
hashtags | 本文中のハッシュタグで、出現順に並びます。ない場合はフィールド自体が含まれません。 |
mentions | プラットフォーム上の意味のまま |
links | プラットフォーム上の意味のまま |
platform | 取得元プラットフォームの識別子で、リクエストのplatformと同じです(例:xiaohongshu、tiktok)。 |
FAQ
Threads Searchで見つかるのはアカウントですか、投稿ですか?
投稿です。トピックからクリエイターを探すには、Threads Profile discovery機能を使います。この機能もキーワードを受け付けますが、非同期ジョブとして実行されます。最初のレスポンスはアカウントの一覧ではなくジョブのステータスで、アカウントはジョブの完了後に取得します。
投稿から投稿者を特定するには?
author_usernameは投稿者のハンドルです。プロフィールを取得するにはThreads Details機能に、その投稿者のほかの投稿を取得するにはThreads Posts by userに渡します。どちらもリンクではなくハンドルを受け付けます。author_nameは表示名で、検索キーには使えません。
結果を期間で絞り込めますか?
検索はkeywordのみを受け付け、日付フィルターはありません。最近の投稿だけを残すには、呼び出し後にUTCのISO 8601タイムスタンプであるposted_atを基準に行を絞り込んでください。プラットフォームから返される非標準形式の時刻文字列はそのまま渡されるため、パースエラーを適切に処理してください。
エラーと課金
- 401
- キーが未指定か無効です。
- 402
- 残高が不足しています。先にチャージしてください。
- 422
- パラメータ名または値が無効です。エラーに含まれる候補を参考に修正してください。課金はされません。
- 429
- 1分あたりのリクエスト上限に達しました。Retry-Afterの指定に従って待ってから再試行してください。
- 503
- 処理を完了できませんでした。保留中の請求額は残高に戻されます。結果が不明な場合は、再試行する前に確認してください。
- 200(空)
- データがありません。課金はされません。
公式リファレンス
対象と用語の確認にのみ使用しています。プラットフォームによるEveryInfraの承認や推奨を意味するものではありません。
- Meta公式ドキュメント:Threadsのキーワード検索とエンゲージメント指標 ↗
Metaの公式情報では、検索キーワードによる公開投稿の検索を定義し、返信、再投稿、引用、プラットフォーム外へのシェアを区別しています。これはThreadsの製品オブジェクトと用語を定義するものであり、このAPIのエンドポイントが公式の絞り込み、書き込み、分析の機能をすべてサポートしていることを示すものではありません。
確認日:2026-09-04