Pular para o conteúdo principal

Contatos

A API de Contatos permite verificar números de telefone no WhatsApp, recuperar informações de contatos e buscar fotos de perfil. Isso é especialmente útil para validar números antes de enviar mensagens e enriquecer seus dados de contato. Todos os endpoints de contatos são vinculados a uma instância específica:
/api/instances/{instanceId}/contacts/...

Verificar se um Número Existe

Verifique se um número de telefone está registrado no WhatsApp antes de enviar uma mensagem. Isso previne entregas falhas e chamadas de API desperdiçadas.
curl "https://api.wappfy.io/api/instances/inst_abc123/contacts/check?phone=5511999998888" \
  -H "X-Api-Key: YOUR_API_KEY"
Resposta (número existe):
{
  "data": {
    "exists": true,
    "phone": "5511999998888",
    "chat_id": "[email protected]"
  }
}
Resposta (número não existe):
{
  "data": {
    "exists": false,
    "phone": "5511999998888",
    "chat_id": null
  }
}
Use este endpoint para validar números antes de enviar mensagens. Isso economiza cota de mensagens e previne eventos message.failed no webhook.

Listar Todos os Contatos

Recupere a lista completa de contatos da conta WhatsApp conectada.
curl https://api.wappfy.io/api/instances/inst_abc123/contacts \
  -H "X-Api-Key: YOUR_API_KEY"

Campos do Contato

CampoDescrição
idID do contato no WhatsApp (número + @s.whatsapp.net).
nameNome do contato salvo na agenda do telefone. Pode ser null se não salvo.
short_nameNome curto da agenda.
push_nameNome que o contato definiu para si mesmo no WhatsApp.
is_businessSe é uma conta WhatsApp Business.
O campo name vem da agenda do telefone. Se o contato não está salvo, apenas push_name (definido pelo próprio contato) estará disponível.

Informações do Contato

Recupere informações detalhadas sobre um contato específico.
curl "https://api.wappfy.io/api/instances/inst_abc123/contacts/[email protected]" \
  -H "X-Api-Key: YOUR_API_KEY"

Foto de Perfil

Recupere a URL da foto de perfil do WhatsApp de um contato.
curl "https://api.wappfy.io/api/instances/inst_abc123/contacts/[email protected]/profile-picture" \
  -H "X-Api-Key: YOUR_API_KEY"
URLs de fotos de perfil são temporárias e expiram após algum tempo. Não as armazene permanentemente — busque uma URL nova quando necessário.

Padrões Comuns

Validar Antes de Enviar

Sempre verifique se um número existe no WhatsApp antes de enviar uma mensagem:
async function enviarMensagemComSeguranca(instanceId, phone, text) {
  // Passo 1: Verificar se o número está no WhatsApp
  const checkResponse = await fetch(
    `https://api.wappfy.io/api/instances/${instanceId}/contacts/check?phone=${phone}`,
    { headers: { "X-Api-Key": "YOUR_API_KEY" } }
  );
  const { data: checkResult } = await checkResponse.json();

  if (!checkResult.exists) {
    console.log(`${phone} não está no WhatsApp, pulando`);
    return null;
  }

  // Passo 2: Enviar a mensagem usando o chat_id confirmado
  const sendResponse = await fetch(
    `https://api.wappfy.io/api/instances/${instanceId}/messages/send`,
    {
      method: "POST",
      headers: {
        "X-Api-Key": "YOUR_API_KEY",
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        chat_id: checkResult.chat_id,
        type: "text",
        text,
      }),
    }
  );

  return sendResponse.json();
}
Ao buscar fotos de perfil para muitos contatos, adicione um atraso entre as requisições para respeitar os limites de taxa. Recomendamos 200ms entre chamadas.

Referência de Endpoints

MétodoEndpointDescrição
GET/api/instances/{id}/contactsListar todos os contatos
GET/api/instances/{id}/contacts/check?phone={phone}Verificar se número existe no WhatsApp
GET/api/instances/{id}/contacts/{contactId}Informações do contato
GET/api/instances/{id}/contacts/{contactId}/profile-pictureFoto de perfil

Tratamento de Erros

CódigoDescrição
400Formato de número inválido. Use apenas dígitos, com código do país (ex: 5511999998888).
404Instância ou contato não encontrado.
429Limite de taxa excedido. Veja Limites de Taxa.