Como indexar um site inteiro para busca
Aponta para as URLs do seu site e monta um índice de busca semântica com o conteúdo delas. Cada página é aberta num navegador de verdade — o que carrega via JavaScript também entra — e vetorizada. Para quem quer busca decente no site, na documentação ou no blog sem mexer no código.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
Sem plugin, sem script, sem deploy
Nada é instalado no seu site: você informa as URLs, e as páginas são visitadas e processadas do lado do KIT. Não tem tag no HTML, não tem plugin de CMS, não tem pedido para o dev “quando sobrar tempo”. Isso importa porque a maioria dos projetos de busca morre na fila do deploy — aqui o índice nasce de fora para dentro, e o site continua exatamente como está.
Um navegador de verdade visita suas páginas
Cada URL é aberta num navegador real, como se fosse um visitante: o JavaScript roda, o conteúdo dinâmico carrega e só então a página é lida e vetorizada. Sites feitos em React, Vue ou qualquer vitrine que monta o conteúdo no cliente — justamente os que ferramentas simples de rastreio enxergam em branco — entram no índice com o conteúdo completo.
Faça as contas antes de indexar
O preço é US$ 0,040 por chamada mais US$ 0,0025 por página processada. Um site institucional de 40 páginas custa US$ 0,14; um blog com 200 posts, US$ 0,54; uma documentação com 1.000 páginas, US$ 2,54. Como a tarifa é por página, dá para começar pequeno — só as páginas de produto, por exemplo — e ampliar o índice quando a busca provar o valor.
Mantendo o índice atualizado
Página indexada é retrato do momento da visita. Quando o conteúdo muda — preço novo, política atualizada, post publicado —, reindexe as URLs alteradas: cada nova passagem paga a mesma tarifa por página, sem pegadinha de “sincronização premium”. Uma rotina mensal para o conteúdo estável e uma chamada extra a cada publicação importante mantêm a busca fiel ao site por centavos.
Casos de uso
Documentação de software
A TecnoSul Soluções Digitais indexou as 300 páginas da documentação do seu sistema de gestão. Os clientes acham “como cancelar uma nota emitida errada” mesmo quando o manual chama isso de “inutilização de numeração”.
Blog com dez anos de arquivo
Um portal de finanças pessoais de Belo Horizonte indexou 700 posts. A busca antiga só achava título; agora “vale a pena quitar o financiamento antes?” encontra os três artigos que respondem exatamente isso.
Perguntas frequentes da loja
Uma loja virtual de móveis indexou as páginas institucionais, de frete e de troca. O widget de atendimento consulta o índice antes de abrir chamado humano — e metade das dúvidas para de virar ticket.
Perguntas frequentes
Preciso instalar alguma coisa no meu site?
Não. O índice vive do lado do KIT e é montado visitando as suas URLs públicas. Seu site não recebe código, plugin nem configuração nova.
Páginas que só carregam com JavaScript entram?
Entram: cada página é aberta num navegador real, que executa o JavaScript antes da leitura. Conteúdo montado no cliente é lido como um visitante o veria.
Posso indexar um site que não é meu?
Tecnicamente a tarefa processa qualquer página pública, mas a responsabilidade de uso é sua: respeite os termos do site e os direitos sobre o conteúdo. O caso de uso pensado é o seu próprio site — ou um site cujo dono autorizou.
Quanto custa indexar 1.000 páginas?
US$ 2,50 de processamento (1.000 × US$ 0,0025) mais US$ 0,040 da chamada: US$ 2,54. Reindexar depois custa o mesmo valor por página visitada.
A indexação deixa meu site lento?
As visitas são como as de um visitante comum, página a página — nada de enxame de requisições. Para um site que aguenta o seu tráfego normal, a passagem do indexador é imperceptível.
O conteúdo indexado fica público em algum lugar?
Não. O índice responde apenas às suas chamadas de API. Ele é uma cópia de trabalho para a sua busca, não uma republicação do site.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/search/index-url \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/search/index-url", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/search/index-url",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/search/index-url", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/search/index-url", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"input": "…"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "search.index_url",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_chunks | 10000 |
max_tokens | 20000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
413 | input_too_large | A entrada passou do tamanho máximo desta tarefa. Confira os limites publicados. |
422 | task_failed | A tarefa falhou do nosso lado. Você não paga nada por ela. |