Pular para o conteúdo principal
GET
/
api
/
v1
/
contact-lookup
curl -X GET "https://api.mindosoftware.com/api/v1/contact-lookup/?phone=5492235961983" \
  -H "X-API-Key: mindo_xxxxxxxxxxxxxxxxxxxxxxxx"
{
  "found": true,
  "contact": {
    "id": 123,
    "fullName": "Juan Perez",
    "phone": "+5492235961983",
    "email": "juan@ejemplo.com",
    "contactListId": 5,
    "contactListName": "Lista Principal",
    "source": "organic",
    "createdAt": "2025-01-15T10:30:00Z"
  },
  "hasReplied": true,
  "lastReplyAt": "2025-03-28T14:22:00Z",
  "sessionWindowActive": true,
  "sessionExpiresAt": "2025-03-29T14:22:00Z"
}

Descrição

Este endpoint permite consultar informações de contato por número de telefone. Retorna dados do contato, se ele respondeu às mensagens e o status da janela de sessão do WhatsApp. É útil para fluxos de envio condicional e follow-up automatizado: antes de enviar um follow-up, você pode verificar se o contato já respondeu e se a janela de sessão está ativa.
O endpoint retorna 200 mesmo que o contato não exista. Use o campo found para verificar a existência.

Header de autenticação

X-API-Key
string
obrigatório
Sua API Key da Mindo. Formato: mindo_xxxxxxxxxxxxxxxxxxxxxxxx

Parâmetros de query

phone
string
obrigatório
Número de telefone a consultar. O sistema normaliza o número automaticamente, então aceita múltiplos formatos (E.164 com ou sem +, com 15 para Argentina, com espaços ou hífens).

Resposta (200 OK)

found
boolean
true se o contato existe em alguma lista da empresa.
contact
object
Informações do contato. null se não encontrado.
hasReplied
boolean
true se o contato enviou pelo menos uma mensagem em algum chat. Útil para lógica de follow-up: se false, o contato é candidato para reenvio.
lastReplyAt
string (ISO 8601)
Data/hora da última mensagem enviada pelo contato. null se nunca respondeu.
sessionWindowActive
boolean
true se há uma janela de sessão do WhatsApp ativa (24h desde a última mensagem do usuário). Se ativa, mensagens de texto livre podem ser enviadas; caso contrário, apenas templates aprovados.
sessionExpiresAt
string (ISO 8601)
Data/hora de expiração da janela de sessão ativa. null se não há janela ativa.
curl -X GET "https://api.mindosoftware.com/api/v1/contact-lookup/?phone=5492235961983" \
  -H "X-API-Key: mindo_xxxxxxxxxxxxxxxxxxxxxxxx"
{
  "found": true,
  "contact": {
    "id": 123,
    "fullName": "Juan Perez",
    "phone": "+5492235961983",
    "email": "juan@ejemplo.com",
    "contactListId": 5,
    "contactListName": "Lista Principal",
    "source": "organic",
    "createdAt": "2025-01-15T10:30:00Z"
  },
  "hasReplied": true,
  "lastReplyAt": "2025-03-28T14:22:00Z",
  "sessionWindowActive": true,
  "sessionExpiresAt": "2025-03-29T14:22:00Z"
}

Formatos de telefone aceitos

O sistema normaliza o número automaticamente. Todos estes formatos são equivalentes:
FormatoExemplo
E.164 com ++5492235961983
E.164 sem +5492235961983
Com 15 (Argentina)+54223155961983
Com 15 sem +54223155961983
Com espaços/hífens+54 223 15-596-1983
Para números fora da Argentina, use o formato E.164 com código do país.

Caso de uso: Follow-up condicional

Fluxo típico para campanhas de follow-up:
  1. Enviar template inicial via /api/v1/meta-templates/send/
  2. Aguardar um período (ex.: 24-48 horas)
  3. Verificar status via /api/v1/contact-lookup/?phone=...
  4. Decidir ação com base na resposta:
    • found: false — Contato não existe, verifique o número
    • hasReplied: true — Já respondeu, não enviar follow-up
    • hasReplied: false + sessionWindowActive: true — Enviar mensagem de follow-up em texto livre
    • hasReplied: false + sessionWindowActive: false — Enviar template de follow-up
Python
import requests

API_KEY = "mindo_xxxxxxxxxxxxxxxxxxxxxxxx"
BASE_URL = "https://api.mindosoftware.com"

# Passo 1: verificar status do contato
lookup = requests.get(
    f"{BASE_URL}/api/v1/contact-lookup/",
    params={"phone": "5492235961983"},
    headers={"X-API-Key": API_KEY}
).json()

# Passo 2: decidir ação
if not lookup["found"]:
    print("Contato não existe na plataforma")
elif lookup["hasReplied"]:
    print(f"Já respondeu em {lookup['lastReplyAt']}, pular follow-up")
else:
    print("Não respondeu, enviar follow-up")
    if lookup["sessionWindowActive"]:
        print("Janela ativa: pode enviar mensagem de texto livre")
    else:
        print("Janela expirada: usar template")
JavaScript
const API_KEY = "mindo_xxxxxxxxxxxxxxxxxxxxxxxx";
const BASE_URL = "https://api.mindosoftware.com";

// Passo 1: verificar status do contato
const response = await fetch(
  `${BASE_URL}/api/v1/contact-lookup/?phone=5492235961983`,
  { headers: { "X-API-Key": API_KEY } }
);
const lookup = await response.json();

// Passo 2: decidir ação
if (!lookup.found) {
  console.log("Contato não existe na plataforma");
} else if (lookup.hasReplied) {
  console.log(`Já respondeu em ${lookup.lastReplyAt}, pular follow-up`);
} else {
  console.log("Não respondeu, enviar follow-up");
  if (lookup.sessionWindowActive) {
    console.log("Janela ativa: pode enviar mensagem de texto livre");
  } else {
    console.log("Janela expirada: usar template");
  }
}