Tabela presa no site?
Acaba com o sofrimento de copiar tabela de site para planilha: a ferramenta abre a página em navegador real, localiza as tabelas e devolve os dados estruturados — linhas e colunas preservadas —, prontos para importar no Excel ou no Google Sheets. Sem célula deslocada, sem formatação embaralhada.
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.
Por que copiar e colar bagunça tudo
Quem já tentou sabe: seleciona a tabela no site, cola na planilha e o resultado é célula mesclada onde não devia, cabeçalho perdido, número que virou texto, coluna deslocada. O HTML da tabela carrega estilos e estruturas que a planilha interpreta do jeito dela — e cada site quebra de um jeito diferente. A extração estruturada elimina o intermediário: os dados saem da página já organizados em linhas e colunas limpas.
Da página para a planilha
A chamada leva a URL; a página abre em navegador de verdade, com JavaScript executado e até 30 segundos de carregamento. As tabelas presentes são identificadas e devolvidas como dados estruturados, cada uma separada, pela via assíncrona da API — task_id, status, resultado. Do lado de lá, é importar no Excel, no Google Sheets ou no seu sistema: a estrutura de linhas e colunas chega pronta, sem retrabalho.
Tabelas dinâmicas e paginadas
Como a extração acontece sobre a página renderizada, tabelas montadas por JavaScript entram normalmente. O limite honesto é o estado carregado: se a tabela pagina no navegador — página 1, 2, 3 — cada estado visível é uma extração. E tabelas “de mentira”, desenhadas com blocos que imitam linhas sem ser uma tabela de verdade, podem escapar da detecção; para essas, a extração com IA do KIT costuma ser o plano B certo.
Quanto custa
US$ 0,040 por chamada mais US$ 0,001 por URL — cerca de US$ 0,041 por página processada, com todas as tabelas dela incluídas no mesmo preço. Coletar uma tabela de tarifas por semana, o mês inteiro, custa menos de US$ 0,20. Sem assinatura, sem franquia: o preço publicado vale por uso, pago em dólar via PayPal.
Casos de uso
Tarifas de frete na planilha de logística
A Distribuidora Horizonte Verde puxa a tabela de prazos e tarifas do site da transportadora direto para a planilha de logística. O que era digitação mensal — com erro de dedo incluído — virou uma chamada de API e uma importação.
Indicadores públicos para análise
Um analista em Belo Horizonte coleta tabelas de estatísticas publicadas em portais do governo para a análise mensal do setor. Os dados chegam estruturados, com as colunas no lugar — o tempo vai para a análise, não para a formatação.
Tabela de preços do concorrente
Um lojista extrai a tabela de preços publicada pelo concorrente e compara com a dele na mesma planilha, lado a lado. A conferência que tomava a manhã de sexta agora está pronta antes do café.
Perguntas frequentes
A página tem várias tabelas. Recebo todas?
Sim — cada tabela identificada na página volta separada no resultado, e todas dentro do preço da mesma chamada. Você escolhe qual importar.
E tabela com paginação, tipo página 1, 2, 3?
A extração captura o estado carregado da página. Se a tabela pagina, cada página visível é uma chamada — para uma tabela de dez páginas, dez extrações, ainda assim centavos no total.
Em que formato os dados chegam?
Estruturados em linhas e colunas, num formato que planilhas e sistemas importam diretamente. A ideia é que entre o resultado e o Excel não exista etapa de limpeza.
Funciona com tabela feita de divs, que só parece tabela?
O alvo são tabelas de verdade no HTML. Layouts que imitam tabela com blocos podem não ser detectados — nesses casos, a extração de dados com IA resolve, porque lê o conteúdo em vez da estrutura.
Números com vírgula decimal brasileira chegam certos?
Os valores chegam como estão publicados na página — se o site mostra 1.234,56, é isso que você recebe. A interpretação como número cabe à sua planilha, que em português do Brasil trata vírgula decimal por padrão.
Os dados extraídos ficam retidos por vocês?
Não. A tabela é extraída para responder à sua tarefa e entregue a você; nada disso alimenta base nossa ou de terceiros.
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/web/tables \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/web/tables", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://ejemplo.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/tables",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://ejemplo.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/tables", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://ejemplo.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://ejemplo.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/tables", 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
{
"url": "https://ejemplo.com"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.tables",
"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
timeout_sec | 30 |
max_crawl_pages | 25 |
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. |
422 | task_failed | A tarefa falhou do nosso lado. Você não paga nada por ela. |