当社独自のアクセス統計は常に有効です。Google Analyticsは、公開ページ(ログイン後のワークスペースは対象外)の利用状況を把握するためのもので、許可をいただいた場合のみ有効になります。詳しくは プライバシーポリシーをご覧ください。

開発者向け

EveryInfra APIとMCPのドキュメント

公開カタログからタスクを選び、APIキーを作成して、最初の呼び出しを実行しましょう。このガイドでは、リクエスト例、MCPの設定、認証、課金、エラー処理について説明します。

データ、検索、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のコンパクトカタログには、各アクションの主要情報が掲載されています。任意パラメータ、制限、レスポンスフィールドはフルカタログを参照してください。料金と提供状況はハードコードせず、必要に応じて再取得してください。

プロダクトカタログエンドポイント内容
EveryDataGET /api/v1/social/catalog?compact=1プラットフォーム、アクション、必須パラメータ、実行モード、提供状況、料金
EverySearchGET /api/v1/search/tools検索ツール、リクエストパラメータ、ティア、料金
EverySolveGET /api/v1/captcha/typesCAPTCHAの種類、パラメータ、解答の形式、提供状況、料金
AI APIGET /api/v1/modelsAI 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つのウォレットを共有します

1つのAPIキーは、分電盤のキースイッチのように機能します。オンにすると4つの製品すべてが有効になり、1つのウォレットを共有します。コンソール(API Keys → Restrict access)では、キーごとに製品をオフにできます。オフの製品への呼び出しには403 capability_deniedが返ります。キーを無効にするとすべてが停止し、呼び出しには401が返ります。
account.sh
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
ソーシャル・コンテンツ51プラットフォーム・389件のAPI
レビュー・ローカルサービス23プラットフォーム・86件のAPI
検索・ニュース17プラットフォーム・40件の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文字です。これを超える入力には422 input_too_largeが返るため、小さなリクエストに分割してください。
ai_quickstart.py
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未満505
$100以上50050
$500以上5,000500

クレジットコードとボーナスクレジットは、それぞれの金額が$1を超える場合、チャージと同様にカウントされます。トライアルクレジットと$1以下の金額はカウントされません。チャージしたことがなく、$1を超えるクレジットコードの適用またはボーナスクレジットの付与もないアカウントには、403 ai_topup_requiredが返ります。各ティアの値は上限です。

ステータス意味
403 ai_topup_requiredアカウントがまだ一度もチャージしていません。金額を問わずチャージするとAI APIが有効になります。
429 rate_limited1分あたりの上限に達した(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でインストールします。

proxy_plus_data_api.py
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が必要です。

exa_plus_data_api.py
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も必要です。

everyinfra_plus_monid.py
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、または機能カタログを参照してください。
401APIキーが未指定、無効、または無効化済みです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秒以内に完了しないとタイムアウトで失敗します(課金されません)。非同期ジョブにはこの制限はありません。