Verificar se um número tem WhatsApp
Digite o número e descubra na hora se ele tem uma conta de WhatsApp ativa, sem enviar mensagem e sem avisar ninguém.
Consulte um número agora
Informe o número com DDD. A consulta é gratuita e quem tem o número não recebe aviso nenhum.
Protegido contra abuso. Os números consultados não são publicados nem vendidos.
Deixe um agente de IA fazer isso por você
Copie um prompt pronto e entregue ao seu agente: ele já leva o contrato da API, então não precisa adivinhar endpoint, autenticação nem o que significa cada resposta. Serve para integrar a verificação no seu sistema ou para checar uma lista inteira agora mesmo.
O agente lê o seu projeto, cria o cliente da API, trata os erros e escreve os testes.
Quero integrar ao meu projeto a verificação de números de WhatsApp da Zapster API, para saber se um telefone tem WhatsApp antes de enviar mensagem ou salvar um cadastro.
Contrato da API (Zapster API):
- Autenticação: header "Authorization: Bearer <token>". O token sai do painel da Zapster API (https://app.zapsterapi.com/signup).
- Um número: GET https://api.zapsterapi.com/v1/wa/recipients/{numero}
- {numero} em formato internacional, só dígitos, com ou sem "+" (ex.: 5511987654321).
- 200 = tem WhatsApp. Corpo: { "id", "is_business", "lid", "profile_picture" }. "profile_picture" é sempre uma URL que pode ir direto num <img>.
- 404 com code "recipient_not_found" = não tem WhatsApp. É resposta normal, não erro.
- 400 com code "recipient_invalid_format" = número fora do formato internacional.
- 429 = limite de consultas atingido. Espere o tempo do header Retry-After e tente de novo.
- Vários números: POST https://api.zapsterapi.com/v1/wa/recipients/batch com corpo { "recipients": ["5511987654321", "..."] }, até 100 por chamada.
- Responde um array com um item por número. Use "original" (o número como foi enviado) para casar cada item.
- Tem WhatsApp: { "original", "exists": true, "id", "is_business", "profile_picture" }.
- Não tem WhatsApp: "exists": false e "error": { "code": "recipient_not_found" }.
- Número inválido: só { "original", "error": { "code": "recipient_invalid_format" } }.
- Documentação: https://developer.zapsterapi.com/pt-BR/v1/api-reference/utils/check-recipient e https://developer.zapsterapi.com/pt-BR/v1/api-reference/utils/check-recipient-batch
O que eu preciso:
1. Descubra a linguagem e o framework deste projeto e siga os padrões que ele já usa (cliente HTTP, organização de pastas, tratamento de erro).
2. Crie uma função ou cliente reutilizável que receba um telefone e responda se ele tem WhatsApp e se é conta comercial. Para listas, use o endpoint em lote em blocos de até 100.
3. Leia o token da variável de ambiente ZAPSTERAPI_TOKEN. Nunca deixe o token no código nem em log.
4. Normalize o telefone para o formato internacional antes de chamar a API. Se o projeto só lida com números do Brasil, complete o código +55 quando faltar.
5. Trate o 404 como "não tem WhatsApp", o 429 respeitando o Retry-After, e falha de rede sem derrubar o fluxo de quem chama.
6. Escreva testes com a API simulada, cobrindo número com WhatsApp, sem WhatsApp, formato inválido e limite atingido.
7. No fim, me mostre onde chamar essa verificação no fluxo atual (por exemplo, no cadastro de leads) e o que preciso configurar.Usa Claude Code, Codex ou Cursor? Copie o prompt e cole no agente com o seu projeto aberto: ele adapta o código ao que já existe. No Gemini, o prompt é copiado para você colar.
Cole a sua lista no fim do prompt. O agente chama a API em lote e devolve uma tabela e um CSV.
Verifique quais dos números abaixo têm WhatsApp, usando a API pública da Zapster.
Contrato da API (Zapster API):
- Autenticação: header "Authorization: Bearer <token>". O token sai do painel da Zapster API (https://app.zapsterapi.com/signup).
- Um número: GET https://api.zapsterapi.com/v1/wa/recipients/{numero}
- {numero} em formato internacional, só dígitos, com ou sem "+" (ex.: 5511987654321).
- 200 = tem WhatsApp. Corpo: { "id", "is_business", "lid", "profile_picture" }. "profile_picture" é sempre uma URL que pode ir direto num <img>.
- 404 com code "recipient_not_found" = não tem WhatsApp. É resposta normal, não erro.
- 400 com code "recipient_invalid_format" = número fora do formato internacional.
- 429 = limite de consultas atingido. Espere o tempo do header Retry-After e tente de novo.
- Vários números: POST https://api.zapsterapi.com/v1/wa/recipients/batch com corpo { "recipients": ["5511987654321", "..."] }, até 100 por chamada.
- Responde um array com um item por número. Use "original" (o número como foi enviado) para casar cada item.
- Tem WhatsApp: { "original", "exists": true, "id", "is_business", "profile_picture" }.
- Não tem WhatsApp: "exists": false e "error": { "code": "recipient_not_found" }.
- Número inválido: só { "original", "error": { "code": "recipient_invalid_format" } }.
- Documentação: https://developer.zapsterapi.com/pt-BR/v1/api-reference/utils/check-recipient e https://developer.zapsterapi.com/pt-BR/v1/api-reference/utils/check-recipient-batch
Como fazer:
1. Use o token da variável de ambiente ZAPSTERAPI_TOKEN. Se ela não existir, pare e me peça o token (eu crio uma conta em https://app.zapsterapi.com/signup e copio o token no painel). Nunca mostre o token na saída.
2. Normalize cada número para o formato internacional, só dígitos. Quando faltar o código do país, assuma Brasil (+55) e me diga quais números você completou.
3. Chame o endpoint em lote, em blocos de até 100 números. Se receber 429, espere o Retry-After e continue de onde parou.
4. Me entregue uma tabela com: número, tem WhatsApp (sim/não), conta comercial (sim/não). Liste à parte os números inválidos, com o motivo.
5. Salve o mesmo resultado em um arquivo resultado-whatsapp.csv.
Números:
<cole aqui os números, um por linha>Esta tarefa chama a API com o seu token, então precisa de um agente que execute comandos, como Claude Code, Codex ou Cursor. Um chat no navegador não consegue fazer a chamada.
Como a verificação funciona
Todo aplicativo de WhatsApp faz essa consulta o tempo todo: ao salvar um contato novo, ele pergunta à rede do WhatsApp se aquele número tem uma conta registrada. A ferramenta faz a mesma pergunta, de forma passiva, e devolve a resposta em três passos:
- Você informa o número em formato internacional: código do país, DDD e número. A bandeira do campo acompanha o código digitado, e tocar nela abre a lista de países.
- A consulta verifica na rede do WhatsApp se existe uma conta ativa registrada naquele número. Nenhuma mensagem é enviada e o dono do número não recebe aviso nenhum.
- A resposta chega em segundos: se o número tem WhatsApp, se a conta é comercial (WhatsApp Business) e a foto de perfil, quando ela é pública.
Para que serve verificar um número antes de enviar
Enviar mensagem para número que não tem WhatsApp custa caro em todas as direções: a mensagem não chega, a campanha reporta entrega baixa e, no volume, o padrão de envios para números inexistentes é um dos sinais que derrubam a reputação de um número remetente. Três usos concentram quase todo o valor da verificação:
Validação de leads no momento do cadastro
Um lead que digita o telefone errado no formulário está perdido antes do primeiro contato. Verificar o número na hora do cadastro separa o erro de digitação do lead real, enquanto ele ainda está na página e pode corrigir.
Limpeza de listas antigas
Bases de contato envelhecem: número trocado, linha cancelada, chip corporativo devolvido. Passar a lista por uma verificação antes de uma campanha remove os números mortos e deixa a métrica de entrega refletir a campanha, não a sujeira da base.
Redução de bounce e proteção do remetente
Cada envio para número inexistente é um bounce. Uma taxa alta de bounce desperdiça cota, polui relatórios e cria exatamente o padrão de comportamento que os filtros anti-spam do WhatsApp procuram. Enviar só para números verificados é a proteção mais barata que uma operação de envio pode ter.
Manual, ferramenta ou API: qual verificação usar
Existem três jeitos de descobrir se um número tem WhatsApp, e a escolha certa depende só do volume:
| Critério | Verificação manual | Esta ferramenta | Via API |
|---|---|---|---|
| Como funciona | Salvar o contato na agenda e olhar se ele aparece no WhatsApp | Digitar o número e receber a resposta na tela | Uma chamada HTTP por número, ou em lote |
| Tempo por número | Um a dois minutos, e suja a agenda do celular | Segundos | Milissegundos, em paralelo |
| Escala | Inviável acima de uma dúzia | Consultas avulsas, com limite por sessão | Listas inteiras, integrado ao seu sistema |
| Custo | O seu tempo | Gratuito | Incluído na assinatura da Zapster API |
| Quando usar | Nunca, sendo honesto | Conferências pontuais do dia a dia | Cadastro, CRM e higienização de base em produção |
A mesma verificação, direto na sua aplicação
O que esta página faz um número por vez, a API da Zapster faz por endpoint: GET /v1/wa/recipients/{numero} responde se o número tem WhatsApp, se é conta comercial e a foto de perfil. Número sem WhatsApp responde 404, então o seu código decide com um if.
O token sai do painel da Zapster API. Se você está montando a conta de custo do WhatsApp da sua operação, a calculadora de custo do WhatsApp compara a API oficial com o modelo por instância usando os seus volumes.
Perguntas frequentes
Valide a lista inteira, não um número por vez
Com uma conta na Zapster API, a mesma verificação vira uma chamada HTTP no seu cadastro, no seu CRM ou na higienização da sua base, com consulta em lote e sem depender desta página.