> ## 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 página web para Markdown (WEB_SCRAPE)

> Leia uma página web ou um PDF e receba o conteúdo principal em Markdown, com título, metadados e imagens.

`WEB_SCRAPE` lê uma página e retorna o conteúdo principal em Markdown: títulos, parágrafos, listas, tabelas, links e imagens, sem o cabeçalho, o rodapé e a navegação do site. Páginas que um script desenha, como páginas de produto de lojas, são renderizadas antes da leitura. Para ler um resultado de busca, passe um `link` dos `organicResults` do [`GOOGLE_SERP`](https://docs.querying.ai/pt/engines/google-serp).

| | |
| - | - |
| `taskType` | `WEB_SCRAPE` |
| Entrada | `url` (obrigatório); `maxChars`, `country` |
| Créditos | 1 por tarefa, inclusive para um PDF de várias páginas |
| País | `US`, ou `KR` para as lojas Coupang e Olive Young, quando você não envia nenhum. |
| 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_SCRAPE", "payload": { "url": "https://www.example.com/guide", "maxChars": 50000 } }'
```

A tarefa roda de forma assíncrona. Leia o resultado como descrito em [Tarefas assíncronas](https://docs.querying.ai/pt/concepts/async-tasks.md).

## Parâmetros

| Campo | Obrigatório | Descrição |
| - | - | - |
| `url` | Sim | Um endereço `http` ou `https` público na porta padrão, com até 2.048 caracteres. Endereços com credenciais, hosts privados ou internos, ou outras portas retornam `422 VALIDATION_ERROR`. |
| `maxChars` | Não | Limita `markdown`, um inteiro de 1.000 a 200.000. Padrão 100.000. |
| `country` | Não | O idioma e a região para os quais a página é solicitada. Sem ele, as lojas Coupang e Olive Young da Coreia usam `KR` e todas as outras páginas usam `US`. |

## Resposta

Por exemplo:

```json theme={"theme":"css-variables"}
{
  "url": "https://www.example.com/guide",
  "finalUrl": "https://www.example.com/guide",
  "statusCode": 200,
  "title": "...",
  "description": "...",
  "author": "...",
  "publishedAt": "2026-09-12T07:36:36Z",
  "siteName": "...",
  "language": "en",
  "image": "https://...",
  "markdown": "# ...\n\n...\n\n![...](https://...)",
  "images": [{ "url": "https://...", "alt": "..." }],
  "truncated": false
}
```

| Campo | Descrição |
| - | - |
| `url` | O endereço que você enviou. |
| `finalUrl` | O endereço depois dos redirecionamentos. |
| `statusCode` | O status HTTP da página lida. |
| `markdown` | O conteúdo principal. Nunca vem vazio em uma tarefa concluída. |
| `images` | As imagens de `markdown`, na ordem em que aparecem. |
| `truncated` | `true` quando `markdown` parou em `maxChars`. O corte cai numa quebra de parágrafo sempre que possível. |
| `title`, `description`, `author`, `publishedAt`, `siteName`, `language`, `image` | Presentes quando a página os declara. |

## PDFs

HTML, texto simples e PDFs com texto são suportados. Um PDF retorna o texto na ordem das páginas, o título, o autor, o assunto (como `description`) e o idioma quando disponíveis, e `images: []`. OCR, anexos e reconstrução do layout não são suportados.

| Limite de PDF | Valor |
| - | - |
| Tamanho do download | 8 MiB |
| Páginas | 100 |
| Texto extraído | 1.000.000 de caracteres |
| Tempo de extração | 20 segundos |

O documento inteiro é verificado independentemente de `maxChars`; só o Markdown retornado é encurtado. PDFs sem texto, criptografados, danificados, incompletos ou acima dos limites falham com `PAGE_UNAVAILABLE`.

## Limites e erros

* Uma página que não pode ser lida faz a tarefa falhar com `PAGE_UNAVAILABLE` e o motivo: um formato não suportado, uma página que responde 404 ou 410, ou um site que recusa a requisição.
* Um redirecionamento para um endereço que viola as regras de `url` faz a tarefa falhar. As regras são verificadas de novo a cada salto de redirecionamento.
* `WEB_SCRAPE` ignora `markdown`, `rawResponse` e `searchQueries`. Recusa `html` e `analysis` com `422` e `citationAnalysis` com `400`; veja [flags não suportadas](https://docs.querying.ai/pt/engines/response-options.md#flags-não-suportadas).
* Os demais erros de requisição estão em [Erros](https://docs.querying.ai/pt/concepts/errors.md).

## Relacionados

* [Web crawl](https://docs.querying.ai/pt/engines/web-crawl.md) para ler muitas páginas de um site
* [Web map](https://docs.querying.ai/pt/engines/web-map.md) para listar antes os endereços de um site


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