arrobaMail
Módulo 0426 endpoints

Lists /lists

Gestión completa de listas, custom fields, importación/exportación y herramientas de limpieza.

Endpoints

26 en total
GET/listsUsuario

Listar listas con estadísticas

Ejemplo

curl -X GET "https://envios.arrobamail.com/v3/api/lists" \
  -H "Authorization: Bearer $TOKEN"

Respuesta 200

{
  "count": 12,
  "list": [
    {
      "id": 45, "encid": "xY7zW2", "nombre": "Clientes VIP",
      "dateCreated": "2025-01-15 08:30:00",
      "s_total": 3500, "s_active": 3200,
      "s_unsus": 150, "s_bkl": 100, "s_notconfirmed": 50
    }
  ]
}
GET/lists/dashboardUsuario

Dashboard analytics de listas

Retorna gráficos y métricas agregadas: crecimiento diario, engagement por lista, distribución de estados.

Ejemplo

curl -X GET "https://envios.arrobamail.com/v3/api/lists/dashboard" \
  -H "Authorization: Bearer $TOKEN"
POST/listsUsuario

Crear nueva lista

Nombre requerido. Verifica límite de listas según plan.

Request body · application/json

NombreTipoReq.Descripción
nombrestringNombre de la lista
from_emailstringNoEmail remitente por defecto
from_namestringNoNombre remitente por defecto
descripcionstringNoDescripción de la lista

Ejemplo

curl -X POST "https://envios.arrobamail.com/v3/api/lists" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "nombre": "...",
  "from_email": "...",
  "from_name": "...",
  "descripcion": "..."
}'

Respuesta 201

{ "id": 45, "encid": "xY7zW2" }

Errores

StatusCodeDescripción
400name_requiredNombre obligatorio
400max_lists_reachedLímite de listas alcanzado según el plan
GET/lists/:idUsuario

Detalle completo de lista con stats y custom fields

Parámetros de ruta

NombreDescripción
idID numérico de la lista

Ejemplo

curl -X GET "https://envios.arrobamail.com/v3/api/lists/{ID}" \
  -H "Authorization: Bearer $TOKEN"
PUT/lists/:idUsuario

Actualizar propiedades de lista

Campos editables: nombre, from_email, from_name, descripcion, image_logo.

Parámetros de ruta

NombreDescripción
idID numérico de la lista

Request body · application/json

NombreTipoReq.Descripción
nombrestringNoNombre de la lista
from_emailstringNoEmail remitente por defecto
from_namestringNoNombre remitente por defecto
descripcionstringNoDescripción
image_logostringNoURL del logo

Ejemplo

curl -X PUT "https://envios.arrobamail.com/v3/api/lists/{ID}" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "nombre": "...",
  "from_email": "...",
  "from_name": "...",
  "descripcion": "...",
  "image_logo": "..."
}'

Respuesta 200

{ "success": true }
DELETE/lists/:idUsuario

Eliminar lista permanentemente

Eliminación permanente e irreversible. Suscriptores y custom fields se eliminan junto con la lista.

Parámetros de ruta

NombreDescripción
idID numérico de la lista

Ejemplo

curl -X DELETE "https://envios.arrobamail.com/v3/api/lists/{ID}" \
  -H "Authorization: Bearer $TOKEN"

Respuesta 200

{ "success": true }
POST/lists/:encid/exportUsuario

Exportar suscriptores a CSV/XLSX

Parámetros de ruta

NombreDescripción
encidID codificado de la lista

Request body · application/json

NombreTipoReq.Descripción
statusstringNoBKL, UNSUS, NOT_CONFIRMED, ACTIVE, SUBSCRIBED

Ejemplo

curl -X POST "https://envios.arrobamail.com/v3/api/lists/{ENCID}/export" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "status": "..."
}'

Respuesta 200

{ "fileName": "export-45.xlsx" }
GET/lists/:id/customFieldsUsuario

Listar campos personalizados de la lista

