Sem KYC — sem documento de identidade, sem selfie, sem documentos. Pague com cripto: BTC, USDT, USDC, ETH, SOL, LTC
Idioma: Português
Obtenha uma chave de API

Docs · referência da API

Endpoint extract: leia as URLs que seu agente já tem

Às vezes o agente já tem os links: um usuário colou, uma pesquisa anterior listou ou um documento cita. /extract lê essas páginas e retorna o conteúdo principal, com o mesmo leitor e as mesmas regras do /search.

Última atualização: · 5 min de leitura

Resposta rápida

Como leio páginas web das quais já tenho as URLs?

Envie até 20 URLs para POST https://llmwebsearch.com/api/v1/extract. LLMWebSearch lê cada página pública e retorna seu conteúdo principal em Markdown ou texto simples, com um status por URL. O faturamento é de 1 crédito para cada grupo iniciado de 3 páginas lidas, a partir de US$ 1,20/1K pesquisas por crédito de pesquisa em outubro de 2026. O robots.txt é respeitado. Sem KYC; pague com cripto.

/extract at a glance

MétodoPOST com um body JSON
URLhttps://llmwebsearch.com/api/v1/extract
Entradaurls: 1 a 20 endereços http ou https
SaídaConteúdo principal por URL, em markdown (padrão) ou text
CobrançaLer páginas cujas URLs você já tem custa 1 crédito por cada grupo iniciado de 3 páginas devolvidas com conteúdo, até 20 URLs por chamada; URLs recusadas ou com falha não são contadas
robots.txtNosso leitor respeita o robots.txt: ele se identifica como LLMWebSearch, segue as regras que um site escreve para ele ou para todos os robôs e deixa de fora o conteúdo de qualquer página que não tem permissão para ler
Leitor de páginasLLMWebSearch/1.0 (+https://llmwebsearch.com/bot/)

Ler uma lista de URLs

POST/api/v1/extract

Busca cada URL em paralelo e retorna seu conteúdo principal, na ordem em que você enviou. Cada item tem seu próprio content_status, então uma página recusada não faz a chamada falhar. O exemplo lê três páginas; os títulos e valores são ilustrativos.

Autenticação: chave de API no header Authorization: Bearer API_KEY.

Corpo da requisição

CampoTipoObrigatórioDescrição
urlsstring[]Sim1 a 20 endereços http ou https. Endereços privados, locais e de metadados de nuvem são recusados.
formatstringNãomarkdown (padrão) ou text.
max_charsintegerNãoLimite de tamanho do conteúdo de cada página, de 500 a 50.000 caracteres. Padrão 6.000.
Exemplo: three pages, longer content
{
  "urls": [
    "https://docs.example.com/security/key-rotation",
    "https://blog.example.org/key-rotation-checklist",
    "https://example.com/changelog"
  ],
  "max_chars": 20000
}

Resposta 200

{
  "credits_used": 1,
  "results": [
    {
      "url": "https://docs.example.com/security/key-rotation",
      "title": "Rotating API keys",
      "content_status": "ok",
      "content": "# Rotating API keys\n\n## Zero-downtime rotation\n\n1. Create a second key...",
      "word_count": 948
    },
    {
      "url": "https://blog.example.org/key-rotation-checklist",
      "content_status": "blocked_by_robots"
    },
    {
      "url": "https://example.com/changelog",
      "title": "Changelog",
      "content_status": "ok",
      "content": "# Changelog\n\n## 2026-10-20\n\n- New export format...",
      "word_count": 2204
    }
  ]
}

Exemplos de código

curl
curl -s "https://llmwebsearch.com/api/v1/extract" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"urls": ["https://docs.example.com/security/key-rotation", "https://example.com/changelog"], "max_chars": 20000}'
Python
import os
import requests

