> ## Documentation Index
> Fetch the complete documentation index at: https://docs.querying.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# WebサイトをクロールしてMarkdownにする API (WEB_CRAWL)

> 開始アドレスからサイトをクロールし、各ページをMarkdownで取得します。返したページごとに課金されます。

`WEB_CRAWL` は開始アドレスからサイトのリンクを幅優先でたどり、各ページを [`WEB_SCRAPE`](/ja/engines/web-scrape) と同じように読みます。すべてのページのMarkdown、メタデータ、画像を1つの結果で受け取れます。

| | |
| - | - |
| `taskType` | `WEB_CRAWL` |
| 入力 | `url`(必須)、`maxPages`、`maxDepth`、`maxChars`、`includePaths`、`excludePaths`、`includeSubdomains`、`country` |
| クレジット | 返したページごとに1。送信時に `maxPages` 分のクレジットを確保します。 |
| 国 | 既定値は `US`。 |
| 位置 | 非対応(`422 LOCATION_UNSUPPORTED`)。 |

## リクエスト

```bash theme={"theme":"css-variables"}
curl -X POST https://api.querying.ai/v1/async/task \
  -H "Authorization: Bearer $QUERYING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "taskType": "WEB_CRAWL", "payload": { "url": "https://www.example.com/docs", "maxPages": 25, "maxDepth": 2, "includePaths": ["/docs/**"] } }'
```

## パラメータ

| フィールド | 必須 | 説明 |
| - | - | - |
| `url` | はい | 開始アドレス。`WEB_SCRAPE` と同じルールです: 公開 `http` または `https`、既定ポート、2,048文字まで。パターンや `robots.txt` に関係なく、開始ページは常に読みます。 |
| `maxPages` | いいえ | 開始ページを含めて読むページ数。1〜100の整数で、既定値は10。 |
| `maxDepth` | いいえ | 開始ページからたどるリンクの回数。0〜5の整数で、既定値は2。`0` なら開始ページだけを読みます。 |
| `maxChars` | いいえ | ページごとの `markdown` の上限。1,000〜50,000の整数で、既定値は20,000。 |
| `includePaths`、`excludePaths` | いいえ | [`WEB_MAP`](/ja/engines/web-map) と同じパスパターン: それぞれ最大20件、`/` で始まり200文字以内。`*` は1区切り内、`**` は複数の区切りにまたがって一致します。`excludePaths` が優先されます。 |
| `includeSubdomains` | いいえ | `true` でサイトのサブドメインへのリンクもたどります。既定値は `false`。 |
| `country` | いいえ | ページをリクエストする地域。既定値は `US`。 |

クロールがたどるのは、サイト内にとどまり(`www.` の有無は問いません)、パスパターンに合い、ファイルではなくWebページを指し(PDF、画像、アーカイブなどのファイルは飛ばします)、サイトの `robots.txt` がすべてのクローラーに許可しているリンクです。

## レスポンス

例:

```json theme={"theme":"css-variables"}
{
  "url": "https://www.example.com/docs",
  "pages": [
    {
      "url": "https://www.example.com/docs",
      "finalUrl": "https://www.example.com/docs",
      "depth": 0,
      "statusCode": 200,
      "title": "...",
      "markdown": "# ...",
      "images": [],
      "truncated": false
    }
  ],
  "failed": [{ "url": "https://www.example.com/docs/old", "depth": 1, "error": "the site answered 404 for this page" }],
  "stopReason": "max-pages"
}
```

| フィールド | 説明 |
| - | - |
| `pages` | 読んだページ、クロールが見つけた順。各ページは `WEB_SCRAPE` のフィールドに加え、開始ページからのリンク数 `depth` を持ちます。 |
| `failed` | 読めなかったページ。それぞれ `url`、`depth`、サイトの理由を示す `error` を持ちます。 |
| `stopReason` | クロールが終わった理由。下表を参照してください。 |

| `stopReason` | 意味 |
| - | - |
| `done` | たどるリンクが残っていません。 |
| `max-pages` | `maxPages` 件のページを読みました。 |
| `failures` | 10ページ続けて読めなかったか、失敗したページの合計が `maxPages` に達しました。 |
| `time` | クロールの時間が尽きました。約4分後から新しいページを読み始めなくなります。 |

## クレジット

送信時、タスクは `maxPages` の1ページにつき1クレジットを確保します(上の例では25クレジット)。完了時に `pages` のページごとに1クレジットを課金し、残りの確保分は解放します。`failed` のページは課金されません。25ページ中3ページを返したクロールは3クレジットです。確保の仕組みは[クレジットと制限](/ja/concepts/credits-and-limits.md)を参照してください。

## 制限とエラー

* 開始ページを読めない場合、タスクは `PAGE_UNAVAILABLE` で失敗します。それ以外の読めないページは `failed` に入り、クロールは続きます。
* 不正なオプションは、フィールドを示した `422 VALIDATION_ERROR` を返します。
* `WEB_CRAWL` は `markdown`、`rawResponse`、`searchQueries` を無視します。`html` と `analysis` は `422`、`citationAnalysis` は `400` で拒否します。[未対応のフラグ](/ja/engines/response-options.md#未対応のフラグ)を参照してください。
* その他のリクエストエラーは[エラー](/ja/concepts/errors.md)に記載しています。

## 関連

* [Webマップ](/ja/engines/web-map.md): ページを読まずにサイトのアドレスを一覧する
* [Webスクレイプ](/ja/engines/web-scrape.md): 1ページだけ読む


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.