Parámetros de ruta

NombreDescripción
idID numérico de la lista

Ejemplo

curl -X GET "https://envios.arrobamail.com/v3/api/lists/{ID}/customFields" \
  -H "Authorization: Bearer $TOKEN"
POST/lists/:id/customFieldsUsuario

Crear campo personalizado

Nombre único en la lista. Máximo de campos no excedido.

Parámetros de ruta

NombreDescripción
idID numérico de la lista

Request body · application/json

NombreTipoReq.Descripción
namestringNombre del campo
typestringtext, dropdown, radio, date, multiline
requiredbooleanNoDefault: false
internalbooleanNoCampo interno no visible al suscriptor
defaultstringNoValor por defecto
optionsstring[]NoOpciones para dropdown/radio

Ejemplo

curl -X POST "https://envios.arrobamail.com/v3/api/lists/{ID}/customFields" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "...",
  "type": "...",
  "required": true,
  "internal": true,
  "default": "...",
  "options": ["..."]
}'
POST/lists/:id/customFields/copyUsuario

Copiar custom fields desde otra lista

Parámetros de ruta

NombreDescripción
idID de la lista destino

Request body · application/json

NombreTipoReq.Descripción
sourceListIdnumberID de la lista origen

Ejemplo

curl -X POST "https://envios.arrobamail.com/v3/api/lists/{ID}/customFields/copy" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "sourceListId": 0
}'
GET/lists/:id/customField/:fidUsuario

Detalle de campo personalizado

Parámetros de ruta

NombreDescripción
idID numérico de la lista
fidID del campo personalizado

Ejemplo

curl -X GET "https://envios.arrobamail.com/v3/api/lists/{ID}/customField/{FID}" \
  -H "Authorization: Bearer $TOKEN"
PUT/lists/:id/customField/:fidUsuario

Actualizar campo personalizado

Parámetros de ruta

NombreDescripción
idID numérico de la lista
fidID del campo personalizado

Request body · application/json

NombreTipoReq.Descripción
namestringNoNuevo nombre del campo
requiredbooleanNoObligatorio
defaultstringNoValor por defecto
optionsstring[]NoOpciones (dropdown/radio)

Ejemplo

curl -X PUT "https://envios.arrobamail.com/v3/api/lists/{ID}/customField/{FID}" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "...",
  "required": true,
  "default": "...",
  "options": ["..."]
}'

Respuesta 200

{ "success": true }
DELETE/lists/:id/customField/:fidUsuario

Eliminar campo personalizado

Parámetros de ruta

NombreDescripción
idID numérico de la lista
fidID del campo personalizado

Ejemplo

curl -X DELETE "https://envios.arrobamail.com/v3/api/lists/{ID}/customField/{FID}" \
  -H "Authorization: Bearer $TOKEN"

Respuesta 200

{ "success": true }
GET/lists/:id/subscribersUsuario

Listar suscriptores con paginación

Parámetros de ruta

NombreDescripción
idID numérico de la lista

Query params

NombreTipoReq.DefaultDescripción
limitnumberNo50Items por página (máx 100)
offsetnumberNo0Desplazamiento
qstringNo-Búsqueda por email o nombre
statusstringNo-active, unsubscribed, blocked, pending
sortBystringNoemailemail, nombre, cdate, lastOpen
sortDirstringNoascasc o desc

Ejemplo

curl -X GET "https://envios.arrobamail.com/v3/api/lists/{ID}/subscribers" \
  -H "Authorization: Bearer $TOKEN"

Respuesta 200

{
  "paging": { "total": 3500, "limit": 50, "offset": 0, "pages": 70 },
  "list": [
    {
      "id": 5001, "sid": "sX9kL2",
      "email": "usuario@ejemplo.com",
      "nombre": "Juan Pérez",
      "status": "active",
      "confirmado": true,
      "cdate": "2025-03-15 10:22:00"
    }
  ]
}
POST/lists/:id/subscribersUsuario

