Contactos

Métodos para gestionar contactos de WhatsApp. WhatsApp Web no permite añadir contactos, por lo que la API tampoco lo admite.

@lid y @c.us

WhatsApp asigna un LID (Local Identifier) único a cada usuario para ocultar su número de teléfono en grupos y otros lugares. Puedes mensajear a cualquiera usando su LID o su PN (número de teléfono, @c.us).

Obtener todos los contactos

http
GET /api/contacts/all?session=S0001
jsonResponse
[
  {
    "id": "5215551234567@c.us",
    "number": "5215551234567",
    "name": "Juan Pérez",
    "pushname": "Juan",
    "shortName": "Juan",
    "isMe": false,
    "isGroup": false,
    "isWAContact": true,
    "isMyContact": true,
    "isBlocked": false
  }
]

Parámetros de consulta:

http
GET /api/contacts/all?session=S0001&limit=100&offset=0&sortBy=id&sortOrder=asc
  • limit / offset — paginación.
  • sortBy id o name.
  • sortOrder desc o asc.

Obtener contacto

http
GET /api/contacts?contactId=5215551234567&session=S0001

El contactId puede ser un número de teléfono (5215551234567) o un chat id (5215551234567@c.us o 5215551234567@lid).

Actualizar contacto

Actualiza el contacto en tu agenda telefónica y en WhatsApp:

http
PUT /api/{session}/contacts/{chatId}
jsonBody
{
  "firstName": "Juan",
  "lastName": "Pérez"
}

Verificar si el número existe

http
GET /api/contacts/check-exists?phone=5215551234567&session=S0001
jsonResponse
{
  "numberExists": true,
  "chatId": "5215551234567@c.us",
  "pn": "5215551234567@c.us"
}

Obtener "about" del contacto

http
GET /api/contacts/about?contactId=5215551234567&session=S0001
jsonResponse
{ "about": "¡Hola, uso WhatsApp!" }

Obtener foto de perfil

http
GET /api/contacts/profile-picture?contactId=5215551234567&session=S0001&refresh=true
jsonResponse
{ "profilePictureURL": "https://ejemplo.com/perfil.jpg" }

Bloquear / desbloquear contacto

http
POST /api/contacts/block
http
POST /api/contacts/unblock
jsonBody
{
  "contactId": "5215551234567",
  "session": "S0001"
}

API de LIDs

Mapea un identificador vinculado (@lid) a un número de teléfono (@c.us) en ambas direcciones.

Obtener todos los LIDs conocidos

http
GET /api/{session}/lids?limit=100&offset=0
jsonResponse
[
  {
    "lid": "5215551234567@lid",
    "pn": "5215551234567@c.us"
  }
]

Obtener número de LIDs

http
GET /api/{session}/lids/count
jsonResponse
{ "count": 123 }

Obtener número por LID

http
GET /api/{session}/lids/{lid}

Recuerda escapar @ con %40 o usa solo el número.

jsonResponse
{
  "lid": "5215551234567@lid",
  "pn": "5215551234567@c.us"
}

Obtener LID por número de teléfono

http
GET /api/{session}/lids/pn/{phoneNumber}
jsonResponse
{
  "lid": "5215551234567@lid",
  "pn": "5215551234567@c.us"
}