Listar contactos
GET /api/v1/contacts
Scope: contacts:read
| Parámetro | Tipo | Descripción |
|---|---|---|
search | string | Busca por nombre, email o teléfono |
limit | number | Máximo por página (default 50, máximo 100) |
offset | number | Desplazamiento para paginación |
curl "https://api.yolani.co/api/v1/contacts?search=juan&limit=20" \
-H "Authorization: Bearer yol_TU_TOKEN"
Respuesta:
{
"success": true,
"data": [
{
"id": 481,
"name": "Juan Rodríguez",
"phone": "5215512345678",
"email": "juan@ejemplo.com",
"whatsapp_id": "5215512345678",
"tags": ["cliente", "vip"],
"created_at": "2026-05-02T18:22:11.000Z",
"updated_at": "2026-07-01T09:14:03.000Z"
}
],
"meta": { "total": 1, "limit": 20, "offset": 0 }
}
Crear o actualizar un contacto (upsert)
POST /api/v1/contacts
Scope: contacts:write
Si ya existe un contacto con ese teléfono o email, se actualiza; si no, se crea. Devuelve 201 al crear y 200 al actualizar.
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
phone | string | phone o email | Teléfono con código de país (ej. 5215512345678) |
email | string | phone o email | Correo del contacto |
name | string | No | Nombre del contacto |
curl -X POST https://api.yolani.co/api/v1/contacts \
-H "Authorization: Bearer yol_TU_TOKEN" \
-H "Content-Type: application/json" \
-d '{"phone": "5215512345678", "name": "Juan Rodríguez", "email": "juan@ejemplo.com"}'
Consultar un contacto
GET /api/v1/contacts/:id
Scope: contacts:read
Actualizar un contacto
PATCH /api/v1/contacts/:id
Scope: contacts:write
Solo se actualizan los campos enviados (name, email, phone).
curl -X PATCH https://api.yolani.co/api/v1/contacts/481 \
-H "Authorization: Bearer yol_TU_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Juan R. González"}'