Resposta rápida
Como faço minha primeira pesquisa com uma API de pesquisa web para agentes de IA?
Envie sua pergunta para POST https://llmwebsearch.com/api/v1/search com sua chave de API como Bearer token. LLMWebSearch executa uma pesquisa web ao vivo e retorna até 20 resultados classificados, com as 3 primeiras páginas lidas e retornadas em Markdown. Um crédito paga toda essa chamada, a partir de US$ 1,20/1K pesquisas em outubro de 2026. Sem KYC; pague com cripto.
A API em um cartão
| URL base | https://llmwebsearch.com/api/v1 |
|---|---|
| Pesquisar | POST ou GET https://llmwebsearch.com/api/v1/search |
| Ler URLs que você já tem | POST https://llmwebsearch.com/api/v1/extract |
| Créditos restantes | GET https://llmwebsearch.com/api/v1/credits, sem custo |
| Autenticação | Passe sua chave de API como Bearer token no header Authorization, ou como o parâmetro de consulta api_key |
| Cobrança | Um crédito paga uma pesquisa: até 20 resultados classificados, com as páginas dos 3 primeiros lidas e devolvidas em Markdown. Ler de 4 a 10 páginas custa 2 créditos. Uma chamada que termina em erro não custa nada |
| Nosso leitor de páginas | LLMWebSearch/1.0 (+https://llmwebsearch.com/bot/), token do robots.txt LLMWebSearch |
| Menor pacote | 5.000 pesquisas por US$ 9,25; os créditos nunca expiram |
Como faço para obter uma chave de API?
Não há formulário de cadastro. Esperar a blockchain confirmar sua recarga é a parte mais demorada.
Adicione saldo com cripto
Envie pelo menos US$ 25 em BTC, USDT, USDC, ETH, SOL, LTC. Entre com um número de conta; o endereço de email é opcional.
Compre um pacote de pesquisas
5.000 pesquisas por US$ 9,25 é mais que suficiente para integrar a pesquisa a um agente e testar todas as opções.
Copie a chave
Assim que a sua recarga em cripto for confirmada e um pacote for comprado, sua chave de API estará esperando no dashboard. Guarde-a em uma variável de ambiente chamada
LLMWEBSEARCH_API_KEY.
Como é a primeira pesquisa?
É um único POST HTTPS com um corpo JSON pequeno. Só q é obrigatório: a pergunta ou as palavras-chave, como uma pessoa digitaria. Os padrões já atendem à maioria dos agentes. Você recebe 5 resultados classificados, e as páginas por trás dos 3 primeiros são lidas e retornadas como Markdown de até 6.000 caracteres cada.
Os três trechos abaixo enviam a mesma pesquisa. Escolha o que combina com sua stack, defina LLMWEBSEARCH_API_KEY no seu shell e execute.
curl -s "https://llmwebsearch.com/api/v1/search" \
-H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "how to rotate api keys without downtime", "max_results": 5, "read": 3}'import os
import requests
resp = requests.post(
"https://llmwebsearch.com/api/v1/search",
headers={"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]},
json={"q": "how to rotate api keys without downtime", "max_results": 5, "read": 3},
timeout=60,
)
resp.raise_for_status()
data = resp.json()
print("credits used:", data["credits_used"])
for r in data["results"]:
size = r.get("word_count", 0)
print(r["position"], r["title"], r["url"], r["content_status"], size, "words")
const res = await fetch('https://llmwebsearch.com/api/v1/search', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.LLMWEBSEARCH_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ q: 'how to rotate api keys without downtime', max_results: 5, read: 3 }),
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.error.code}: ${data.error.message}`);
const first = data.results.find((r) => r.content_status === 'ok');
console.log(first ? `${first.title}\n${first.url}\n\n${first.content.slice(0, 600)}` : 'No page could be read.');
O que vem na resposta?
Um objeto JSON com sua query, o horário da chamada em created_at, o preço em credits_used e um array results em ordem de classificação. Todo resultado tem seu position, title, url, host e snippet, além de published_at quando a data é conhecida.
O campo a observar é content_status. Quando ele diz ok, a página foi lida e seu conteúdo principal está em content, com um word_count. Resultados além de read dizem not_requested. Uma página que não pôde ser lida informa o motivo, por exemplo blocked_by_robots. A página do formato de resposta explica cada campo.
Quais parâmetros vou alterar com mais frequência?
Seis parâmetros cobrem quase todo agente. Todos são opcionais.
| Parâmetro | O que ele altera |
|---|---|
max_results | Quantos resultados classificados retornam, de 1 a 20 |
read | Quantos dos primeiros resultados são lidos, de 0 a 10 |
max_chars | O limite de tamanho do conteúdo de cada página, de 500 a 50.000 caracteres |
topic e time_range | Notícias em vez de páginas web, e uma janela de atualidade |
include_domains | Resultados apenas dos sites que você listar |
country e language | Onde e em qual idioma a pesquisa é executada |
A referência de pesquisa documenta cada um com um exemplo, além de format e exclude_domains.
Quantos créditos uma chamada usa?
A maioria das chamadas usa um. O conjunto completo de regras:
- Pesquisa lendo de 0 a 3 páginas: 1 crédito. Isso inclui até 20 resultados classificados.
- Pesquisa lendo de 4 a 10 páginas: 2 créditos.
- Extract: Ler 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.
- Erros: 0 crédito. Um parâmetro inválido, uma chave errada, saldo zerado ou uma pesquisa que falhou não custam nada.
- Uma página que não pôde ser lida dentro de uma pesquisa bem-sucedida não altera o preço dela.
- Consultar seu saldo com
GET https://llmwebsearch.com/api/v1/creditsé gratuito.
Os créditos de pesquisa não têm data de expiração: o que você não usar este mês continua lá no ano que vem.
O que acontece quando um site não quer ser lido?
O resultado ainda aparece, com título, URL e snippet, mas sem o conteúdo da página. Nosso 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. 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 responde ao nosso leitor com uma recusa, o resultado carrega content_status: "target_refused" e o status HTTP do próprio site em target_status. 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 página de erros lista todos os status e os que valem uma nova tentativa.
Para onde vou depois?
- Endpoint de pesquisa Cada parâmetro de /search, com exemplos
- Endpoint de extração Ler de 1 a 20 URLs que você já tem
- Formato da resposta Cada campo e cada content_status
- Erros Erros HTTP, status de página, regras de nova tentativa
- Python requests, httpx assíncrono, uma resposta com citações
- Node.js fetch, um pequeno pool, o mesmo loop de citações
- curl e jq Receitas para o terminal
- Servidor MCP search_web para Claude Code e Claude Desktop
- LangChain e LlamaIndex Uma ferramenta e um retriever
- OpenAI function calling Schema da ferramenta, loop e Agents SDK
- n8n Ferramenta de requisição HTTP para um Agente de IA
- OpenClaw Nossa pesquisa via MCP
Início rápido: perguntas comuns
Preciso de um SDK?
Não. LLMWebSearch é uma API HTTPS simples, então qualquer cliente HTTP funciona. Esta documentação traz código pronto para copiar e colar em Python, Node.js e curl, além de definições de ferramentas para MCP, LangChain, LlamaIndex, OpenAI function calling, n8n e OpenClaw. Não publicamos nenhum pacote.
A API escreve a resposta para mim?
Não. A API retorna fontes, não uma resposta escrita: o seu próprio modelo lê as páginas, escreve a resposta e cita as URLs. Isso deixa você livre para escolher o modelo, o prompt e o estilo de citação.
Posso colocar a chave na URL?
Sim, como o parâmetro de consulta api_key de GET /search. O header Authorization é a opção mais segura, porque URLs acabam em logs e no histórico do shell. Crie uma chave de API por agente, app ou colega de equipe e revogue qualquer uma delas no dashboard sem afetar as outras.
Existe um plano gratuito para testar?
Não. Não há plano gratuito: o pacote de 5.000 pesquisas é a forma de experimentar, comprado a partir da recarga mínima; o que você adicionou apenas para atingir esse mínimo volta mediante solicitação em até 30 dias, em USDT ou USDC, desde que não tenha sido gasto.