Duplicados que o Excel não vê
A deduplicação semântica encontra registros duplicados que não são idênticos: "José Almeida e Cia" e "Jose Almeida & Cia Ltda", o mesmo produto com duas descrições, o mesmo cliente com grafias diferentes. Funciona via API, comparando o significado dos textos — não só os caracteres — e devolve os grupos de prováveis duplicatas.
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.
O duplicado que o Excel não enxerga
O filtro "remover duplicatas" só pega o que é exatamente igual, caractere por caractere. Mas as bases reais estão cheias de quase-iguais: com e sem acento, com e sem "Ltda", abreviado e por extenso, com um erro de digitação. Para o filtro comum, são registros distintos; para o seu negócio, é o mesmo cliente recebendo duas cobranças ou o mesmo produto duas vezes no catálogo. É esse duplicado — o parecido — que esta capacidade encontra.
Como a semelhança é calculada
Cada registro é convertido em uma representação numérica do seu significado (embedding). Registros com significado próximo ficam próximos nessa representação, mesmo com grafias diferentes — é assim que "Padaria Pão Dourado" e "Panificadora Pao Dourado Ltda" caem no mesmo grupo. Você controla o limiar de semelhança: mais rígido para reduzir falsos positivos, mais flexível para caçar até as variações distantes. A saída agrupa os candidatos a duplicata para revisão ou fusão.
Preço e forma de uso
Funciona via API, com pagamento por uso: US$ 0,002 por chamada mais US$ 0,0015 por 1.000 linhas processadas. Uma base de 100.000 cadastros custa cerca de US$ 0,15 para analisar — publicado, sem mensalidade e sem plano. O limite é 25 MB por arquivo. Não há versão gratuita no navegador: a comparação semântica exige processamento de modelo, e ele é cobrado por uso.
Para tirar o máximo da análise
Concentre a comparação nas colunas que identificam o registro — nome, razão social, descrição — e deixe de fora as que naturalmente variam, como datas e valores. Rode primeiro com limiar rígido, revise os grupos encontrados e só então flexibilize. E trate o resultado como sugestão qualificada: a decisão de fundir dois cadastros é sua, especialmente quando envolve histórico financeiro.
Casos de uso
Unificar a base de clientes depois de anos de cadastro livre
A base da Distribuidora Horizonte Verde S.A. tem "Mercado São Jorge", "Mercado Sao Jorge ME" e "Merc. S. Jorge" — o mesmo cliente três vezes, com três históricos. A análise semântica agrupa os três para o time fundir num cadastro só.
Enxugar o catálogo do e-commerce
Depois de importar produtos de dois fornecedores, a loja ficou com "Furadeira 500W 110v" e "Furadeira de Impacto 500 W (110 volts)" como itens distintos. A deduplicação por semelhança aponta os pares para revisão antes de o cliente ver o catálogo dobrado.
Preparar a migração de CRM sem herdar sujeira
Antes de levar 80.000 contatos para o CRM novo, a equipe roda a análise semântica e resolve os quase-duplicados na origem — porque migrar duplicata é pagar duas vezes pelo mesmo problema.
Perguntas frequentes
Qual a diferença para a remoção de duplicatas comum?
A comum compara caracteres: só remove o que é idêntico. A semântica compara significado: encontra "Jose Almeida & Cia" e "José Almeida e Cia Ltda" como o mesmo registro. Para linhas exatamente iguais, use a versão comum — que é gratuita no navegador.
A ferramenta apaga os duplicados sozinha?
Ela agrupa os candidatos e entrega para sua decisão. Em dados de negócio, fusão automática sem revisão é receita para perder histórico — preferimos te dar o mapa e deixar o volante com você.
Quanto custa analisar minha base?
US$ 0,002 pela chamada mais US$ 0,0015 por 1.000 linhas. Exemplo real: 50.000 cadastros saem por menos de US$ 0,08. Sem mensalidade; paga-se pelo que se usa.
Funciona com nomes e textos em português?
Sim — a comparação é por significado e lida com acentuação, abreviações e variações de grafia comuns em razão social e nome próprio brasileiros.
Meus cadastros têm dados pessoais. Como isso é tratado?
Os dados são processados para gerar o resultado da análise — esse é o uso, e os limites estão publicados. Para a sua documentação de LGPD, o tratamento é pontual e vinculado à tarefa.
Tem limite de tamanho?
25 MB por arquivo por chamada. Bases maiores podem ser analisadas em partes.
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/data/dedupe-semantic \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/dedupe-semantic", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/dedupe-semantic",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/dedupe-semantic", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/dedupe-semantic", 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
{
"text": "…"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.dedupe_semantic",
"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_mb | 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. |