Formate um número de telefone internacional por país
Números de telefone são fáceis de armazenar como texto livre, mas difíceis de apresentar de maneira uniforme.
Executar grátis
Este formatador recebe um número e um código de país de duas letras, remove a pontuação comum, confere o código de chamada internacional quando informado e valida a quantidade exata de dígitos nacionais. Em seguida, devolve uma forma internacional legível e uma forma E.164 compacta. Comprimentos incorretos e códigos incompatíveis geram um erro claro, em vez de um resultado aparentemente válido, porém pouco confiável.
Informe o número e o país ao qual ele pertence
Digite o número de telefone no formato que você possui e selecione o código de país de duas letras. A entrada nacional pode conter separadores comuns, como espaços, parênteses, pontos ou hífens. Você também pode enviar um número internacional iniciado por sinal de mais ou usar o prefixo internacional 00. Quando há um prefixo internacional, o formatador verifica se o código de chamada corresponde ao país selecionado. Essa conferência é importante porque a mesma sequência de dígitos nacionais pode parecer estruturalmente válida em mais de um lugar. Portanto, o país é uma instrução explícita, e não uma suposição feita com base nos dígitos. Nos países que usam zero de tronco em chamadas nacionais, a entrada pode manter esse zero; ele é removido quando a notação internacional exige. O resultado inclui o código ISO normalizado, o código de chamada, o número nacional significativo, o valor E.164 compacto e uma versão espaçada para exibição. Assim, a resposta serve tanto para interfaces quanto para armazenamento normalizado e comparações posteriores.
Entenda o que a validação garante
Esta ferramenta faz uma validação estrutural para os países disponíveis no seletor. Ela confere os caracteres permitidos, a relação entre um código de chamada explícito e o país escolhido, além da quantidade esperada de dígitos nacionais. Uma divergência gera um erro que informa o país, a quantidade esperada e a recebida. Esse comportamento é rigoroso de propósito: completar, cortar ou inventar dígitos silenciosamente poderia criar um número que não pertence a ninguém. A validade estrutural não prova que uma linha esteja atribuída, ativa ou acessível, que seja móvel nem que pertença a determinada pessoa. A ferramenta também não consulta uma operadora nem envia mensagem de verificação. O formatador trabalha somente com o texto fornecido e uma tabela fixa de regras nacionais. Como não há consulta de rede, a mesma entrada sempre produz a mesma resposta, e o número não é compartilhado com serviços de diretório. Considere a saída uma representação confiável de uma estrutura compatível, não uma prova de que o assinante existe ou consentiu em receber contato.
Use corretamente as duas formas normalizadas
O campo formatado foi feito para exibição: começa com o código de chamada precedido pelo sinal de mais e separa os dígitos nacionais em grupos comuns para cada país. O campo E.164 remove esses espaços e é mais adequado para bancos de dados, comparações de igualdade, cargas de API e links que exigem um valor internacional compacto. Armazene o código de país junto com o número normalizado quando seu aplicativo precisar preservar o contexto declarado pelo usuário. Se você recebe telefones em um formulário, valide-os antes de salvar, para que um erro na quantidade de dígitos possa ser corrigido enquanto a fonte ainda está disponível. Em importações, mantenha a célula original em uma coluna de auditoria e grave o resultado normalizado em outro campo; isso impede que a limpeza apague evidências sobre a entrada. Trate sempre telefones como texto, nunca como números, para preservar zeros iniciais. Por fim, lembre-se de que formatação não significa permissão: aplique suas regras habituais de consentimento, privacidade e mensagens antes de ligar ou escrever para qualquer número retornado.
Casos de uso
Normalizar números informados por clientes
Rejeite imediatamente quantidades incorretas de dígitos e salve uma representação internacional uniforme.
Limpar uma importação de contatos
Converta diferentes pontuações e notações nacionais em campos estáveis de exibição e E.164.
Preparar números para outra API
Gere um valor internacional compacto e mantenha uma versão agrupada e legível para conferência.
Perguntas frequentes
Quanto custa uma solicitação à API?
Cada solicitação custa US$ 0,002. A versão para navegador pode ser executada localmente nesta página.
Um resultado válido significa que o número está ativo?
Não. Ele confirma a estrutura e a quantidade de dígitos do país aceito, não atribuição, alcance, titularidade ou consentimento.
Posso incluir espaços ou pontuação?
Sim. Espaços, parênteses, pontos e hífens são ignorados. O sinal de mais só é permitido no início.
Posso enviar um número internacional?
Sim. Use um sinal de mais no início ou o prefixo 00. O código de chamada deve corresponder ao país selecionado.
Por que o zero nacional inicial foi removido?
Alguns países usam um zero de tronco apenas em chamadas nacionais. A notação internacional o omite, e o valor normalizado segue essa convenção.
Por que meu país não aparece?
A capacidade oferece somente países com uma regra explícita e testada. Para planos não aceitos, retorna um erro em vez de fazer suposições.
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/phone-number-format \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"phone_number":"(202) 555-0147","country_code":"US"}'const res = await fetch("https://api.kit.forhosting.com/data/phone-number-format", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"phone_number": "(202) 555-0147",
"country_code": "US"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/phone-number-format",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"phone_number": "(202) 555-0147",
"country_code": "US"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/phone-number-format", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"phone_number":"(202) 555-0147","country_code":"US"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"phone_number":"(202) 555-0147","country_code":"US"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/phone-number-format", 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
{
"phone_number": "(202) 555-0147",
"country_code": "US"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.phone_number_format",
"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. |