Crear suscriptor en la lista

Parámetros de ruta

NombreDescripción
idID numérico de la lista

Request body · application/json

NombreTipoReq.Descripción
emailstringEmail del suscriptor
nombrestringNoNombre
confirmadobooleanNoDefault: true
customFieldsobjectNo{ "fieldId": "value" }

Ejemplo

curl -X POST "https://envios.arrobamail.com/v3/api/lists/{ID}/subscribers" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "email": "...",
  "nombre": "...",
  "confirmado": true,
  "customFields": {}
}'

Errores

StatusCodeDescripción
400email_requiredEmail obligatorio
400invalid_email_formatFormato de email inválido
409email_already_existsEl email ya existe en la lista
GET/lists/:id/subscribers/:sidUsuario

Detalle de suscriptor con custom fields

Parámetros de ruta

NombreDescripción
idID numérico de la lista
sidID del suscriptor

Ejemplo

curl -X GET "https://envios.arrobamail.com/v3/api/lists/{ID}/subscribers/{SID}" \
  -H "Authorization: Bearer $TOKEN"
GET/lists/:id/subscribers/:sid/historyUsuario

Historial de actividad del suscriptor

Parámetros de ruta

NombreDescripción
idID numérico de la lista
sidID del suscriptor

Ejemplo

curl -X GET "https://envios.arrobamail.com/v3/api/lists/{ID}/subscribers/{SID}/history" \
  -H "Authorization: Bearer $TOKEN"
GET/lists/:id/subscribers/:sid/campaignsUsuario

Campañas recibidas por el suscriptor (últimos 90 días)

Parámetros de ruta

NombreDescripción
idID numérico de la lista
sidID del suscriptor

Ejemplo

curl -X GET "https://envios.arrobamail.com/v3/api/lists/{ID}/subscribers/{SID}/campaigns" \
  -H "Authorization: Bearer $TOKEN"
PUT/lists/:id/subscribers/:sidUsuario

Actualizar datos del suscriptor

Parámetros de ruta

NombreDescripción
idID numérico de la lista
sidID del suscriptor

Request body · application/json

NombreTipoReq.Descripción
nombrestringNoNombre
customFieldsobjectNo{ "fieldId": "value" }

Ejemplo

curl -X PUT "https://envios.arrobamail.com/v3/api/lists/{ID}/subscribers/{SID}" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "nombre": "...",
  "customFields": {}
}'

Respuesta 200

{ "success": true }
POST/lists/:id/tools/bulk-unsubscribeUsuario

Desuscribir/eliminar suscriptores masivamente

Operación asíncrona. Progreso en tiempo real vía Socket.io (evento: bulkOperationProgress).

Parámetros de ruta

NombreDescripción
idID numérico de la lista

Request body · application/json

NombreTipoReq.Descripción
emailsstring[]Array de emails a procesar
actionstring"unsubscribe" o "delete"
scopestring"list" (solo esta lista) o "global" (todas las listas)

Ejemplo

curl -X POST "https://envios.arrobamail.com/v3/api/lists/{ID}/tools/bulk-unsubscribe" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "emails": ["..."],
  "action": "...",
  "scope": "..."
}'

Respuesta 200

{ "started": true }
POST/lists/:id/tools/remove-inactiveUsuario

Eliminar suscriptores inactivos

Operación asíncrona con progreso vía Socket.io.

Parámetros de ruta

NombreDescripción
idID numérico de la lista

Request body · application/json

NombreTipoReq.Descripción
daysnumberDías de inactividad para considerar inactivo
actionstring"unsubscribe" o "delete"

Ejemplo

curl -X POST "https://envios.arrobamail.com/v3/api/lists/{ID}/tools/remove-inactive" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "days": 0,
  "action": "..."
}'

Respuesta 200

{ "started": true }
GET/lists/:id/tools/preview-inactiveUsuario

Preview de suscriptores inactivos

Parámetros de ruta

