テスト
10,000ページ
$3.75
$0.38/1Kページ
- 実際のURLで試す
- 最大のパックと同じAPI
- クレジットの有効期限なし
ユースケース · AIエージェント · ツール名 read_url
検索はできても読み取れないエージェントは、スニペットから回答します。任意の公開URLを短くクリーンなMarkdownに変換するツールを与えれば、設定した予算の範囲内で、ソースを読み、引用し、出典を示すことができます。
概要
AIエージェントにWeb fetchツールを与える最善の方法は何ですか?
WebリーダーAPIを、URLを受け取り、ページのメインコンテンツをMarkdownとして指定の長さで切り詰めて返すツールとしてラップします。WebReaderAPIが読み取りを行い、必要に応じてJavaScriptをレンダリングし、robots.txtを尊重し、2026年10月時点で$0.07/1Kページから1ページにつき1クレジットを課金します。すぐに使えるツールコードは、MCP、OpenAI function calling、LangChain、n8n、OpenClawに対応しています。KYC不要、暗号資産で支払い。
| ツール | https://webreaderapi.com/api/v1/readを呼び出すread_url(url, max_chars) |
|---|---|
| 戻り値 | メインコンテンツのMarkdown、加えてタイトル、著者、日付、語数 |
| 長さ上限 | max_chars、1ページあたり1,000〜500,000文字 |
| JavaScriptページ | ページに必要な場合はヘッドレスブラウザでJavaScriptをレンダリング(render=auto)、常にレンダリング、または一切レンダリングしない |
| 拒否 | 明確なエラーとして返され、課金はされない |
| 連携 | MCP、OpenAI、LangChainとLlamaIndex、n8n、OpenClaw |
| 料金 | 10,000ページで$3.75。クレジットに有効期限はありません |
生のHTMLは、モデルには不要な要素にコンテキストウィンドウを費やしてしまうからです。ニュース記事やドキュメントページは、ナビゲーション、スクリプト、同意バナー、関連リンクに囲まれた状態で届きます。そのまま渡すと会話の余地を圧迫し、モデルがメニューを引用する原因になります。
リーダーは3つの問題を同時に解決します。本文だけを残し、JavaScriptが実行されるまで空のページをレンダリングし、PDFをテキストに変換します。エージェントは、引用できるタイトルと日付を伴う、コンパクトなMarkdownのブロックを1つ受け取ります。
主な理由は、サイトが自動化されたトラフィックを拒否するからです。2025年7月1日以降、Cloudflareは新しいドメインに対してデフォルトでAIクローラーをブロックしており、2026年9月15日からは、そのプリセットにより新しいドメインの広告収益型ページで「Agent」トラフィックをブロックします。コーディングエージェントやアシスタントの組み込みツールも、他のクライアントと同様にこうした拒否に遭遇します。
それ以外の失敗は技術的なものです。2026年10月22日に読んだOpenClawのドキュメントによると、その組み込みのweb_fetchはReadabilityで本文抽出を行い、JavaScriptを実行せず、出力を20,000文字に制限しています。ブラウザ上で構築されたページ、長いドキュメント、遅いサーバー、レート制限は、いずれもこうしたツールを失敗させます。ページをレンダリングするリーダーはJavaScriptの問題を解決し、キャッシュと忍耐が残りを解決します。拒否はサイト所有者の判断です。web fetch 403エラーに関するガイドで各ケースを説明しています。
エージェントがすでに持っているツールとの衝突を避けるためです。Claude CodeとOpenClawはどちらもweb_fetchという名前の組み込みツールを搭載しています。同じ名前の2つ目のツールがあると、モデルはどちらを呼び出しているのか混乱します。私たちのツールをread_urlと名付けることで、両方を利用可能に保てます。エージェントは簡単な確認には組み込みのフェッチャーを使い、クリーンなMarkdown、PDF、JavaScriptページが必要なときにはread_urlを使えます。
ドキュメントページのツール定義はすべてこの名前を使っているので、プロンプトを変更せずにフレームワーク間を切り替えられます。
import os
import requests
API = "https://webreaderapi.com/api/v1/read"
HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}
def read_url(url: str, max_chars: int = 12000) -> str:
"""Return a web page as Markdown for a model, or a short reason it was not read."""
resp = requests.get(API, headers=HEADERS, params={"url": url, "max_chars": max_chars}, timeout=90)
data = resp.json()
if resp.status_code != 200:
err = data.get("error", {})
return "Not read (" + err.get("code", "error") + "): " + err.get("message", "")
head = "# " + (data.get("title") or url) + "\nSource: " + data["final_url"]
if data.get("published_at"):
head += " | Published: " + data["published_at"]
return head + "\n\n" + data["markdown"]
if __name__ == "__main__":
print(read_url("https://example.com/blog/pour-over-coffee", max_chars=2000)[:500])
予算とルールを与えてください。3つの習慣がコストとコンテキストを抑えます:
max_charsを10,000〜15,000文字程度に設定し、word_countで答えがさらに下にありそうだと分かったときだけ増やします。上記のツールは拒否を1つの簡潔な文として返すので、モデルはそれをユーザーに説明できます。
1ページにつき1クレジット、ブラウザが必要なページでは2クレジットです。1日に100件の質問に答え、それぞれ4ページを読むアシスタントは、月におよそ12,000ページを読みます。2026年10月時点で、50,000ページ($14.25)でそれを4か月分まかなえます。
クレジットに有効期限はないので、ある週は忙しく次の週は暇なエージェントでも月次クォータを無駄にしません。失敗したページやrobots.txtが拒否したページは無料です。
まず10,000ページでプロトタイプを作り、エージェントが実際のユーザーにサービスを提供する段階で50,000ページまたは100,000ページに移行してください。クレジットに有効期限はありません。
10,000ページ
$3.75
$0.38/1Kページ
50,000ページ
$14.25
$0.28/1Kページ
100,000ページ
$21.75
$0.22/1Kページ
すべてのプランに含まれるもの: 本文抽出 · 必要な場合はJavaScriptをレンダリング · 失敗・拒否されたページは課金なし · クレジットの有効期限なし
はい、read_urlを公開する小さなMCPサーバーを通じて追加できます。MCPページにコードと設定スニペットがあり、APIキーは環境変数に保持します。
はい、OpenClawの組み込みweb_fetchと並ぶMCPサーバーとして動作します。OpenClawページにOpenClaw自身のドキュメントにあるコマンドを掲載しています。
いいえ。robots.txtがページを拒否している場合、APIはblocked_by_robotsを返します。サイトが拒否した場合は、サイトのステータスとともにtarget_refusedを返します。どちらも課金されず、私たちが拒否を回避しようとすることは決してありません。
max_charsを設定してください。Markdownはその長さで切り詰められ、word_countがフルページの長さをエージェントに伝えるので、必要なときだけ追加を要求できます。
いいえ。WebReaderAPIでは身分証明書、自撮り、書類、カードのいずれも求められません。支払いはBTC, USDT, USDC, ETH, SOL, LTCで、最低チャージ額は$25です。
$0.07/1Kページから · KYC不要
APIキーを取得