Skip to main content

GET /contacts

Lista contactos con paginación page-based. Scope requerido: contacts:read

Parámetros

ParámetroTipoDefaultDescripción
pagenumber1Página
pageSizenumber20Resultados por página (máx 100)
searchstringBuscar por nombre, teléfono o email
tagstringFiltrar por tag

Request

curl "https://api.waspytech.com/api/v2/contacts?page=1&pageSize=20&search=maria" \
  -H "Authorization: Bearer wspy_..."

Response 200

{
  "data": [
    {
      "id": "contact-uuid",
      "phoneNumber": "+5491126032641",
      "name": "María García",
      "email": "maria@email.com",
      "tags": ["VIP", "Recurrente"],
      "customFields": { "empresa": "Acme" },
      "optedIn": true,
      "lastMessageAt": "2026-04-13T14:32:00.000Z",
      "createdAt": "2026-03-01T10:00:00.000Z"
    }
  ],
  "meta": { "requestId": "...", "page": 1, "pageSize": 20, "total": 142 }
}

GET /contacts/:id

Obtener un contacto por ID. Scope requerido: contacts:read
curl https://api.waspytech.com/api/v2/contacts/CONTACT_ID \
  -H "Authorization: Bearer wspy_..."

Errores

CódigoDescripción
CONTACT_NOT_FOUNDEl contacto no existe

GET /contacts/:id/conversations

Listar conversaciones de un contacto. Paginación cursor-based. Scope requerido: contacts:read
curl "https://api.waspytech.com/api/v2/contacts/CONTACT_ID/conversations?limit=10" \
  -H "Authorization: Bearer wspy_..."

POST /contacts

Crear un nuevo contacto. Scope requerido: contacts:write

Body

CampoTipoRequeridoDescripción
phoneNumberstringNúmero con código de país
namestringNoNombre del contacto
emailstringNoEmail
tagsstring[]NoTags para segmentación
customFieldsobjectNoCampos personalizados (key-value)

Request

curl -X POST https://api.waspytech.com/api/v2/contacts \
  -H "Authorization: Bearer wspy_..." \
  -H "Content-Type: application/json" \
  -d '{
    "phoneNumber": "+5491126032641",
    "name": "María García",
    "email": "maria@email.com",
    "tags": ["VIP"]
  }'

Response 201

{
  "data": {
    "id": "new-contact-uuid",
    "phoneNumber": "+5491126032641",
    "name": "María García",
    "email": "maria@email.com",
    "tags": ["VIP"],
    "customFields": {},
    "optedIn": true,
    "createdAt": "2026-04-13T15:00:00.000Z"
  },
  "meta": { "requestId": "..." }
}

Errores

CódigoDescripción
CONTACT_ALREADY_EXISTSYa existe un contacto con ese número
INVALID_PHONEFormato 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)

CampoTipoDescripción
namestringNombre
emailstringEmail
phonestringNúmero de teléfono
tagsstring[]Reemplaza todos los tags
customFieldsobjectMerge con campos existentes

Request

curl -X PATCH https://api.waspytech.com/api/v2/contacts/CONTACT_ID \
  -H "Authorization: Bearer wspy_..." \
  -H "Content-Type: application/json" \
  -d '{
    "tags": ["VIP", "Mayorista"],
    "customFields": { "empresa": "Acme Corp" }
  }'