> ## 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.

# API de rastreamento de sites para Markdown (WEB_CRAWL)

> Rastreie um site a partir de um endereço inicial e receba cada página em Markdown, cobrado por página retornada.

`WEB_CRAWL` segue os links de um site em largura a partir de um endereço inicial e lê cada página como o [`WEB_SCRAPE`](/pt/engines/web-scrape) faz. Você recebe o Markdown, os metadados e as imagens de cada página em um único resultado.

| | |
| - | - |
| `taskType` | `WEB_CRAWL` |
| Entrada | `url` (obrigatório); `maxPages`, `maxDepth`, `maxChars`, `includePaths`, `excludePaths`, `includeSubdomains`, `country` |
| Créditos | 1 por página retornada. A tarefa reserva `maxPages` créditos no envio. |
| País | Padrão `US`. |
| Localização | Não suportada (`422 LOCATION_UNSUPPORTED`). |

## Requisição

```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/**"] } }'
```

## Parâmetros

| Campo | Obrigatório | Descrição |
| - | - | - |
| `url` | Sim | O endereço inicial. Mesmas regras do `WEB_SCRAPE`: `http` ou `https` público, porta padrão, até 2.048 caracteres. A página inicial é sempre lida, independentemente dos padrões e do `robots.txt`. |
| `maxPages` | Não | Páginas a ler, incluindo a inicial. Um inteiro de 1 a 100. Padrão 10. |
| `maxDepth` | Não | Saltos de link a partir da página inicial, um inteiro de 0 a 5. Padrão 2. `0` lê só a página inicial. |
| `maxChars` | Não | Limita o `markdown` de cada página, um inteiro de 1.000 a 50.000. Padrão 20.000. |
| `includePaths`, `excludePaths` | Não | Padrões de caminho, como no [`WEB_MAP`](/pt/engines/web-map): até 20 cada, começando com `/`, com no máximo 200 caracteres. `*` corresponde dentro de um segmento, `**` entre segmentos. `excludePaths` prevalece. |
| `includeSubdomains` | Não | `true` segue links para os subdomínios do site. Padrão `false`. |
| `country` | Não | A região de onde as páginas são solicitadas. Padrão `US`. |

O rastreamento segue um link quando ele fica no site (com ou sem `www.`), corresponde aos padrões de caminho, leva a uma página web e não a um arquivo (PDFs, imagens, arquivos compactados e outros arquivos ficam de fora) e é permitido pelo `robots.txt` do site para todos os rastreadores.

## Resposta

Por exemplo:

```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"
}
```

| Campo | Descrição |
| - | - |
| `pages` | As páginas lidas, na ordem em que o rastreamento as encontrou. Cada uma traz os campos do `WEB_SCRAPE` mais `depth`, os saltos de link desde a página inicial. |
| `failed` | Páginas que não puderam ser lidas, cada uma com `url`, `depth` e o motivo do site em `error`. |
| `stopReason` | Por que o rastreamento terminou. Veja abaixo. |

| `stopReason` | Significado |
| - | - |
| `done` | Não restou link para seguir. |
| `max-pages` | `maxPages` páginas foram lidas. |
| `failures` | 10 páginas seguidas não puderam ser lidas, ou o total de páginas com falha chegou a `maxPages`. |
| `time` | O tempo do rastreamento acabou. Novas páginas deixam de ser iniciadas depois de cerca de 4 minutos. |

## Créditos

No envio, a tarefa reserva 1 crédito por página de `maxPages` (25 créditos no exemplo acima). Ao concluir, ela é cobrada em 1 crédito por página em `pages`, e o restante da reserva é liberado. As páginas em `failed` não são cobradas. Um rastreamento que retorna 3 de 25 páginas custa 3 créditos. Veja [Créditos e limites](/pt/concepts/credits-and-limits.md) para entender como funcionam as reservas.

## Limites e erros

* Quando a página inicial não pode ser lida, a tarefa falha com `PAGE_UNAVAILABLE`. Qualquer outra página que não possa ser lida vai para `failed` e o rastreamento continua.
* Opções inválidas retornam `422 VALIDATION_ERROR` indicando o campo.
* `WEB_CRAWL` ignora `markdown`, `rawResponse` e `searchQueries`. Recusa `html` e `analysis` com `422` e `citationAnalysis` com `400`; veja [flags não suportadas](/pt/engines/response-options.md#flags-não-suportadas).
* Os demais erros de requisição estão em [Erros](/pt/concepts/errors.md).

## Relacionados

* [Web map](/pt/engines/web-map.md) para listar os endereços de um site sem lê-los
* [Web scrape](/pt/engines/web-scrape.md) para uma única página


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