テスト
10,000ページ
$3.75
$0.38/1Kページ
- 実際のURLで試す
- 最大のパックと同じAPI
- クレジットの有効期限なし
POST /crawl · 1ジョブあたり最大10,000ページ · robots.txtとCrawl-delayを尊重
開始URLとページ上限を指定します。クローラーはサイトのsitemapと同一ドメイン内のリンクをたどり、各ページをMarkdownとして読み取り、ページごとに結果を返します。1ページにつき1クレジットです。
概要
ウェブサイト全体をクロールして全ページをMarkdownで取得するには?
Crawl APIを使います。開始URLと上限を送ると、サイトの各ページをMarkdownで返します。WebReaderAPI は1ジョブあたり最大10,000ページを1つのドメイン内でクロールし、sitemap、robots.txt、Crawl-delayに従い、読み取ったページ1ページにつき1クレジットを課金します。2026年10月時点で$0.07/1Kページからです。robots.txtで拒否されたページは無料です。KYC不要。暗号資産で支払い。
| クロールを開始 | url、limit、max_depth、include_paths、exclude_pathsを指定してPOST https://webreaderapi.com/api/v1/crawl |
|---|---|
| 結果を取得 | GET https://webreaderapi.com/api/v1/jobs/{job_id}、カーソルによるページネーション |
| スコープ | 1ジョブにつき1つのWebサイトを、最大10,000ページまでクロール。サイトマップ、robots.txt、Crawl-delayに従います |
| 多数の個別URL | POST https://webreaderapi.com/api/v1/batch: バッチジョブあたり最大100 URL |
| 課金 | 1クレジット = ブラウザなしでページを1回読み取り。ページのJavaScriptレンダリングにブラウザが必要な場合は2クレジット。失敗したリクエスト、またはサイトのrobots.txtが拒否したリクエストは課金されません |
| サイト運営者の方へ | 当社はrobots.txtを尊重します。クローラーはWebReaderAPIとして名乗り、自身向けまたはすべてのロボット向けに書かれたルールに従い、サイトが禁止したページは読み取りません。拒否されたページは課金されません |
| 料金 | $14.25で50,000ページ、$50で500,000ページ |
クロールはバックグラウンドジョブです。数百ページの読み取りは、1回のHTTPリクエストで行うには時間がかかりすぎるためです。
POST https://webreaderapi.com/api/v1/crawlを実行します。すぐにjob_idが返ります。max_depthまでたどります。/readと同じオプションで読み取られます。Markdown、本文抽出、必要に応じたレンダリングです。doneになった後にGET https://webreaderapi.com/api/v1/jobs/{job_id}をポーリングし、カーソルで結果をページ送りします。ジョブはlimitで停止するため、指定した以上のページに対して支払うことはありません。
import os
import pathlib
import re
import time
import requests
API = "https://webreaderapi.com/api/v1"
HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}
job = requests.post(
API + "/crawl",
headers=HEADERS,
json={"url": "https://docs.example.com/", "limit": 500, "max_depth": 4, "include_paths": ["/guide/*"]},
timeout=60,
).json()
out = pathlib.Path("docs_md")
out.mkdir(exist_ok=True)
cursor, delay = None, 5
while True:
params = {"cursor": cursor} if cursor else {}
page = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json()
for item in page.get("results", []):
if "markdown" in item:
name = re.sub(r"[^a-z0-9]+", "-", item["url"].lower()).strip("-")[:120]
(out / (name + ".md")).write_text(item["markdown"], encoding="utf-8")
cursor = page.get("next_cursor")
if page["status"] == "done" and not cursor:
break
if not cursor:
time.sleep(delay)
delay = min(delay * 2, 60)
print("credits used:", page.get("credits_used"))
開始URLのドメイン内にとどまり、サイトがrobotsに除外を求めているものはスキップします。詳細は次のとおりです。
WebReaderAPIに対して、またはすべてのロボットに対して不許可のページはスキップされ、課金されません。include_pathsとexclude_pathsは/blog/*のような単純なパターンを受け付けます。タグページ、検索ページ、アーカイブを避けるために使用してください。サイトはわかっているがページがわからない場合はクロールを使用し、URLのリストがすでにある場合はバッチを使用します。クロールはサイトマップとリンクからページを検出します。バッチは送信したURLを正確に読み取り、ジョブごとに最大100件、サイト数は問いません。
ナレッジベースを毎週更新する場合の一般的なパターンは、まず1回のクロールでインデックスを構築し、次にサイトマップでlastmodが変更されたページをバッチで読み取ることです。これにより、毎週のコストを実際に変更されたページのみに抑えられます。
読み取ったページ1件につき1クレジット、ブラウザが必要だったページは2クレジットです。サーバー側でレンダリングされる1,500ページのドキュメントサイトは1,500クレジット、同じサイトをシングルページアプリとして構築した場合は最大3,000クレジットかかることがあります。
2026年10月時点の典型的なジョブ3例: 300ページの製品マニュアルは10,000ページパック($3.75)に収まります。2,000ページのドキュメントサイト10件は50,000ページ($14.25)に収まります。400,000ページのアーカイブは500,000ページ($50)に収まります。スキップされたページと失敗したページは無料です。
ページ数に基づいてパックを選び、ブラウザが必要なページの分の余裕を加えてください。クレジットは失効しないため、残りは次のクロールに使えます。
10,000ページ
$3.75
$0.38/1Kページ
50,000ページ
$14.25
$0.28/1Kページ
100,000ページ
$21.75
$0.22/1Kページ
500,000ページ
$50
$0.10/1Kページ
すべてのプランに含まれるもの: 本文抽出 · 必要な場合はJavaScriptをレンダリング · 失敗・拒否されたページは課金なし · クレジットの有効期限なし
ジョブごとに最大10,000ページ、開始URLのドメイン内に限ります。より大規模なサイトでは、include_pathsを使って複数のジョブに分割してください。たとえばセクションごとに1つです。
はい。robots.txtに記載された、または通常の場所にあるサイトマップを読み、その後読み取ったページ上のリンクをたどります。サイトマップにのみ記載されているページも、robots.txtが許可していれば読み取られます。
WebReaderAPIではできません。robots.txtが当社のクローラーまたはすべてのロボットを不許可にしている場合、それらのページはスキップされ、課金されません。サイトがContent-Signal: ai-input=noを宣言している場合、当社はあなたの代わりにそれを読み取りません。そのような選択を回避しようとすることは決してありません。
はい。GET https://webreaderapi.com/api/v1/jobs/{job_id}はこれまでに読み取ったページをカーソル付きで返します。ジョブがdoneになりカーソルがなくなるまで、ページ送りを続けてください。
いいえ。クレジットはページごとにカウントされ、ジョブは設定したlimitに達すると停止します。robots.txtのためにスキップされたページと、失敗したページはクレジットを消費しません。
$0.07/1Kページから · KYC不要
APIキーを取得