データ、検索、CAPTCHAの解決、無料のAI APIを1つのアカウントで
EveryInfraは、106個のプラットフォームに対応する573種類のデータ収集機能、17個の検索ツール、52種類のCAPTCHA、そしてチャージ後に無料で使えるOpenAI互換AI APIを提供しています。各プロダクトには、それぞれ専用のエンドポイント、権限、リクエスト形式があります。
- 公開カタログはAPIキーなしで閲覧できます。
- 認証が必要なエンドポイントでは、BearerトークンとしてAPIキーを使用します。
- MCPとRESTでは、同じ機能、パラメータ、レスポンスを使用します。
クイックスタート
実際のリクエストを送信
コンソールでAPIキーを作成し、該当するカタログを確認して、プラットフォームまたは機能の識別子を記載どおりに送信します。レスポンスには、構造化された出力とリクエスト単位の課金データが含まれます。
Authorization: Bearer YOUR_API_KEYを設定します。- JSONのリクエストボディには
Content-Type: application/jsonを設定します。 - カタログの識別子とパラメータ名は、返された値をそのまま使用します。
- 時間のかかるタスク、上限値が大きいリクエスト、またはバッチ処理では、リクエストボディで
"mode":"async"を送信してください。すぐにjob_idが返されるので、GET /api/v1/jobs/{job_id}をポーリングして結果を取得します。同期リクエストは85秒以内に完了する必要があります。非同期ジョブにはこの制限はありません。
curl -X POST https://api.everyinfra.com/api/v1/social \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"platform":"tiktok","action":"search","params":{"keyword":"AI infrastructure","limit":10}}'
{ "id": "…", "platform": "tiktok", "action": "search", "results": [ { "id": "…", "text": "…", "author_username": "…" } ], "count": 10, "billing": { "charged": true, "charged_usd": 0.000556, "balance_after_usd": 12.340122 } }
公開カタログで対応タスクを検索
カタログで、対応タスク、入力、料金、提供状況を確認できます。EveryDataのコンパクトカタログには、各アクションの主要情報が掲載されています。任意パラメータ、制限、レスポンスフィールドはフルカタログを参照してください。料金と提供状況はハードコードせず、必要に応じて再取得してください。
| プロダクト | カタログエンドポイント | 内容 |
|---|---|---|
| EveryData | GET /api/v1/social/catalog?compact=1 | プラットフォーム、アクション、必須パラメータ、実行モード、提供状況、料金 |
| EverySearch | GET /api/v1/search/tools | 検索ツール、リクエストパラメータ、ティア、料金 |
| EverySolve | GET /api/v1/captcha/types | CAPTCHAの種類、パラメータ、解答の形式、提供状況、料金 |
| AI API | GET /api/v1/models | AI APIが現在対応しているモデル(APIキー不要) |
認証
APIキーはBearerトークンとして送信してください。認証はパラメータ検証より先に行われるため、有効なAPIキーがないリクエストには、パラメータ検証の結果ではなく401が返ります。APIキーをブラウザ側のコード、ログ、公開リポジトリに含めないでください。
- 環境やワークロードごとに別々のキーを作成してください。
- キーの適用範囲が変わった場合や、外部に漏えいした可能性がある場合は、コンソールからキーをローテーションしてください。
- キーを特定の製品、機能、IP範囲に限定する場合は、コンソールの制限設定を使用してください。
- 同じキーで
GET /api/v1/accountを呼び出すと、残高(有料、ボーナス、合計)、今月のチャージ割引、1分あたりのリクエスト上限、直近24時間の利用状況を確認できます。金額の単位はUSDです。この呼び出しは読み取り専用かつ無料で、1分あたりの上限にもカウントされません。 - このレスポンスでは、
balance.total_usdは有料残高とボーナス残高の合計です。呼び出し料金はボーナス残高から先に差し引かれます。bonus_expiringには、まだ有効な期間限定ボーナスの金額が一覧で示されます。rate_limit.requests_per_minuteはアカウント内のすべてのキーで共有されます。usage_24hの反映は約1分遅れることがあります。 - アカウント全体の履歴(日別の利用状況、最近の呼び出し、請求、ウォレットの取引履歴)は、同じキーでコンソールAPIから読み取れます。たとえば
GET /portal/api/requests/{request_id}や、機能ごとの成功率とレイテンシを確認できるGET /portal/api/qualityです。キーにはアカウントの読み取り権限が必要です。これらの読み取りは無料で、アカウントごとに1分あたり60回までです。全一覧はOpenAPI仕様のAccountセクションに掲載されています。 - AIにアカウントの変更も任せるには、「API Keys → Restrict access」で書き込みスコープ(キーの管理、設定の変更、チケットの作成と返信)を付与します。3つともデフォルトでオフになっており、コンソールにログインしたご本人だけがオンにできます。APIキー経由では、APIキーを1日最大20個まで作成できます。チケットには1日あたりの上限がありません。APIキー全文の表示、APIキーのローテーション、権限やIP許可リストの変更、APIキーの再有効化、支払いは、常にコンソールでのみ行えます。エンドポイントの全一覧はOpenAPI仕様のAccountセクションに掲載されています(例:
POST /portal/api/keys/{key_id}/disable)。 - ポーリングを避けるには、コンソールの「Settings → Webhooks」でHTTPSエンドポイントを追加してください。残高が設定したしきい値まで下がったとき、または非同期ジョブが完了したときに、署名付きのPOSTを送信します。
X-EveryInfra-Signatureを検証してください。これは、タイムスタンプ、ピリオド、生のボディを署名シークレットで計算したHMAC-SHA256です。タイムスタンプが5分を超えてずれているものは拒否してください。また、配信に失敗した場合はバックオフを挟んで最大7回まで試行されるため、イベントIDで重複を排除してください。
このキーで4つの製品すべてを利用でき、1つのウォレットを共有します
curl https://api.everyinfra.com/api/v1/account \ -H "Authorization: Bearer YOUR_API_KEY"
POST /api/v1/social
EveryData
106個のプラットフォームから、利用可能な573個のアクションを使ってデータを収集できます。プラットフォームとアクションを選び、そのアクションに記載されている入力を指定してください。
GET /api/v1/social/catalog?compact=1
POST /api/v1/search
EverySearch
17個のツールから選んで、Webを検索し、ソースのテキストを取得できます。ツールの識別子を指定し、必須の入力を渡してください。
GET /api/v1/search/tools
POST /api/v1/captcha
EverySolve
1つのエンドポイントで52種類のCAPTCHAを解決できます。typeフィールドを設定し、必須の入力を渡してください。課金は解決に成功した場合のみです。
GET /api/v1/captcha/types
POST /api/v1/chat/completions
AI API
OpenAI互換のchat/completionsで、チャージ済みのアカウントは無料で利用できます。収集したデータのクレンジング、分類、抽出、要約に使えます。
GET /api/v1/models
リクエストパラメータの検証
不明なパラメータには、対応パラメータの一覧と、可能な場合は最も近い名前の候補を含む422が返ります。無効なenum値には、許可された値が返ります。パラメータが黙って無視されたり、デフォルト値に置き換えられたりすることはありません。
- カタログに記載されたsnake_caseのパラメータ名を使用してください。
did_you_meanは修正のヒントとして扱い、成功したフォールバックとはみなさないでください。- 複数のターゲットを指定する場合は、配列を送信する前に、カタログに記載された課金と制限のルールを確認してください。
APIリファレンス
全106プラットフォームと573件のAPIをカテゴリ別に掲載しています。プラットフォームを開くと概要を、APIを開くとパラメータ、レスポンスフィールド、コードサンプルを確認できます。
EC15プラットフォーム・58件のAPI
- 16883 API
- AliExpress6 API
- Amazon10 API
- Craigslist1 API
- Dewu1 API
- eBay5 API
- Etsy5 API
- Googleショッピング1 API
- JD.com7 API
- Shopee4 API
- Taobao5 API
- Temu2 API
- ThomasNet2 API
- Walmart4 API
- Xianyu2 API
ソーシャル・コンテンツ51プラットフォーム・389件のAPI
- Behance2 API
- Bilibili8 API
- Bluesky5 API
- Dailymotion6 API
- DeviantArt4 API
- Discord4 API
- Douban4 API
- Douyin37 API
- 検索
- 詳細
- ユーザーの投稿
- 動画の詳細
- コメント
- コメントへの返信
- トレンド
- 文字起こし
- クリエイター検索
- クリエイターのオーディエンス
- クリエイターの成長トレンド
- クリエイターのベンチマーク
- Xingtuクリエイター検索
- Xingtuクリエイター分析
- Xingtuクリエイターの料金表
- Xingtuクリエイターランキング
- 商品検索
- 商品詳細
- ライブ商品検索
- ハッシュタグ検索
- ハッシュタグ詳細
- 人気動画ランキング
- フォロワーの少ないアカウントのバズ動画ランキング
- 完全視聴率ランキング
- 急上昇検索ランキング
- ホットスポットのアカウント検索
- 音楽検索
- 検索候補
- 急上昇ランキング
- 人気チャレンジランキング
- 人気トピックランキング
- 楽曲詳細
- Xingtuクリエイターのコンバージョン力
- Xingtu接触ユーザーの構成
- Xingtuのおすすめ動画
- Xingtu接触ユーザーの流入元
- Xingtu動画のパフォーマンス
- Dribbble3 API
- Eventbrite1 API
- Facebook16 API
- Flickr2 API
- Gab4 API
- GitHub9 API
- Instagram18 API
- iQIYI3 API
- Kuaishou12 API
- Lemmy4 API
- LinkedIn11 API
- Mastodon5 API
- Medium3 API
- Naver4 API
- NetEase Cloud Music3 API
- Odysee4 API
- Patreon4 API
- Pinterest7 API
- Product Hunt4 API
- Quora6 API
- Reddit8 API
- Rumble6 API
- Snapchat4 API
- SoundCloud6 API
- Spotify7 API
- Substack7 API
- Telegram6 API
- Threads7 API
- TikTok24 API
- Toutiao6 API
- Truth Social5 API
- Tumblr4 API
- Twitch6 API
- X (Twitter)21 API
- VK2 API
- WeChatチャンネル5 API
- WeChat公式アカウント13 API
- Weibo11 API
- Xiaohongshu17 API
- Xing4 API
- Youku4 API
- YouTube8 API
- Zhihu15 API
レビュー・ローカルサービス23プラットフォーム・86件のAPI
検索・ニュース17プラットフォーム・40件のAPI
- Appleマップ1 API
- Bing1 API
- Bingマップ1 API
- 企業データ4 API
- 暗号資産マーケットデータ5 API
- 暗号資産ニュース2 API
- DuckDuckGo1 API
- DuckDuckGoマップ1 API
- Google広告透明性センター1 API
- Googleニュース1 API
- Googleトレンド1 API
- Kalshi1 API
- Polymarket3 API
- SimilarWeb3 API
- SERP1 API
- Yahoo Finance10 API
- Yandex3 API
AI API(チャージ後は無料)
AI APIはOpenAI互換のchat/completionsです。チャージ済みのアカウントであれば、残高を使わず無料で呼び出せます。収集したデータのクレンジング、重複排除、分類、抽出、要約に利用でき、出力形式はプロンプトで指定します。
- OpenAI SDKでは、
base_urlをhttps://api.everyinfra.com/api/v1に設定し、EveryInfraのAPIキーをAuthorization: Bearerヘッダーで送信してください。URLに?key=を付けた場合は拒否されます。 - チャットエンドポイントは
POST /api/v1/chat/completionsで、リクエストとレスポンスの形式はOpenAIと同じです。 - モデルは2つあります。デフォルトの
gemini-3.6-flashと、軽量なgemini-flash-liteです。GET /api/v1/modelsは同じ一覧を返し、キーは不要です。モデル名を誤入力すると、正しいと思われる名前とともに422が返ります。 - ストリーミングに対応しています。
stream: trueを送信すると、data: [DONE]で終わるSSEを受信できます。トークン使用量を取得するにはstream_options.include_usageを追加してください。 messagesの合計は最大45,000文字です。これを超える入力には422input_too_largeが返るため、小さなリクエストに分割してください。
from openai import OpenAI import os client = OpenAI(base_url="https://api.everyinfra.com/api/v1", api_key=os.environ["EVERYINFRA_API_KEY"]) reply = client.chat.completions.create( model="gemini-3.6-flash", messages=[{"role": "user", "content": "JSONのみを返してください。このレビューの感情、トピック、意図をラベル付けしてください。"}], ) print(reply.choices[0].message.content)
累計チャージ額に応じた制限(アカウント内の全キー合算)
| 累計チャージ額 | 1分あたりのリクエスト数 | 同時実行数 |
|---|---|---|
| チャージ済み、$100未満 | 50 | 5 |
| $100以上 | 500 | 50 |
| $500以上 | 5,000 | 500 |
クレジットコードとボーナスクレジットは、それぞれの金額が$1を超える場合、チャージと同様にカウントされます。トライアルクレジットと$1以下の金額はカウントされません。チャージしたことがなく、$1を超えるクレジットコードの適用またはボーナスクレジットの付与もないアカウントには、403 ai_topup_requiredが返ります。各ティアの値は上限です。
| ステータス | 意味 |
|---|---|
| 403 ai_topup_required | アカウントがまだ一度もチャージしていません。金額を問わずチャージするとAI APIが有効になります。 |
| 429 rate_limited | 1分あたりの上限に達した(per_minute_limit)か、同時実行中のリクエストが多すぎる(concurrency_limit)状態です。Retry-Afterの指定に従って待ってから再試行してください。 |
| 503 ai_busy | サービスが混雑しています。Retry-Afterの指定に従って待ってから再試行してください。 |
| 403 ai_disabled | このアカウントではAI APIが一時停止されています。 |
| 422 unknown_model | モデルが存在しません。メッセージに正しいと思われる名前が表示されます。 |
AI APIは、EveryInfraで収集したデータを整理するためのものです。それ以外の用途に使われた場合や、明らかに異常な呼び出しが見られた場合は、そのアカウントのAI APIを一時停止することがあります。アカウント自体、他のAPI、残高には影響しません。
AIエージェント向けMCP
対応クライアントからEveryInfraのツールを直接検出して呼び出す場合は、MCPを使用します。ツールはデータ、検索、CAPTCHA、そしてeveryinfra_chatによるAIチャット(チャージ後は無料、ストリーミング非対応)をカバーし、REST APIと同じ認証、課金、制限、バリデーション、残高のルールに従います。
- クライアントにリモートサーバーのURLとEveryInfraのAPIキーを設定します。
- 2つのエンドポイントで同じキーを使用できます。
https://api.everyinfra.com/mcpは共通ツール12個(データ、検索、CAPTCHA、AIチャットに加え、残高、呼び出し記録、チャージリンク、サポートチケット)を、https://api.everyinfra.com/mcp/allは全24個のツールを一覧表示します。以下のアカウント記録ツールと管理ツールは後者にのみ表示されます。 - アカウントツールは、動詞で始まる名前に変更されました(例:
everyinfra_accountはeveryinfra_get_accountになりました)。旧名称も両方のエンドポイントで引き続き使えますが、一覧には表示されなくなりました。旧名称を呼び出すスクリプトは変更不要です。AIクライアントからこれらのツールを使うには、コネクタの接続先を/mcp/allにしてください。 - データ、検索、CAPTCHAの呼び出し前に、機能の検出を行ってください。
- APIキーはクライアントのシークレットまたは環境設定で管理してください。
- 無料の
everyinfra_get_accountツール(引数なし)を呼び出すと、残高、割引、1分あたりの制限、最近の利用状況を確認できます。GET /api/v1/accountと同じ概要を返します。 mode: "async"でデータを呼び出した後は、返されたjob_idを使って無料のeveryinfra_get_jobツールで結果を取得します。GET /api/v1/jobs/{job_id}と同じ内容を返します。- アカウントの記録を確認するには、無料ツール
everyinfra_get_usage、everyinfra_list_requests、everyinfra_get_billing、everyinfra_list_keys、everyinfra_list_ticketsを使います。それぞれ日次の利用状況、最近の呼び出し(request_idで個別に確認すると課金の確定状況を確認できます)、支出とウォレット台帳、キー一覧、サポートチケット一覧を返します。これらのツールにはキーのアカウント読み取り権限が必要です。プロダクトラインの制限がないキーは、デフォルトで利用状況、呼び出し、課金を読み取れます。プロダクトラインの制限があるキーとチケットへのアクセスは、コンソールの「APIキー → アクセスを制限」で有効にします。 - アカウントへのチャージが必要な場合は、
everyinfra_get_topup_linkがコンソールのチャージページを返します。アカウント所有者がそのページで支払いを行います。このツール自体が決済を開始したり、料金を請求したりすることはありません。 - 呼び出しの失敗が続く、データがおかしい、チャージや課金を確認したい、新しいプラットフォームやフィールドが必要、といった場合は、どのキーからでも
everyinfra_create_ticketで有人サポートへのチケットを作成できます。無料で、追加の権限も不要です。ツールはチケット番号とコンソールのリンクを返し、その後everyinfra_get_ticketでチケットの進捗とサポートからの返信を確認できます。RESTでは、同じ操作はPOST /api/v1/support/ticketsとGET /api/v1/support/tickets/{ticket_id}です。旧ツールのeveryinfra_ticket_create(書き込みスコープが必要)も引き続き使えますが、新規の連携ではeveryinfra_create_ticketを使用してください。 - アカウント所有者がコンソールでキーに書き込みスコープを付与すると、AIは
everyinfra_create_key、everyinfra_update_key、everyinfra_disable_key、everyinfra_delete_key、everyinfra_update_settings、everyinfra_set_webhook、everyinfra_test_webhook、everyinfra_reply_ticketも使用できるようになります。この方法で作成したキーの権限が呼び出し元のキーを超えることはなく、書き込みスコープが付与されることもありません。コンソールで作成したキーは無効化のみ可能で、すべての変更はコンソールの通知に表示されます。
- Endpoint
- POST /mcp
- トランスポート
- Streamable HTTP、ステートレス
- ツール
- ツール名は
everyinfra_で始まります。名称が変更されたツールも旧名称で呼び出せるため、プロンプトやワークフローはそのまま動作します。
IPFoxyプロキシとの併用
EveryInfra APIの呼び出しにプロキシは不要です。リクエストはapi.everyinfra.comに直接送信され、名前付きフィールドを持つJSONが返されます。自社のプログラムは事情が異なります。クローラーやブラウザ自動化で特定の国のユーザーとしてページを開く必要がある場合は、その国の出口IPが必要です。
つまり、役割分担はシンプルです。IPFoxyは自社のリクエストに別の出口IPを提供します。EveryInfraはカタログ内のプラットフォームの構造化されたデータを提供します。
| タスク | 使うもの |
|---|---|
| 国によって内容が変わるページ(現地価格、配送、広告掲載枠)を開く、または自社のストアやアカウントにログインする | IPFoxyプロキシ+自社のクローラーまたはブラウザ |
| データAPIのカタログにないサイトやフィールドを収集する | IPFoxyプロキシ+自社のクローラー |
| カタログ内プラットフォームのデータを、スプレッドシートやデータベース向けに一括取得する | EveryInfraのデータAPI(プロキシなしで直接呼び出し) |
このPythonの例では、2つのステップを1つのスクリプトで実行します。ステップ1では、IPFoxyの出口IP経由でipinfo.ioを呼び出し、出口IPの国を表示します。ステップ2では、EveryInfraを直接呼び出してAmazonの商品を1件取得します。実行前に、2つの環境変数を設定してください。EVERYINFRA_API_KEYはAPIキー、IPFOXY_PROXYはIPFoxyダッシュボードで取得する接続文字列で、http://username:password@host:portの形式です。requestsはpip install requestsでインストールします。
import os import requests EVERYINFRA_API_KEY = os.environ["EVERYINFRA_API_KEY"] IPFOXY_PROXY = os.environ["IPFOXY_PROXY"] # http://username:password@host:port PROXIES = {"http": IPFOXY_PROXY, "https": IPFOXY_PROXY} # 1. Your own request goes out through the IPFoxy exit IP. exit_ip = requests.get("https://ipinfo.io/json", proxies=PROXIES, timeout=30).json() print("Exit IP country:", exit_ip.get("country")) # 2. The EveryInfra call goes direct. It does not need a proxy. direct = requests.Session() direct.trust_env = False # ignore HTTP(S)_PROXY, so this call uses no proxy traffic resp = direct.post( "https://api.everyinfra.com/api/v1/social", headers={"Authorization": f"Bearer {EVERYINFRA_API_KEY}"}, json={ "platform": "amazon", "action": "profile", "params": {"url": "https://www.amazon.com/dp/B0CYJDVT31"}, }, timeout=120, ) resp.raise_for_status() body = resp.json() item = body["results"] print(item["title"][:60], item["currency"], item["price"], item["rating"]) print("Charged USD:", body["billing"]["charged_usd"])
direct.trust_env = Falseを指定すると、EveryInfraの呼び出しは環境変数HTTP_PROXYとHTTPS_PROXYを無視します。指定しない場合、システム全体に設定されたプロキシをこの呼び出しも経由するため、その分のプロキシ通信料が発生します。- プロキシから407が返された場合は、ユーザー名またはパスワードが誤っています。この例はEveryInfraを呼び出す前に停止するため、課金は発生しません。IPFoxyのヘルプセンターによると、プロキシは中国本土以外のネットワークからコードを実行した場合にのみ機能します。
- このコードは2026年10月24日に実行しました。EveryInfraの呼び出しでは商品タイトル、価格、評価が返され、課金額は$0.001389でした。当社はIPFoxyのアカウントを持っていないため、プロキシのステップはローカルのモックプロキシで検証しました(アドレス形式、
CONNECTトンネル、407のケース)。 - 1ページあたりのプロキシ通信量は、HTMLのみで約0.44MB、ブラウザで完全に読み込むと約7.96MBです。IPFoxyの各プランと必要な成功率に応じた1,000ページあたりのコストについては、Amazonの1ページあたりのプロキシ通信量をご覧ください。
- 完全なサンプル、ローカルのモックプロキシ、バイト計測スクリプトはGitHub(everyinfra-agent-plugins / examples / proxy-plus-data-api)で公開しています。
紹介リンクに関する開示:以下の「IPFoxyにアクセス」リンクは、IPFoxyから提供された当社の紹介コード付きの紹介リンクです。このリンクから新規登録または購入すると、IPFoxyから当社に紹介料が支払われる場合があります。IPFoxyは当社のパートナーです。
IPFoxyにアクセス(新しいタブで開きます)IPFoxyの製品と料金は、当社のパートナーページでご覧いただけます。
Exa検索との併用
Exaは意味に基づいてWebを検索します。クエリにページ上の単語が含まれていなくても、該当する企業、記事、論文を見つけ出し、そのテキストを結果とともに返します。EveryInfraは、G2やTrustpilotの評価・レビュー、YouTubeのコメントといったプラットフォームの構造化されたデータを、名前付きフィールドを持つJSONで提供します。
一般的には、Exaで対象を一覧化してから、EveryInfraで各対象にプラットフォームデータを追加します。
| タスク | 使用ツール |
|---|---|
| 意味に基づいて企業、記事、論文を探し、そのテキストも取得する | Exa |
| G2またはTrustpilot上の特定の製品の評価、レビュー数、レビュー本文 | EveryInfraのg2およびtrustpilot API |
| YouTube動画に付いたコメントといいね数 | EveryInfraのyoutube API(Exaは動画の文字起こしテキストを返しますが、コメントは返しません) |
このPythonの例では、競合のレビュー比較表を作成します。ステップ1では、Exaに「note-taking apps similar to Obsidian」と問い合わせます。category: "company"を指定すると、企業のホームページのみが返されます。ステップ2では、各企業についてEveryInfraのg2/search APIを呼び出し、G2の評価とレビュー数を取得します。実行前に、2つの環境変数を設定してください。EXA_API_KEYはExaダッシュボードで取得したキー、EVERYINFRA_API_KEYはEveryInfraのAPIキーです。pip install requestsが必要です。
import os from concurrent.futures import ThreadPoolExecutor from urllib.parse import urlsplit import requests EXA_API_KEY = os.environ["EXA_API_KEY"] EVERYINFRA_API_KEY = os.environ["EVERYINFRA_API_KEY"] QUESTION = "note-taking apps similar to Obsidian" # 1. Exa: find companies by meaning, not by keyword companies = requests.post( "https://api.exa.ai/search", headers={"x-api-key": EXA_API_KEY}, json={"query": QUESTION, "category": "company", "type": "auto", "numResults": 10}, timeout=60, ).json()["results"] # 2. EveryInfra: each company's G2 rating and review count def g2_rating(company): name = company["title"].split(" - ")[0].split(" | ")[0].strip() resp = requests.post( "https://api.everyinfra.com/api/v1/social", headers={"Authorization": f"Bearer {EVERYINFRA_API_KEY}"}, json={"platform": "g2", "action": "search", "params": {"keyword": name}}, timeout=180, ) resp.raise_for_status() body = resp.json() match = next((p for p in body["results"] if p["product_name"].lower() == name.lower()), None) return name, match, body["billing"]["charged_usd"] with ThreadPoolExecutor(max_workers=4) as pool: rows = list(pool.map(g2_rating, companies)) spent = 0.0 for company, (name, g2, charged) in zip(companies, rows): spent += charged domain = urlsplit(company["url"]).hostname.removeprefix("www.") if g2 and g2["review_count"]: print(f"{name:12} {domain:16} G2 {g2['rating']} / 5 · {g2['review_count']} reviews") else: print(f"{name:12} {domain:16} no G2 reviews yet") print("EveryInfra charged (USD):", round(spent, 6))
- このコードは2026年10月25日に、記載どおりの内容で実行しました。Exaは10社のホームページを返し、数分後に再検索した際も同じ10社が返されました。10社のうち7社にG2の評価とレビューがあり、たとえばGoodnotesは4.7(レビュー123件)、Milanoteは4.5(42件)でした。英語版、中国語版、スペイン語版をそれぞれ1回ずつ実行し、各回の所要時間は44~51秒でした。EveryInfraの課金額は$0.01389(
g2/searchの呼び出し10回)、Exaの検索費用は$0.007でした。 - 企業名がG2の製品名と完全に一致する場合にのみ、一致とみなします。この例では、Exaの結果のタイトルから「 - 」以降をすべて削除しています。今回の実行では、G2にBrainioという製品はなく、YarangaとBrainfoはG2ページがあるもののレビューはまだありませんでした。
g2/searchの呼び出しは、同名の製品がない場合でもAPIが検索結果を返すため、1回ごとに課金されます($0.001389)。1回の呼び出しに約30~70秒かかるため、この例では4件ずつ並行して実行しています。- Trustpilotを使う場合は、ステップ2を
trustpilot/profileに変更し、companyに企業のドメインを指定します。同じ企業群では、7社中4社にTrustpilotのプロフィールがありました。プロフィールがない企業では空の結果が返され、課金されません。 - Exaの結果にはRedditのスレッドが含まれません。
includeDomainsにreddit.comを指定したところ、結果は0件で、費用は発生しませんでした。 - 3カテゴリ・30社にわたるカバー率、名前の完全一致では見落とされる大手企業、全データについては、Exaで競合を見つけ、EveryInfraでレビューを確認をご覧ください。
EveryInfraとExaはパートナーです。以下の「Exaにアクセス」リンクは、紹介コードを含まない通常のリンクです。
Exaにアクセス(新しいウィンドウで開きます)Exaの製品と料金は、当社のパートナーページでご覧いただけます。
Monidとの併用
Monidは、AIエージェント向けのツールルーターです。エージェントが必要なことを1文で伝えると、discoverは条件に合うエンドポイントとその料金を無料で返し、inspectは入力スキーマと現在の料金を無料で返します。課金されるのはrunのみで、その料金が1つのプリペイド残高から差し引かれます。EveryInfraは、仕様が固定されたプラットフォームデータAPIを提供します。リクエスト形式は1種類で、機能ごとにフィールド名と料金が固定されています。
よくある使い分けは、呼び出しの頻度によるものです。EveryInfraのカタログにあるプラットフォーム(2026年11月3日時点で106件。最新の一覧はGET /api/v1/social/catalogで取得できます)はEveryInfraで処理します。カタログにないプラットフォームや、データ以外のツール(天気、ジオコーディング、企業ロゴ、画像生成)はMonidで処理します。
| タスク | 使用ツール |
|---|---|
| 毎日収集するプラットフォームのデータ(Xiaohongshuの検索、Amazonの商品、YouTubeのコメントなど) | EveryInfra APIまたはMCPツールeveryinfra_call_api。対応プラットフォームはカタログに記載されています |
| EveryInfraのカタログにないプラットフォーム、またはたまにしか使わないツール | Monid:discoverでエンドポイントを探し、inspectで料金を確認してからrunを実行 |
| どのツールを使うかまだ決まっていない | Monidのdiscover(無料。候補を料金情報と順位付きで返します) |
このPythonの例では、両方の種類の呼び出しを1つのスクリプトにまとめています。ステップ1は日次ジョブです。EveryInfraのxiaohongshu/searchで「matcha latte」をいいね数の多い順に検索し、上位3件のノートと課金額を出力します。ステップ2は単発のジョブです。Monidでドメインから企業ロゴを返すツールを探し、inspectで得た料金がMAX_PRICE_USD以下の場合にのみ実行します。実行前に、2つの環境変数を設定してください。EVERYINFRA_API_KEYにはEveryInfraのAPIキーを、MONID_API_KEYにはMonidのダッシュボード(app.monid.ai)で作成したAPIキーを設定します。pip install requestsも必要です。
import os import requests EVERYINFRA_API_KEY = os.environ["EVERYINFRA_API_KEY"] MONID_API_KEY = os.environ["MONID_API_KEY"] MONID = "https://api.monid.ai/v1" MONID_HEADERS = {"Authorization": f"Bearer {MONID_API_KEY}"} MAX_PRICE_USD = 0.01 # do not run a Monid tool that costs more than this per call # 1. The daily job: EveryInfra xiaohongshu/search, one fixed request shape resp = requests.post( "https://api.everyinfra.com/api/v1/social", headers={"Authorization": f"Bearer {EVERYINFRA_API_KEY}"}, json={"platform": "xiaohongshu", "action": "search", "params": {"keyword": "matcha latte", "sort": "most_liked"}}, timeout=120, ) resp.raise_for_status() body = resp.json() for note in body["results"][:3]: print(note["like_count"], note["collect_count"], note["posted_at"][:10], note["url"]) print("EveryInfra:", len(body["results"]), "notes, charged (USD):", body["billing"]["charged_usd"]) # 2. A one-off lookup that is not a daily platform: discover, inspect, run on Monid found = requests.post(f"{MONID}/discover", headers=MONID_HEADERS, timeout=60, json={"query": "company logo image URL from a domain", "limit": 3}).json()["results"] # discover adds ranking and price fields to each result; inspect and run take only the fields that name the tool SHOWN_ONLY = ("providerName", "description", "price", "score", "scoreBreakdown", "tags", "metrics", "hints") tool = {key: value for key, value in found[0].items() if key not in SHOWN_ONLY} detail = requests.post(f"{MONID}/inspect", headers=MONID_HEADERS, timeout=60, json=tool).json() price = detail["price"]["amount"]["value"] print("Monid tool:", detail["endpoint"], "price (USD):", price) if price <= MAX_PRICE_USD: run = requests.post(f"{MONID}/run", headers=MONID_HEADERS, timeout=120, json={**tool, "input": {"pathParams": {"company": "starbucks.com"}}}).json() print("Monid run:", run.get("runId"), run.get("status"), run.get("output"))
- このコードを2026年11月3日16:45(シンガポール時間)に、記載どおりの内容で実行しました。EveryInfraは20件のノートを返し、課金額は$0.005556でした。Monidの
discoverは企業ロゴのエンドポイントを1位にランク付けし、inspectでは1回あたり$0と表示され、runはステータスCOMPLETEDとロゴ画像のURLを返しました。スクリプトの実行時間は6~7秒でした。中国語版、英語版、スペイン語版をそれぞれ1回ずつ実行しています(中国語版では飲み物の中国語名で検索しています)。 xiaohongshu/searchは1回の呼び出しで最大20件のノートを1ページ分返し、$0.005556が課金されます。ノートが0件のページは課金されません。次のページを取得するには、結果に含まれるnext_page_tokenを送信してください。- Monidでは、
discoverとinspectは無料で、課金されるのはrunのみです。料金はinspectで表示された金額です。実行中は見積額が残高から仮押さえされ、実行終了時に実際の金額で精算されます(Monid llms.txt、2026-11-03に確認)。この例ではMAX_PRICE_USDを使って、予算を超えるツールをスキップしています。 - エージェントには、次のようなルーティングルールを指定できます。「
GET https://api.everyinfra.com/api/v1/social/catalogにあるプラットフォームはeveryinfra_call_apiで処理する。それ以外のプラットフォームとツールはすべてMonidを使う。discoverしてからinspectし、料金が予算内の場合にのみrunする。すべての呼び出しの課金額を記録する。」 - MonidのMCPサーバー(
https://mcp.monid.ai/v1)では、ブラウザでOAuthサインインを行う必要がありますが、こちらではテストしていません。Claude、Claude Code、Codex、OpenCode、ChatGPTの設定手順については、[Monid MCPクイックスタート](https://monid.ai/docs/guide/quickstart-mcp)を参照してください。EveryInfra側については、上記のMCPセクションを参照してください。
EveryInfraとMonidはパートナーです。以下の「Monidにアクセス」リンクは、紹介コードを含まない通常のリンクです。
Monidにアクセス(新しいウィンドウで開きます)Monidのプロダクトと課金については、当社のパートナーページ。
課金と残高調整
必要な機能の料金と課金単位は、公開カタログで確認できます。各レスポンスには課金額が記録されます。結果の提供に成功した場合のみ課金されるプロダクトでは、処理に失敗した場合や結果が空の場合は課金されません。
- クライアント側で、ウォレットの内部単位を通貨に換算しないでください。
- APIが返す通貨と金額を表示し、課金の照合に使用してください。
- 成功時のみ課金される処理が完了しなかった場合、課金は確定せず、確保されていた金額は自動的にアカウント残高に戻ります。
- 有料レスポンスの
billingオブジェクトには、その呼び出しの課金額(USD)を示すcharged_usd(課金がない場合は0、結果が未確定の間はnull)と、呼び出し確定後のウォレット残高を示すbalance_after_usd(読み取れない場合はnull)が含まれます。バッチ処理中はアカウントをポーリングせず、balance_after_usdを確認してください。 - 失敗した呼び出しで確保額が返却された場合は、エラーボディの
billingにもbalance_after_usdが含まれます。
エラー処理
HTTPステータスとエラーボディをあわせて確認してください。すべてのエラーには、問題の所在と次に取るべき対応を示すfault(request、account、service)、retryable、next_stepsも含まれます。問題がEveryInfra側にあり、リトライ回数を使い切った場合は、supportにチケットの下書きが含まれます。チケットを作成する前にユーザーに確認してください。リトライする前に、何が失敗したか、リクエストを繰り返すとアクションが重複しないかを確認してください。
| ステータス | 意味 | 対処 |
|---|---|---|
| 400 | 不明なプラットフォームまたはアクション | レスポンスのdid_you_meanとallowed、または機能カタログを参照してください。 |
| 401 | APIキーが未指定、無効、または無効化済みです | Bearerトークンとキーのステータスを確認してください。 |
| 402 | ウォレット残高が不足しています | GET /api/v1/accountで現在の残高を確認し、アカウントにチャージするか、リクエストの範囲を縮小してください。 |
| 404 | 不明なルートまたはリソース | エンドポイントとリソース識別子を確認してください。 |
| 422 | パラメータ、値、または型が無効です | レスポンスに含まれる使用可能な値とdid_you_meanを確認してください。 |
| 429 | レート制限に達しました | Retry-Afterで指定された時間だけ待ってから再試行してください。レート制限はアカウント単位で、すべてのAPIキーからのリクエストが合算されます。キーには、これより低い個別のレート制限が設定される場合もあります。 |
| 5xx | リクエストを送信できませんでした | リクエストIDを記録し、next_stepsに従ってください。タイムアウト(timeout)の場合は、同じリクエストを"mode":"async"付きで再送すると、完了を待たずにjob_idを受け取れます。 |
カタログエンドポイントにAPIキーは必要ですか?
いいえ。公開されている機能カタログは登録前でも参照できます。認証が必要な呼び出しには、有効なBearer APIキーが必要です。
データの出所はどこですか?プラットフォームの許可は得ていますか?
EveryInfraは、公開投稿、コメント、商品ページ、プロフィールなど、各プラットフォーム上で一般公開されているコンテンツを返します。プラットフォームに開発者アプリを登録したり、プラットフォームのアカウントでログインしたりする必要はありません。当社はこれらのプラットフォームのパートナーではなく、代理人でもなく、お客様に代わって許可を取得することもありません。データの利用方法はお客様の判断に委ねられます。適用される法令とプラットフォームの規約を遵守してご利用ください([利用規約](/ja/terms)の第1条および第4条を参照)。一般公開されているからといって、自由に複製、再公開、商用利用できるわけではありません。
MCPとRESTは別々のプロダクトですか?
いいえ。MCPは、現在検出されているEveryInfraのツールにアクセスするための別の手段です。データ、検索、CAPTCHA、AIチャットには、対応するRESTの認証、課金、バリデーション、レート制限、残高調整のルールがそのまま適用されます。
AI APIは無料ですか?
はい。チャージ済みのアカウントであれば、残高を消費せずに呼び出せます。制限は累計チャージ額に応じて決まります:$100未満では毎分50リクエスト、同時実行数は最大5、$100以上では500、50、$500以上では5,000、500。$1を超えるクレジットコードとボーナスクレジットはそれぞれチャージと同様にカウントされますが、トライアルクレジットと$1以下の金額はカウントされません。
コードから残高を確認するには?
同じBearer APIキーで GET /api/v1/account を呼び出します。購入分残高、ボーナス残高、合計残高(いずれもUSD建て)、今月のチャージ割引、1分あたりのリクエスト制限、過去24時間の利用状況が返されます。この呼び出しは課金されず、制限にもカウントされません。また、課金対象のすべてのレスポンスには billing.balance_after_usd も含まれます。
サポートされていないパラメータは無視されますか?
いいえ。不明なパラメータを指定すると、サポートされている値と、特定可能な場合は名前が最も近い候補を含む422レスポンスが返されます。
大量のリクエストを送信するにはどうすればよいですか?
非同期モードを使用します。リクエストボディに "mode": "async" を追加すると、各呼び出しですぐにjob_idが返されるため、GET /api/v1/jobs/{job_id} をポーリングして結果を取得します。同期呼び出しは85秒以内に完了しないとタイムアウトで失敗します(課金されません)。非同期ジョブにはこの制限はありません。