Contacts

Personas con las que tu organización conversa. Incluye atributos, etiquetas y opt-in.

Base path: /organizations/:orgId/contacts·9 endpoints·Source: mosend-wb-backend/src/modules/contacts/contacts.controller.ts
GET/organizations/:orgId/contacts
bearer

Lista y filtra contactos (búsqueda, canal, etiqueta, opt-in, país, actividad). Paginado.

Path params

  • orgIdstringrequerido

Query params

  • qstring
  • channelstring
  • identifiedOnlystring
  • tagIdstring
  • optInStatusstring
  • countrystring
  • languagestring
  • createdSincestring
  • hasConversationsstring
  • lastActivityDaysGtstring
  • pagestring
  • pageSizestring

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/contacts' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "createdAt": "2026-05-01T03:42:18.123Z"
    }
  ],
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/contacts
bearer

Crea o actualiza un contacto (upsert por waId).

Path params

  • orgIdstringrequerido

Body (JSON)

  • waIdstringrequerido
  • namestring
  • languagestring
  • attributesobject

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/contacts' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"waId": "00000000-0000-0000-0000-000000000000","name": "<name>","language": "<language>","attributes": {}}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "phone": "+573000000000",
    "name": "Juan Pérez",
    "email": "juan@empresa.com"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/contacts/bulk-tag
bearer

Agrega o quita una etiqueta a varios contactos de una vez.

Path params

  • orgIdstringrequerido

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/contacts/bulk-tag' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/contacts/bulk-delete
bearer

Elimina varios contactos de una vez.

Path params

  • orgIdstringrequerido

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/contacts/bulk-delete' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/contacts/bulk-opt-in-status
bearer

Cambia el estado de opt-in (UNKNOWN/OPTED_IN/OPTED_OUT) de varios contactos.

Path params

  • orgIdstringrequerido

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/contacts/bulk-opt-in-status' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/contacts/import
bearer

Importa contactos desde un archivo CSV (multipart/form-data, campo file).

Path params

  • orgIdstringrequerido

Query params

  • defaultCountrystring
  • defaultOptInstring

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/contacts/import' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
GET/organizations/:orgId/contacts/:id
bearer

Detalle de un contacto por id.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/contacts/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
PATCH/organizations/:orgId/contacts/:id
bearer

Actualiza campos de un contacto (nombre, atributos, idioma, etc.).

Path params

  • orgIdstringrequerido
  • idstringrequerido

Body (JSON)

  • namestring
  • languagestring
  • attributesobject
  • optInStatusobject

Respuestas

  • 200
curl -X PATCH 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/contacts/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"name": "<name>","language": "<language>","attributes": {},"optInStatus": {}}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "phone": "+573000000000",
    "name": "Juan Pérez",
    "email": "juan@empresa.com"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
DELETE/organizations/:orgId/contacts/:id
bearer

Elimina un contacto por id.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 204
curl -X DELETE 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/contacts/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}