Validar e formatar um número de telefone
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
number | string | Sim | — | Obrigatório, 3–32 caracteres. Dígitos ASCII, espaços, parênteses e hifens, com um + inicial opcional. Ramais e caracteres alfabéticos não são aceitos. |
country | string | Condicional | — | Código ISO 3166-1 alfa-2 em maiúsculas. Obrigatório para um número nacional; opcional quando number começa com +. Omita se não for usado. |
POST /phone/validate aceita number e country opcional. Use um número internacional começando com + ou informe um código ISO de país em maiúsculas para um número nacional. A resposta contém valid, possible, e164, country e country_calling_code dentro de data, além do mesmo envelope meta. Isso verifica a estrutura do número, não a existência de um assinante. Uma validação concluída custa 1 crédito, inclusive para resultados inválidos. A resposta sintética abaixo ilustra um número inválido, independentemente do exemplo de requisição.
Escolha uma linguagem de programação. Configure sua chave de API, depois execute o exemplo no seu servidor.
Cada requisição de previsão é uma nova operação cobrada, inclusive as novas tentativas. Estes exemplos não fazem novas tentativas automaticamente. Verifique o status da cobrança antes de enviar outra requisição.
Antes de executar: acesso e tratamento de erros
Execute estes exemplos no seu servidor. Defina GENDERAPI_API_KEY no ambiente do processo com a sua chave de API existente. Confirme que meta.access.mode é api_key: uma chave não reconhecida pode levar ao teste por IP.
Respostas JSON com HTTP 4xx e 5xx preservam o corpo do erro e retornam um código de saída diferente de zero. Verifique code, action e meta.usage.billing_status antes de fazer uma nova tentativa.
Guia de erros e novas tentativas →cURL 7.76+ em um shell POSIX. Execute no seu terminal. Documentação do ambiente de execução
Node.js 22+; fetch nativo. Salve como example.mjs e execute node example.mjs. Documentação do ambiente de execução
Python 3.10+; biblioteca padrão. Salve como example.py e execute python3 example.py. Documentação do ambiente de execução
PHP 8+ com a extensão cURL. Salve como example.php e execute php example.php. Documentação do ambiente de execução
Java 17+; cliente HTTP padrão. Salve como GenderApiExample.java e execute java GenderApiExample.java. Documentação do ambiente de execução
Aplicação de console .NET 8+. Use como Program.cs em um projeto de console e depois execute dotnet run. Documentação do ambiente de execução
Go 1.22+; biblioteca padrão. Salve como main.go e execute go run main.go. Documentação do ambiente de execução
{
"data": {
"valid": false,
"possible": false,
"e164": null,
"country": null,
"country_calling_code": null
},
"meta": {
"request_id": "11111111-1111-4111-8111-111111111111",
"duration_ms": 12,
"access": {
"mode": "ip_trial",
"reason": "api_key_missing"
},
"usage": {
"charged_credits": 1,
"remaining_credits": 7,
"billing_status": "confirmed",
"resets_at": "2026-09-26T12:00:00.000Z",
"limit": 10,
"period_seconds": 86400
}
}
}Interpretar os campos da validação de telefone
Uma resposta 422 rejeita entradas malformadas antes da cobrança. Uma requisição bem formada cujo número não pode ser analisado pode ser concluída com HTTP 200, valid: false e campos de formatação null; essa validação concluída custa 1 crédito. Um número analisável, mas inválido, ainda pode ter um valor e164. Verifique valid em vez de tratar a saída formatada como prova de validade.
| Campo | Tipo | Pode ser null | Exemplo | Descrição |
|---|---|---|---|---|
data.valid | boolean | Não | false | Se o número atende às regras de validação do plano de numeração. |
data.possible | boolean | Não | false | Se o número tem um comprimento plausível para o seu plano de numeração; critério mais fraco que valid. |
data.e164 | string | Sim | null | Número no formato internacional quando a análise é bem-sucedida; caso contrário, null. |
data.country | string | Sim | null | Região derivada do número, ou null quando indisponível; não localiza o assinante. |
data.country_calling_code | integer | Sim | null | Código numérico de discagem internacional, ou null quando indisponível. |
Metadados de acesso, cobrança e requisição
| Campo | Tipo | Pode ser null | Exemplo | Descrição |
|---|---|---|---|---|
meta.request_id | string | Não | "550e8400-e29b-41d4-a716-446655440000" | Identificador único desta tentativa HTTP; também enviado em X-Request-ID. |
meta.duration_ms | integer | Não | 42 | Tempo de processamento da requisição em milissegundos. |
meta.access.mode | string | Não | "api_key" | api_key, ip_trial ou unauthenticated. Verifique api_key ao usar uma conta paga. |
meta.access.reason | string | Sim | null | Motivo do uso do teste por IP: api_key_missing, api_key_invalid ou api_key_not_found; caso contrário, null. |
meta.usage.charged_credits | integer | Sim | 1 | Créditos líquidos cobrados. Zero antes da cobrança ou após reembolso integral confirmado; null se a cobrança não estiver confirmada. |
meta.usage.remaining_credits | integer | Sim | 99 | Saldo ao concluir a operação. Pode ser negativo; null se indisponível ou se a cobrança não estiver confirmada. |
meta.usage.billing_status | string | Não | "confirmed" | not_charged, confirmed ou unconfirmed. Verifique antes de repetir uma previsão com falha. |
meta.usage.resets_at | string | Sim | "2026-09-27T12:00:00.000Z" | Momento da renovação do teste por IP em UTC (ISO 8601); null para contas com chave de API ou quando desconhecido. |
meta.usage.limit | integer | Sim | 10 | Cota do teste por IP; null para contas com chave de API. |
meta.usage.period_seconds | integer | Sim | 86400 | Janela do teste por IP em segundos; null para contas com chave de API. |
Autenticação e novas tentativas
Envie sua chave de API existente no cabeçalho Bearer e Content-Type: application/json. Os exemplos de código leem GENDERAPI_API_KEY do ambiente. Números nacionais exigem country; esse campo é opcional quando number começa com +.