Contactos

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

  • qstringrequerido
  • channelstringrequerido
  • identifiedOnlystringrequerido
  • tagIdstringrequerido
  • optInStatusstringrequerido
  • countrystringrequerido
  • languagestringrequerido
  • createdSincestringrequerido
  • hasConversationsstringrequerido
  • lastActivityDaysGtstringrequerido
  • pagestringrequerido
  • pageSizestringrequerido

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

Body (JSON)

  • contactIdsstring[]requerido

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>' \
  -H 'Content-Type: application/json' \
  -d '{"contactIds": []}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "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

  • defaultCountrystringrequerido
  • defaultOptInstringrequerido

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
  • botExcludedboolean

    Si true, el bot no le responde nada (exclusión total, solo conversacional).

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": {},"botExcluded": true}'
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"
}