NombreDescripción
idID numérico de la lista

Query params

NombreTipoReq.DefaultDescripción
daysnumber-Días de inactividad

Ejemplo

curl -X GET "https://envios.arrobamail.com/v3/api/lists/{ID}/tools/preview-inactive" \
  -H "Authorization: Bearer $TOKEN"

Respuesta 200

{
  "totalSubscribers": 3500,
  "inactiveCount": 420,
  "activeCount": 3080,
  "inactivePercentage": 12.0
}
POST/lists/tools/inactive-cleanup/previewUsuario

Preview de limpieza flexible de contactos inactivos

Permite previsualizar contactos inactivos en una o más listas antes de ejecutar la operación.

Request body · application/json

NombreTipoReq.Descripción
listIdsarrayIDs numéricos o codificados de listas
daysnumber30, 60, 90, 120, 180 o 365
activitystringopens_or_clicks, opens o clicks

Ejemplo

curl -X POST "https://envios.arrobamail.com/v3/api/lists/tools/inactive-cleanup/preview" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "listIds": [],
  "days": 0,
  "activity": "..."
}'

Respuesta 200

{ "summary": { "totalAffected": 85, "totalEligible": 1200 }, "breakdown": [], "sample": [] }
POST/lists/tools/inactive-cleanup/executeUsuario

Ejecutar limpieza flexible de contactos inactivos

Operación asíncrona con progreso vía Socket.io.

Request body · application/json

NombreTipoReq.Descripción
listIdsarrayIDs numéricos o codificados de listas
daysnumber30, 60, 90, 120, 180 o 365
activitystringopens_or_clicks, opens o clicks
actionstringunsubscribe o delete

Ejemplo

curl -X POST "https://envios.arrobamail.com/v3/api/lists/tools/inactive-cleanup/execute" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "listIds": [],
  "days": 0,
  "activity": "...",
  "action": "..."
}'

Respuesta 200

{ "operationId": "abc123", "totalFound": 85, "message": "processing" }
POST/lists/:id/tools/import/analyzeUsuario

Analizar archivo de importación

Content-Type: multipart/form-data. Soporta .xlsx, .xls, .csv, .txt (máx 20MB) o texto plano en campo "text". Retorna formato, headers, preview y fileId.

Parámetros de ruta

NombreDescripción
idID numérico de la lista

Request body · multipart/form-data

NombreTipoReq.Descripción
filefileNoArchivo .xlsx, .xls, .csv o .txt (máx 20MB)
textstringNoTexto plano con emails (alternativa a file)

Ejemplo

curl -X POST "https://envios.arrobamail.com/v3/api/lists/{ID}/tools/import/analyze" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "file": "<archivo>",
  "text": "..."
}'

Errores

StatusCodeDescripción
400no_inputNo se envió archivo ni texto
POST/lists/:id/tools/import/executeUsuario

Ejecutar importación de suscriptores

Procesa en background con progreso en tiempo real vía Socket.io (evento: importProgress). Requiere fileId (del análisis previo) o text.

Parámetros de ruta

NombreDescripción
idID numérico de la lista

Request body · application/json

NombreTipoReq.Descripción
fileIdstringNoID del archivo analizado previamente
textstringNoTexto plano alternativo
columnMappingobjectMapeo de columnas { columnIndex: fieldName }

Ejemplo

curl -X POST "https://envios.arrobamail.com/v3/api/lists/{ID}/tools/import/execute" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "fileId": "...",
  "text": "...",
  "columnMapping": {}
}'

Respuesta 200

{ "started": true }

Errores

StatusCodeDescripción
400no_inputNo se enviaron datos
400no_email_columnColumna email no mapeada
400file_not_foundFileId no existe o expiró

Empezá con arrobaMail
en menos de 5 minutos.

Plan Gratuito, generaciones de IA incluidas, sin tarjeta de crédito y soporte real en español.

Probar gratis ahora
WhatsAppTe responde el equipo