resp = requests.post(
    "https://llmwebsearch.com/api/v1/extract",
    headers={"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]},
    json={"urls": ["https://docs.example.com/security/key-rotation", "https://example.com/changelog"]},
    timeout=60,
)
for page in resp.json()["results"]:
    print(page["url"], page["content_status"], page.get("word_count", 0))
Node.js
const res = await fetch('https://llmwebsearch.com/api/v1/extract', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.LLMWEBSEARCH_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ urls: ['https://docs.example.com/security/key-rotation', 'https://example.com/changelog'] }),
});
for (const page of (await res.json()).results) console.log(page.url, page.content_status);

Quando devo usar extract em vez de read em uma pesquisa?

Use extract quando as URLs não vêm da pesquisa que você está executando. Um usuário cola um link, um documento cita três fontes, ou uma primeira pesquisa com read=0 deixou o modelo escolher quais páginas merecem uma leitura completa.

Use read dentro de /search quando você simplesmente quer os principais resultados lidos na mesma chamada. É uma requisição em vez de duas, e até 3 páginas estão incluídas no único crédito da pesquisa.

Como as chamadas extract são cobradas?

Um crédito para cada grupo iniciado de 3 páginas lidas. A contagem usa as páginas que voltam com conteúdo: uma URL recusada pelo robots.txt ou pelo site, ou que falha ao carregar, não é contada.

Páginas lidasCréditos
1 a 31
4 a 62
7 a 93
19 ou 207

A resposta sempre informa o total em credits_used. Uma chamada em que nenhuma página pôde ser lida não custa nada.

O que cada item da resposta me diz?

Cada item repete o url que você enviou e traz um content_status. Com ok, você também recebe a página title, seu content principal e seu word_count. Caso contrário, o status informa o motivo: blocked_by_robots, blocked_by_site_policy, target_refused com o target_status do site, fetch_failed, fetch_timeout ou unsupported_content.

Os itens mantêm a ordem da sua lista urls, então você pode correlacioná-los por índice e também por URL. A página formato de resposta descreve cada status.

Quais URLs são recusadas antes de qualquer fetch?

Endereços que apontam para redes privadas, para a máquina local ou para serviços de metadados de nuvem são recusados. Isso impede que alguém use nosso leitor para acessar sistemas internos. Um redirecionamento que leva a esse tipo de endereço também é recusado, e no máximo 5 redirecionamentos são seguidos.

O endereço deve usar http ou https. Uma chamada em que urls está vazio, tem mais de 20 entradas ou contém um endereço malformado retorna 400 invalid_parameter, sem custo.

O extract segue as mesmas regras da pesquisa?

Sim. É o mesmo leitor, que se apresenta como LLMWebSearch/1.0 (+https://llmwebsearch.com/bot/). Um site que define Content-Signal: ai-input=no no seu robots.txt mantém as suas páginas fora do conteúdo dos seus resultados. Quando um site recusa o nosso leitor, o resultado volta sem conteúdo e com o status do site: nunca resolvemos CAPTCHAs, não entramos em contas nem contornamos um bloqueio ou um paywall.

Páginas que exigem login, ou que ficam atrás de paywall, voltam sem conteúdo. Aponte o agente para outra fonte, ou para uma página que você tem permissão de ler com sua própria sessão de navegador.

Endpoint extract: perguntas frequentes

Que tipos de arquivo ele consegue ler?

Páginas web são o que ele foi feito para ler. Um link para um vídeo, um arquivo compactado ou outro arquivo sem texto legível volta como unsupported_content, e essa URL não é contada no preço.

Uma URL enviada duas vezes é lida duas vezes?

Envie cada URL uma vez. Se a lista puder conter duplicatas, remova-as do seu lado primeiro, para que os resultados correspondam à sua lista um a um.

A renderização de JavaScript tem custo extra?

Não. Quando uma página precisa de um navegador para exibir seu texto, ela é renderizada sem custo adicional.

O extract consegue ler uma página em que estou logado?

Não. O leitor nunca entra em contas e não envia cookies seus. Quando um site recusa o nosso leitor, o resultado volta sem conteúdo e com o status do site: nunca resolvemos CAPTCHAs, não entramos em contas nem contornamos um bloqueio ou um paywall.

A partir de US$ 1,20/1K pesquisas · sem KYC

Obtenha uma chave de API