GET /contacts
Lista contactos con paginación page-based. Scope requerido:contacts:read
Parámetros
| Parámetro | Tipo | Default | Descripción |
|---|---|---|---|
page | number | 1 | Página |
pageSize | number | 20 | Resultados por página (máx 100) |
search | string | — | Buscar por nombre, teléfono o email |
tag | string | — | Filtrar por tag |
Request
Response 200
GET /contacts/:id
Obtener un contacto por ID. Scope requerido:contacts:read
Errores
| Código | Descripción |
|---|---|
CONTACT_NOT_FOUND | El contacto no existe |
GET /contacts/:id/conversations
Listar conversaciones de un contacto. Paginación cursor-based. Scope requerido:contacts:read
POST /contacts
Crear un nuevo contacto. Scope requerido:contacts:write
Body
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
phoneNumber | string | Sí | Número con código de país |
name | string | No | Nombre del contacto |
email | string | No | |
tags | string[] | No | Tags para segmentación |
customFields | object | No | Campos personalizados (key-value) |
Request
Response 201
Errores
| Código | Descripción |
|---|---|
CONTACT_ALREADY_EXISTS | Ya existe un contacto con ese número |
INVALID_PHONE | Formato de teléfono inválido |
PATCH /contacts/:id
Actualizar un contacto existente. Solo enviá los campos que querés cambiar. Scope requerido:contacts:write
Body (todos opcionales)
| Campo | Tipo | Descripción |
|---|---|---|
name | string | Nombre |
email | string | |
phone | string | Número de teléfono |
tags | string[] | Reemplaza todos los tags |
customFields | object | Merge con campos existentes |