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

> ウェブサイト全体をRAG用のMarkdownに変換するCrawl API: 1ジョブあたり最大10,000ページ、sitemapとrobots.txtに従い、$0.07/1Kページから。暗号資産で支払い。

- URL: https://webreaderapi.com/ja/crawl-api/
- 最終更新: 2026-10-22
- 発行者: WebReaderAPI (https://webreaderapi.com)

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

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ファイルにクロールする*

```python
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ページ |
| スターター | 50,000ページ | $14.25 | $0.28/1Kページ |
| 構築 | 100,000ページ | $21.75 | $0.22/1Kページ |
| スケール | 500,000ページ | $50 | $0.10/1Kページ |

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

**お支払いの前に**

- 最低チャージ額$25。 暗号資産で一度チャージすれば、残高から任意のプランを購入できます。
- 残高に有効期限はなく、いつでもページクレジットの購入に使えます。パックの価格が最低入金額を下回る場合、その最低額に達するためだけに追加した分は、お支払いから30日以内であればご依頼によりUSDTまたはUSDCで返金します（ただし未使用分に限ります）。それ以外の残高は、法令に別段の定めがある場合を除き返金されません.
- お支払いがブロックチェーン上で確認され次第、残高に反映されます。 ネットワーク承認の目安時間: BTC 約20分 · USDT TRC-20 約1分 · USDT ERC-20 約5分 · USDC ERC-20 約5分 · ETH 約5分 · SOL 約1分 · LTC 約15分

## 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のためにスキップされたページと、失敗したページはクレジットを消費しません。

---

WebReaderAPI: WebReaderAPIはAIエージェント向けのWebリーダーAPIで、あらゆる公開WebページをクリーンなMarkdownに変換します。暗号資産で支払い、本人確認書類のアップロードは不要です。$0.07/1Kページから購入できるプリペイドクレジットに有効期限はなく、robots.txtを尊重します。KYC不要 — 身分証もセルフィーも書類も不要。暗号資産で支払い。
