Endereço errado, entrega devolvida
Esta capacidade recebe um endereço escrito de qualquer jeito e devolve a versão conferida e padronizada — logradouro, número, complemento, bairro, cidade, UF e CEP — apontando o que está incompleto ou inconsistente. Funciona via API, com IA, pensada para e-commerce, logística e limpeza de cadastros.
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 custo real do endereço errado
Endereço incompleto não falha na hora do cadastro — falha dez dias depois, como pacote devolvido. Aí a conta chega dobrada: frete de volta, reenvio, atendimento ao cliente irritado e, no marketplace, reputação arranhada. O detalhe cruel é que a maioria dos erros é pequena: bairro faltando, “apto” sem número, CEP de outra cidade colado por engano. Exatamente o tipo de coisa que uma conferência automática pega antes de a etiqueta ser impressa.
O que a IA confere e padroniza
A análise interpreta o endereço como um atendente experiente: expande abreviações (“Av.”, “R.”, “BH”), separa os componentes no campo certo, aponta ausências (número? bairro?) e checa a coerência interna — um CEP que não combina com a cidade declarada é sinal amarelo. O resultado volta estruturado, campo a campo, pronto para gravar no sistema. Endereço com ambiguidade real vem sinalizado para revisão humana em vez de corrigido no chute.
Do checkout à migração de base
Dois momentos pedem a validação: na entrada (o checkout ou o formulário de cadastro chama a API e resolve o problema na fonte) e no estoque de dados (aquela base herdada, com milhares de endereços digitados por gerações de atendentes). Como a chamada é assíncrona, dá para processar a base inteira em lote durante a noite e acordar com uma lista curta de casos para revisar à mão.
Preço e fase beta
O custo tem duas partes: US$ 0,003 por chamada e US$ 0,0135 por endereço analisado — na prática, menos de dois centavos de dólar por registro. A capacidade está em beta: a interpretação segue recebendo ajustes, sobretudo para formatos raros. Para operações críticas de logística, o desenho recomendado é usar a validação como triagem e manter revisão humana nos endereços que voltarem sinalizados.
Casos de uso
Checkout que evita devolução
Uma loja virtual de cosméticos valida o endereço no fechamento do pedido. Cliente que digitou “Rua das Flores” sem número recebe o aviso na hora — não no dia em que o pacote voltar.
Migração de ERP
A Distribuidora Horizonte Verde S.A. migrou 8.000 cadastros de clientes para o ERP novo. A validação em lote padronizou os endereços e devolveu uma lista curta de casos ambíguos para o time revisar.
Mala direta sem desperdício
Uma gráfica que despacha catálogos confere a lista de destinatários antes da impressão das etiquetas: endereço inválido nem gasta selo.
Marketplace com vendedores novos
Uma plataforma confere o endereço comercial declarado por cada vendedor no onboarding, reduzindo cadastro fantasma.
Perguntas frequentes
Funciona bem com endereço brasileiro?
Sim — o formato brasileiro, com bairro, complemento e CEP, é tratado como cidadão de primeira classe: “Av. Paulista, 1578 – Bela Vista, São Paulo – SP, 01310-200” volta separado em campos, com as abreviações expandidas.
É uma consulta oficial aos Correios?
Não. A validação interpreta e confere o endereço com IA; não é o serviço oficial de CEP nem substitui a base dos Correios. Ela resolve o problema anterior: transformar texto bagunçado em endereço estruturado e apontar o que não fecha.
O que acontece com endereço incompleto?
Ele volta com a indicação do que falta — número, bairro, CEP — em vez de uma correção inventada. A decisão de completar fica com você ou com o próprio cliente, que é quem sabe onde mora.
Endereço é dado pessoal. Como fica a LGPD?
É, e deve ser tratado como tal: valide endereços dentro de uma finalidade legítima, como entregar o que foi comprado ou manter o cadastro exato. Do nosso lado, os dados enviados servem para produzir o resultado da tarefa — não para formar base própria.
Quanto custa validar uma base grande?
US$ 0,003 por chamada mais US$ 0,0135 por endereço analisado. O custo escala de forma linear e previsível: dá para orçar a limpeza da base inteira antes de começar, sem surpresa no fim.
O que significa estar em beta?
Que a capacidade funciona, mas o modelo ainda é ajustado com frequência. Endereços muito fora do padrão podem ter interpretação instável entre versões — mais um motivo para manter os casos sinalizados sob revisão humana por enquanto.
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/verify/address \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/verify/address", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/verify/address",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/verify/address", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/verify/address", 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
{
"items": [
"valor-1",
"valor-2"
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "verify.address",
"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.
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. |