KYC不要 — 身分証もセルフィーも書類も不要。暗号資産で支払い:BTC, USDT, USDC, ETH, SOL, LTC
言語: 日本語
APIキーを取得

POST /crawl · 1ジョブあたり最大10,000ページ · robots.txtとCrawl-delayを尊重

Crawl API: ウェブサイト全体をMarkdownファイルに変換

開始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不要。暗号資産で支払い。

Crawl APIの概要

クロールを開始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に従います
多数の個別URLPOST 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リクエストで行うには時間がかかりすぎるためです。

  1. 開始: 開始URLと制限を指定してPOST https://webreaderapi.com/api/v1/crawlを実行します。すぐにjob_idが返ります。
  2. 検出: クローラーはサイトのrobots.txtとサイトマップを読み、同じドメイン内のリンクを幅優先でmax_depthまでたどります。
  3. 読み取り: 許可された各ページは/readと同じオプションで読み取られます。Markdown、本文抽出、必要に応じたレンダリングです。
  4. 収集: ジョブの実行中、またはdoneになった後にGET https://webreaderapi.com/api/v1/jobs/{job_id}をポーリングし、カーソルで結果をページ送りします。

ジョブはlimitで停止するため、指定した以上のページに対して支払うことはありません。

Python: ドキュメントサイトをMarkdownファイルにクロールする
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に除外を求めているものはスキップします。詳細は次のとおりです。

  • 同一ドメインのみ。 他のドメインへのリンクは結果に一覧表示されますが、読み取られません。
  • robots.txtを最初に確認。 WebReaderAPIに対して、またはすべてのロボットに対して不許可のページはスキップされ、課金されません。
  • Crawl-delayを尊重。 サイトが設定している場合、クローラーは2ページの間にその時間だけ待機するため、大規模なサイトでは時間がかかることがあります。
  • 独自のフィルター。 include_pathsとexclude_pathsは/blog/*のような単純なパターンを受け付けます。タグページ、検索ページ、アーカイブを避けるために使用してください。
  • 重複を除去。 トラッキングパラメータ付きなど、2つのURLで同じページに到達した場合、サイトがcanonical URLを宣言していれば1回だけ読み取られます。

クロールとバッチのどちらを使うべきですか?

サイトはわかっているがページがわからない場合はクロールを使用し、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ページ

  • 実際のURLで試す
  • 最大のパックと同じAPI
  • クレジットの有効期限なし
10,000ページを選択

スターター

50,000ページ

$14.25

$0.28/1Kページ

  • AIエージェントまたはRAGプロトタイプ
  • ドキュメントサイトをクロール
  • クレジットの有効期限なし
50,000ページを選択

構築

100,000ページ

$21.75

$0.22/1Kページ

  • 本番環境のエージェントとRAGパイプライン
  • バッチとクロールジョブ
  • クレジットの有効期限なし
100,000ページを選択

スケール

500,000ページ

$50

$0.10/1Kページ

  • 大規模ナレッジベース
  • リクエストに応じて同時実行数を増加
  • クレジットの有効期限なし
500,000ページを選択

すべてのプランに含まれるもの: 本文抽出 · 必要な場合はJavaScriptをレンダリング · 失敗・拒否されたページは課金なし · クレジットの有効期限なし

Crawl API: よくある質問

1回のクロールで何ページまで読み取れますか?

ジョブごとに最大10,000ページ、開始URLのドメイン内に限ります。より大規模なサイトでは、include_pathsを使って複数のジョブに分割してください。たとえばセクションごとに1つです。

クローラーはサイトマップを使用しますか?

はい。robots.txtに記載された、または通常の場所にあるサイトマップを読み、その後読み取ったページ上のリンクをたどります。サイトマップにのみ記載されているページも、robots.txtが許可していれば読み取られます。

AIクローラーをブロックしているサイトをクロールできますか?

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キーを取得