La herramienta de email marketing “Benchmark Email” ofrece una API oficial que te permite intercambiar información de contactos y campañas con herramientas externas. Puedes sincronizar automáticamente los datos que gestionas en tu e-commerce, sistemas de reservas, CRM, Google Sheets y más con Benchmark Email, lo que te libera de la rutina de “exportar un CSV y volver a importarlo cada semana”.

En este artículo, basándome en la documentación oficial a octubre de 2026, explico en detalle la visión general de la API de Benchmark Email, lo que puede y no puede hacer, las condiciones de uso, cómo obtener una clave API y un ejemplo concreto de integración con Google Sheets.

¿Qué es la API de Benchmark Email?

La API de Benchmark Email es un mecanismo para conectar tu cuenta de Benchmark Email con software externo. La página oficial la presenta bajo el concepto de que “tu ecosistema debe funcionar en conjunto”, y cuenta con las siguientes características:

  • JSON sobre HTTP (un formato REST común) y también se publica una especificación OpenAPI.
  • Autenticación mediante una clave API (la cabecera X-API-Key).
  • Permisos por ámbitos (scopes), para que puedas limitar el rango de acceso por contactos, campañas, informes y dominios.
  • Puedes establecer una fecha de caducidad para cada clave, así como desactivarlas y volver a activarlas sin necesidad de eliminarlas.
  • Existen límites de velocidad (rate limits) por hora y por mes, y puedes comprobar lo que te queda en las cabeceras de respuesta.
  • Hay guías de escenarios para flujos de trabajo principales y una guía de migración desde Benchmark Classic.

Y el punto importante es que la API se puede utilizar en todos los planes sin coste adicional. Todo lo que necesitas es una cuenta en un estado utilizable y una clave API.

A quién está dirigida la API

La página oficial la presenta como una función que resuelve problemas como los siguientes:

  • Los clientes de tu sitio web de comercio electrónico, los clientes potenciales en una hoja de cálculo y los contactos de tu TPV o CRM existen por separado.
  • Para construir una lista de correo, te la pasas repitiendo el proceso de exportación a CSV → limpieza → importación.
  • Copias y pegas los resultados de tus campañas en hojas de cálculo o presentaciones cada vez que terminan.

En otras palabras, está pensada para equipos cuyos datos están dispersos en múltiples herramientas y que relacionan los registros a mano. Por el contrario, si todo se gestiona exclusivamente dentro de las pantallas de Benchmark Email, no necesitas la API.

Qué puedes hacer con la API de Benchmark Email

Los recursos con los que puedes trabajar a través de la API se dividen en cuatro grupos principales.

RecursoÁmbito requeridoQué puedes hacer
Contactos (incluyendo listas)contacts:read / contacts:writeCrear, recuperar, actualizar y eliminar contactos, gestionar listas, actualizar campos personalizados, buscar, exportar
Campañascampaigns:read / campaigns:writeCrear, recuperar, actualizar, eliminar y duplicar campañas, ver plantillas
Informesreports:readRecuperar resúmenes del panel e informes de rendimiento de entrega de correos
Dominiosdomains:readComprobar los dominios de envío (solo lectura)

Gestión de contactos

Los contactos son lo que utilizarás más a menudo.

  • Crear, actualizar y eliminar contactos: Utilizando la dirección de correo electrónico como clave, puedes registrar contactos con un nombre y cualquier campo personalizado.
  • Búsqueda y segmentos: Puedes buscar por dirección de correo electrónico, dominio de correo, campos personalizados, etiquetas, listas, estado, fechas de creación y actualización, entre otros. Puedes elegir entre múltiples operadores como “es igual a”, “contiene”, “comienza con”, “dentro de un período” y “está vacío”, combinándolos con Y/O (AND/OR).
  • Control de duplicados: Si buscas por dirección de correo electrónico antes de crear un contacto, puedes evitar añadir por segunda vez un contacto que ya esté registrado.
  • Actualizaciones diferenciales: También existe un endpoint que permite añadir y eliminar de listas, añadir y quitar etiquetas, y actualizar campos de forma conjunta para un solo contacto.
  • Exportación y recuperación de eventos: También puedes exportar contactos y recuperar el historial de eventos de cada contacto.

Gestión de listas

Puedes crear, renombrar, duplicar, fusionar y eliminar listas a través de la API. Esto resulta útil cuando tu CRM o herramienta de comercio electrónico tiene la respuesta definitiva sobre “cómo agrupar a los clientes”. Por ejemplo, puedes hacer que el sistema externo decida grupos como “ha comprado 3 o más veces” o “el nivel de membresía es Oro” y reflejarlos en las listas de Benchmark.

Ten en cuenta que la fusión crea una nueva lista conservando las listas originales, y los contactos duplicados se gestionan automáticamente.

Creación y configuración de campañas

Puedes configurar el nombre de la campaña, el asunto, el texto de vista previa, el nombre del remitente y la dirección de correo del remitente, la dirección de respuesta, la lista de destinatarios, el cuerpo HTML y más a través de la API, creando la campaña en estado de borrador. También es posible duplicar una campaña existente, y el duplicado siempre se convierte en borrador independientemente del estado de la original.

Recuperación de informes

Puedes recuperar estos cinco tipos de información:

  • Resumen del panel (los últimos 1 a 90 días, con el cambio porcentual respecto al período anterior).
  • Rendimiento general de entrega (enviados, entregados, aperturas, clics, rebotes, bajas, quejas).
  • Datos de series temporales del rendimiento de entrega (muy útil para crear gráficos).
  • Informes de campañas individuales (incluyendo clics por enlace).
  • Tendencias de interacción para campañas individuales.

Si introduces los datos en una herramienta de BI o en tu propio panel de control, puedes eliminar la tediosa tarea de “copiar las tasas de apertura en presentaciones”.

Comprobación de dominios de envío

Puedes leer el estado de autenticación de los dominios de envío privados. Esto es útil si deseas supervisar la entregabilidad en un panel independiente o avisar a otro sistema de que “este dominio ya está listo para enviar”.

Recuperación de información de la cuenta

Con GET /api/account, puedes recuperar información básica como la ciudad, el país, el código de país, el código de moneda y la zona horaria de la cuenta. Puedes utilizarlo para comprobar que tu clave API funciona antes de llamar a otros endpoints y para hacer coincidir la zona horaria al recuperar informes. Ten en cuenta que la clave unlayerKey incluida en la respuesta es una clave secreta (un hash SHA256) para la integración con Unlayer, así que ten cuidado de no exponerla en los registros (logs) ni en pantalla.

Lo que la API no puede hacer (lo que se queda en la interfaz de Benchmark Email)

La API no es todopoderosa y algunas operaciones se han omitido intencionadamente por motivos de seguridad en los envíos.

OperaciónAPINotas
Enviar, programar, cancelar y realizar envíos de prueba de campañasNo es posibleHazlo desde la interfaz de Benchmark Email
Autenticar por primera vez un dominio de envíoNo es posibleRealiza el proceso en la interfaz web (la API solo lee el estado de autenticación)
Edición final del diseño de los correosLimitadaDuplica una campaña anterior para reutilizarla y haz los ajustes finales en la interfaz
Reactivar contactos que se han dado de bajaNo es posiblePor protección de cumplimiento normativo. Para volver a registrarlos, deben dar su consentimiento (opt-in) de nuevo

En otras palabras, está diseñada para que las operaciones que podrían provocar un envío accidental no se puedan ejecutar desde una clave API. El flujo de trabajo previsto consiste en preparar los borradores de las campañas a través de la API y dejar que una persona realice la comprobación final y pulse el botón de envío.

Condiciones de uso, límites de velocidad y precios

Precios y número de claves API

  • La API en sí es gratuita en todos los planes.
  • El plan gratuito permite 2 claves API activas, y el plan Pro permite hasta 10 (ponte en contacto con ventas si necesitas más de 10).
  • La recomendación oficial es “crear una clave por integración”. Puedes acotar el ámbito (permisos) de cada clave y desactivarlas individualmente cuando dejen de ser necesarias.

Límites de velocidad y cuota mensual

Según la documentación para desarrolladores, los límites son los siguientes:

TipoDetalles
Límite por hora3.600 peticiones por hora y cuenta (aproximadamente 1 petición por segundo). Incluso con varias claves API, el consumo se contabiliza de forma global.
Cuota mensual (plan gratuito)Límite de contactos × 10
Cuota mensual (planes de pago)Límite de contactos × 100

Por ejemplo, para un plan con un límite hipotético de 1.000 contactos, la directriz es de 10.000 peticiones al mes en el plan gratuito y 100.000 peticiones al mes en los planes de pago (esto es solo un ejemplo de cálculo. Comprueba los números reales del plan al que te suscribas).

Cuando superas un límite, obtienes un código 429 Too Many Requests y la cabecera Retry-After muestra el número de segundos que debes esperar. La respuesta también incluye cabeceras como X-RateLimit-Remaining (el remanente para la hora) y X-Monthly-Remaining (el remanente para el mes), lo que te permite ajustar tu procesamiento mientras vigilas lo que te queda.

Asimismo, si intentas utilizar una clave API inválida de forma repetida, esa dirección IP se bloqueará temporalmente. Si sigues obteniendo errores 401, revisa la clave en lugar de reintentarlo una y otra vez.

Otras condiciones

  • Solo los usuarios con permiso de propietario (owner) pueden crear y gestionar claves API.
  • Una clave solo se puede utilizar mientras la cuenta esté en estado “Abierta” (“Open”) o “Cancelación pendiente” (“Pending Cancel”) (durante retrasos en los pagos o suspensiones, recibirás un error 403).
  • Se requiere una cabecera User-Agent en cada petición (se describe más adelante).

Desde la obtención de una clave API hasta tu primera petición

1. Crear una clave API

  1. Inicia sesión en Benchmark Email con la cuenta de propietario.
  2. Abre Configuración (Settings) > Claves API (API Keys).
  3. Haz clic en Crear clave API (Create API Key).
  4. Asígnale un nombre claro (por ejemplo, Sheets Sync) y selecciona únicamente los ámbitos que necesites.
  5. Establece una fecha de caducidad si lo consideras necesario (si no lo haces, nunca caducará).
  6. Copia la clave que aparece tras la creación en ese mismo momento y guárdala de forma segura.

La clave se muestra una sola vez, en el momento de la creación. Si la pierdes, puedes volver a generarla desde la pantalla de Claves API, pero la clave anterior dejará de ser válida.

Una clave API consta de bme_ + un código de región de 2 caracteres (como us, jp o eu) + una cadena aleatoria de 43 caracteres, lo que suma un total de 50 caracteres.

2. Comprobar la URL base

La URL base varía según la región y el clúster de tu cuenta, adoptando la forma https://api-{region}-{cluster}.benchmarkemail.io (por ejemplo, https://api-us-west-2-a.benchmarkemail.io). Tu propia URL base se muestra en la pantalla de Configuración > Claves API, así que asegúrate de utilizar esa.

3. Enviar tu primera petición

bash
curl -H "X-API-Key: bme_your-api-key-here" \
  -H "User-Agent: MyIntegration/1.0" \
  "<your-api-base-url>/api/contact-structure"

Si la estructura del contacto (las definiciones de los campos personalizados) se devuelve en formato JSON, habrás tenido éxito. Si obtienes 401 o 403, comprueba la clave, el ámbito y el estado de la cuenta.

Si recibes un error 403 que devuelve HTML en lugar de JSON, es muy probable que no se esté enviando la cabecera User-Agent. Esto se debe a que la protección perimetral de Benchmark Email rechaza las peticiones que no incluyan un User-Agent. cURL y las bibliotecas estándar de los principales lenguajes lo añaden automáticamente, pero herramientas como la extensión cURL de PHP requieren que se configure de forma explícita.

Nota: El ejemplo de cURL en la página de introducción de marketing (el formato que pasa list_id a /v1/contacts) y los endpoints de la documentación para desarrolladores (el formato que pasa contactStructureId y el campo _ids a /api/contact) están redactados de forma diferente. Cuando realices tu implementación, sigue siempre la documentación para desarrolladores (developers.benchmarkemail.io).

Cómo funcionan los ámbitos (scopes)

La documentación de la API es fácil de seguir - Benchmark Email

Los ámbitos se asignan a una clave API con el formato {resource}:{access type}.

ÁmbitoDetalles
contacts:readVisualización y búsqueda de contactos, listas y estructura de contactos, exportación e historial de eventos
contacts:writeCreación, actualización y eliminación de contactos y listas, además de actualizar la estructura de contactos
campaigns:readVisualización de campañas y visualización de plantillas
campaigns:writeCreación, actualización, eliminación y duplicación de campañas
reports:readVisualización del panel de control e informes de entrega
domains:readVisualización de los dominios de envío

Hay tres puntos clave a tener en cuenta:

  • Escribir incluye leer: Con contacts:write, también puedes leer contactos.
  • Principio de privilegios mínimos: Divide tus claves; por ejemplo, utiliza únicamente reports:read para un panel de informes y exclusivamente contacts:write para sincronizar contactos desde una hoja de cálculo.
  • La lectura es suficiente para buscar: La búsqueda de contactos se realiza mediante POST, pero lo único que se necesita es contacts:read.

Casos de uso concretos

A partir de aquí, basándome en las especificaciones de la documentación oficial, analizo ejemplos de integración que resultan genuinamente útiles.

Nota: El código que se muestra a continuación es código de ejemplo redactado conforme a las especificaciones de la documentación oficial. Antes de ejecutarlo en tu lista de producción, comprueba siempre que funciona con una lista de prueba o con una cantidad pequeña de datos.

Ejemplo 1: Sincronizar contactos desde Google Sheets a Benchmark Email

Supongamos que recopilas registros para seminarios o respuestas a encuestas en Google Sheets. Te interesa registrar únicamente las filas recién añadidas en una lista de Benchmark Email y evitar duplicar direcciones de correo electrónico que ya estén registradas.

Preparación

  1. Crea una clave API con el ámbito contacts:write.
  2. Utiliza GET /api/contact-structure para anotar el _id de la estructura de contactos y los _ids de los campos “nombre” y “apellido”.
  3. Anota el identificador _id de la lista de destino (puedes obtener la lista con GET /api/contact-structure/{structure ID}/lists/all).
  4. Utiliza la primera fila de la hoja de cálculo como cabecera, de modo que la columna A sea el correo electrónico, la B el nombre, la C el apellido y la D el resultado de la sincronización.
  5. Guarda la clave API y los identificadores en las “propiedades del script” de Apps Script (nunca los incorpores directamente en el código).

Código de Google Apps Script

javascript
// ===== Settings (saved in script properties) =====
const P = PropertiesService.getScriptProperties();
const BASE_URL = P.getProperty('BME_BASE_URL');           // e.g. https://api-us-west-2-a.benchmarkemail.io
const API_KEY = P.getProperty('BME_API_KEY');             // bme_us_...
const STRUCTURE_ID = P.getProperty('BME_STRUCTURE_ID');   // _id of the contact structure
const LAST_NAME_ID = P.getProperty('BME_LAST_NAME_FIELD_ID');
const FIRST_NAME_ID = P.getProperty('BME_FIRST_NAME_FIELD_ID');
const LIST_ID = P.getProperty('BME_LIST_ID');

// ===== Common API call =====
function api_(method, path, body, retry) {
  retry = retry || 0;
  const res = UrlFetchApp.fetch(BASE_URL + path, {
    method: method,
    contentType: 'application/json',
    headers: { 'X-API-Key': API_KEY, 'User-Agent': 'SheetsToBenchmark/1.0' },
    payload: body ? JSON.stringify(body) : undefined,
    muteHttpExceptions: true,
  });
  const code = res.getResponseCode();
  if (code === 429 && retry < 3) {          // Rate limit: wait, then retry
    Utilities.sleep(60 * 1000);
    return api_(method, path, body, retry + 1);
  }
  if (code >= 400) throw new Error(code + ' ' + res.getContentText());
  const text = res.getContentText();
  return text ? JSON.parse(text) : null;
}

// ===== Duplicate check by email address =====
function emailExists_(email) {
  const r = api_('post', '/api/contact/search', {
    contactStructureId: STRUCTURE_ID,
    page: 1,
    pageSize: 1,
    source: ['_id'],
    contactSpecification: {
      filters: [{ criterias: [{ columnToFilter: 'KEY', operator: 'EQ', values: [email] }] }],
    },
  });
  return r.totalRecords > 0;
}

// ===== Register only unsynced rows =====
function syncNewRows() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Applicants');
  const rows = sheet.getDataRange().getValues();

  for (let i = 1; i < rows.length; i++) {
    const email = String(rows[i][0]).trim();
    const firstName = rows[i][1];
    const lastName = rows[i][2];
    const synced = rows[i][3];
    if (!email || synced) continue;       // Skip empty and already-synced rows

    let result;
    if (emailExists_(email)) {
      result = 'Skipped (already registered)';
    } else {
      api_('post', '/api/contact', {
        key: email,
        contactStructureId: STRUCTURE_ID,
        fields: [
          { _id: LAST_NAME_ID, value: lastName },
          { _id: FIRST_NAME_ID, value: firstName },
        ],
        lists: [{ _id: LIST_ID }],
      });
      result = 'Synced ' + new Date().toLocaleString();
    }
    sheet.getRange(i + 1, 4).setValue(result);
    Utilities.sleep(300);                  // Avoid back-to-back requests
  }
}

A partir de ahí, si ejecutas la función syncNewRows en un activador basado en tiempo de Apps Script (como “cada hora” o “cada mañana”), los datos se reflejarán automáticamente en tu lista de Benchmark Email a medida que se añadan filas a la hoja de cálculo. Si se trata de la hoja de respuestas de un formulario de Google (Google Forms), también puedes utilizar el activador “al enviar un formulario”.

Cada fila consume como máximo 2 peticiones (búsqueda + creación), por lo que hay margen de sobra por debajo del límite de 3.600 peticiones por hora.

Ejemplo 2: Escribir automáticamente los resultados de entrega en Google Sheets

El siguiente es un ejemplo en dirección contraria. Su objetivo es compilar automáticamente los resultados de las campañas enviadas en una hoja de cálculo. La API de listas de campañas (GET /api/email/campaign) también devuelve las estadísticas de las campañas enviadas (aperturas, clics, tasa de apertura, etc.). Puedes reutilizar la función api_ anterior tal cual.

Funciona con una clave que disponga del ámbito campaigns:read.

javascript
function exportCampaignStats() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('Delivery Report') || ss.insertSheet('Delivery Report');

  const res = api_('get', '/api/email/campaign?page=1&size=25&statuses=sent&sort=scheduledAt:desc');

  const header = ['Campaign name', 'Subject', 'Sent at', 'Sent', 'Delivered',
                  'Opens (unique)', 'Open rate (%)', 'Clicks (unique)', 'Click rate (%)'];
  const rows = res.records.map(function (c) {
    const s = c.stats || {};
    return [
      c.name, c.subject, c.scheduledAt,
      s.sent, s.delivered,
      s.opens && s.opens.unique, s.opens && s.opens.rate,
      s.clicks && s.clicks.unique, s.clicks && s.clicks.rate,
    ];
  });

  sheet.clearContents();
  sheet.getRange(1, 1, 1, header.length).setValues([header]);
  if (rows.length) sheet.getRange(2, 1, rows.length, header.length).setValues(rows);
}

Si lo ejecutas mediante un activador diario por la mañana, tendrás los resultados más recientes listos en cuanto abras la hoja. A partir de ahí, puedes automatizar un informe semanal creando gráficos con las funciones estándar de Google Sheets o conectándolo a Looker Studio.

Si necesitas un análisis más detallado, utiliza también la API de informes:

  • GET /api/reports/dashboard?pastDays=30&timezone=America/New_York: Resumen de los últimos 30 días (con el cambio porcentual respecto al período anterior).
  • GET /api/reports/email/{campaign ID}: Clics por enlace para una campaña específica.
  • GET /api/reports/email/{campaign ID}/engagement?period=week: Tendencia de aperturas y clics durante la semana posterior al envío.

Si configuras timezone con tu propia zona horaria (por ejemplo, America/New_York), las fechas se delimitan y se agregan en dicha zona horaria, lo cual resulta muy práctico para los informes de tu propia región.

Ejemplo 3: Añadir automáticamente clientes de un sitio de e-commerce o formulario de reservas a una lista (n8n, Zapier y otros)

Actualmente, Benchmark Email no cuenta con una herramienta integrada de flujos de trabajo sin código (no-code). Sin embargo, la documentación oficial también señala que “puedes automatizar flujos de trabajo a través de la API con herramientas como Zapier y n8n”. Si utilizas un nodo capaz de enviar peticiones HTTP (el nodo HTTP Request de n8n, Webhooks de Zapier, etc.), podrás realizar la integración prácticamente sin código.

Por ejemplo, el flujo tendría este aspecto:

  1. Activador (Trigger): Se realiza un pedido en tu tienda online / se envía un formulario de reservas / alguien responde a un formulario de Google Forms.
  2. Búsqueda: Utiliza POST /api/contact/search para comprobar si la dirección de correo electrónico ya está registrada.
  3. Bifurcación (Branch):
    • No está registrada → Créala con POST /api/contact y añádela a una lista.
    • Está registrada → Utiliza el endpoint de actualización diferencial para añadirla a listas, asignar etiquetas y actualizar campos.
  4. Notificación: Si es necesario, avisa a Slack o Microsoft Teams de que “se ha registrado un nuevo contacto”.

Si filtras por FIELD_ID durante la búsqueda, también puedes comprobar condiciones como “únicamente las personas cuyo nivel de membresía sea Oro”. De este modo, puedes mantener las listas de Benchmark Email actualizadas automáticamente mientras conservas los datos de los clientes en tu herramienta de comercio electrónico o CRM.

Ejemplo 4: Duplicar el boletín del mes pasado para crear el borrador de este mes

Para tareas como un boletín mensual, donde envías prácticamente el mismo diseño una y otra vez, duplicar una campaña anterior para preparar un borrador encaja a la perfección.

bash
# 1. Duplicate last month's campaign to create this month's draft
curl -X POST "<your-api-base-url>/api/email/campaign/{last month's campaign ID}/duplicate" \
  -H "X-API-Key: $BENCHMARK_KEY" \
  -H "User-Agent: MonthlyNewsletter/1.0" \
  -H "Content-Type: application/json" \
  -d '{ "name": "November 2026 Newsletter" }'

# 2. Update the subject, preview text, and destination list (__v is the value you just retrieved)
curl -X PATCH "<your-api-base-url>/api/email/campaign/{new campaign ID}" \
  -H "X-API-Key: $BENCHMARK_KEY" \
  -H "User-Agent: MonthlyNewsletter/1.0" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "[November Issue] This Month'"'"'s Announcements",
    "previewText": "A roundup of new features and use cases",
    "lists": ["{destination list ID}"],
    "__v": 0
  }'

A partir de ahí, abre el borrador en la interfaz de Benchmark Email, reescribe el cuerpo, comprueba el contenido y envíalo. Si divides el trabajo de modo que la API se encargue de “preparar el borrador” y una persona realice “la comprobación final y el envío”, podrás operarlo de forma segura.

Ejemplo 5: Delegar la implementación en un asistente de programación con IA

La documentación oficial para desarrolladores también proporciona materiales específicos para asistentes de programación basados en IA.

  • llms.txt: Una tabla con el índice de todas las páginas de documentación.
  • llms-full.txt: El texto completo de toda la documentación en un solo archivo.
  • SKILL.md: Una guía para agentes que resume los endpoints, los criterios de decisión y los errores más comunes.

Cuando le pidas algo a la IA, es aconsejable darle la siguiente instrucción: “Lee primero SKILL.md, luego lee la guía de escenarios que coincida con lo que quiero hacer y, a continuación, escribe el código”. Por ejemplo, incluso un script de Google Apps Script como el del Ejemplo 1 se puede adaptar a tus necesidades en poco tiempo si haces que la IA lea las especificaciones y le pides que “lo adapte a la estructura de columnas de tu hoja de cálculo”.

Puntos a vigilar durante la implementación

A continuación se recogen los puntos en los que es más fácil tropezar, extraídos de las guías de escenarios.

  • PUT es una “sustitución completa”: Si actualizas un contacto con PUT, cualquier campo que no hayas incluido en la petición se borrará. Recupera primero los datos más recientes con GET y utilízalos como base, reescribiendo únicamente las partes que desees modificar antes de enviarlos.
  • __v (versión) es obligatorio: Para las peticiones PUT, así como PATCH en campañas y listas, debes adjuntar el valor de __v que acabas de recuperar mediante GET. Si utilizas un valor antiguo, obtendrás un error ConcurrencyError (400), así que vuelve a recuperarlo y repite la operación.
  • Los estados distinguen mayúsculas de minúsculas: Los valores Active, Inactive y Unsubscribe deben enviarse exactamente con ese formato; usar minúsculas provocará un error. Cuando configures Inactive, se requieren tanto primary como secondary.
  • Los contactos que se dieron de baja o rebotaron no se pueden restaurar: Una vez que un contacto pasa al estado Inactive, no se puede revertir a Active a través de la API. Se trata de una especificación por motivos de cumplimiento normativo, por lo que la premisa básica es no intentar reactivarlos por cuenta propia.
  • Los duplicados provocan errores: Si la misma dirección de correo electrónico ya existe en la misma estructura, obtendrás un error DuplicateFieldError. Comprueba mediante una búsqueda antes de crear o analiza el error para cambiar a una operación de actualización.
  • El parámetro source en las búsquedas es obligatorio: Especifica los campos que deseas que se devuelvan en forma de matriz, como _id, key y fields. Los valores distinguen entre mayúsculas y minúsculas; si se incluye incluso un solo valor desconocido, toda la petición será rechazada.
  • La recuperación de listas de contactos no incluye paginación: El endpoint GET /api/contact devuelve todos los registros de una sola vez, por lo que para cuentas con una gran cantidad de registros resulta más seguro utilizar la API de búsqueda, que sí cuenta con paginación.
  • La dirección del remitente debe pertenecer a un dominio autenticado: El campo from de una campaña debe ser una dirección perteneciente a un dominio de envío autenticado.
  • Gestiona siempre las claves mediante variables de entorno o propiedades de script: No las incorpores directamente en el código fuente ni en las celdas de las hojas de cálculo. Si sospechas que una clave se ha filtrado, desactívala y genera una nueva.

Ventajas y precauciones de la API de Benchmark Email

Ventajas 6
  • Disponible en todos los planes sin coste adicional (hasta 2 claves API incluso en el plan gratuito).

  • Cubre el rango necesario para las operaciones diarias: contactos, listas, campañas, informes y dominios.

  • Las claves API con ámbitos permiten acotar los permisos para cada integración.

  • Permite establecer fechas de caducidad por clave, así como desactivarlas y reactivarlas, lo que demuestra consideración por la seguridad.

  • La documentación es exhaustiva, e incluye guías de escenarios, una especificación OpenAPI y materiales orientados a la IA (llms.txt, SKILL.md).

  • El envío de campañas no se puede ejecutar a través de la API, por lo que el riesgo de envíos accidentales derivados de la automatización es bajo.

Desventajas 5
  • No dispone de una función integrada de integración sin código (no-code), por lo que presupone la ayuda de un desarrollador, un perfil técnico o una herramienta de IA.

  • El envío, la programación y la edición final del diseño no se pueden realizar a través de la API y exigen trabajar en la interfaz.

  • Con un límite de 3.600 peticiones por hora y una cuota mensual, la sincronización de grandes volúmenes de datos requiere planificación.

  • Los contactos que se han vuelto inactivos debido a bajas u otros motivos no se pueden reactivar mediante la API.

  • Las claves API del plan gratuito están limitadas a dos, por lo que si tienes muchas integraciones necesitarás el plan Pro.

Para quién es y para quién no es

A quién se adapta

  • Tus datos de clientes se encuentran dispersos en múltiples lugares (un sitio de comercio electrónico, un sistema de reservas, un CRM y hojas de cálculo) y pierdes tiempo relacionando registros a mano.
  • Cuentas con un desarrollador o puedes delegar la implementación en una herramienta de programación basada en IA.
  • Deseas visualizar los resultados de las entregas en tu propio panel de control o herramienta de BI.
  • Envías correos con prácticamente el mismo formato todos los meses y quieres automatizar únicamente la preparación de los borradores.

A quién no se adapta

  • Tus operaciones se completan íntegramente dentro de la interfaz de Benchmark Email y no necesitas integraciones con herramientas externas.
  • Quieres configurar integraciones utilizando exclusivamente herramientas sin código y basadas en clics (actualmente, esto implica integrar peticiones HTTP en una herramienta externa como Zapier).
  • Quieres ejecutar el envío de correos electrónicos directamente desde la API (no está pensada para usos de tipo transnational email).

Preguntas frecuentes (FAQ)

P. ¿Puedo utilizar la API en el plan gratuito de Benchmark Email?

Sí. La API está incluida de forma gratuita en todos los planes. En el plan gratuito puedes crear hasta 2 claves API activas.

P. ¿Puedo utilizarla sin conocimientos de programación?

Necesitas escribir o generar código para la integración. Incluso si no sabes escribir código por ti mismo, puedes conseguirlo pidiéndoselo a un desarrollador o utilizando un asistente de programación con IA.

P. ¿Puedo enviar correos electrónicos a través de la API?

No de forma directa. Es posible crear, configurar y duplicar campañas a través de la API, pero la programación y el envío se realizan desde la interfaz de Benchmark Email.

P. ¿Dónde puedo crear una clave API?

Con una cuenta que tenga permisos de propietario, puedes crear una desde Configuración > Claves API. La clave se muestra una sola vez, en el momento de la creación, así que asegúrate de apuntarla en ese preciso instante.

P. ¿Cuáles son los límites de velocidad (rate limits)?

Según la documentación para desarrolladores, el límite es de 3.600 peticiones por hora y cuenta (el total sumando varias claves), y la cuota mensual es de 10 veces el límite de contactos (en el plan gratuito) o 100 veces (en los planes de pago). Estos números pueden cambiar, por lo que te recomendamos comprobar la información más reciente en el apartado “Rate Limits” de la documentación.

P. ¿Puedo realizar integraciones con Google Sheets?

No existe un conector oficial, pero puedes integrarlo llamando a la API con UrlFetchApp desde Google Apps Script. Tal como se muestra en los Ejemplos 1 y 2 de este artículo, es posible registrar contactos desde una hoja de cálculo y volcar los resultados de entrega.

Resumen

La API de Benchmark Email es una herramienta gratuita en todos los planes que permite conectar contactos, listas, campañas, informes y dominios de envío con sistemas externos.

  • Puedes automatizar el trabajo manual de mover datos de un lado a otro, como la sincronización de contactos, búsquedas, control de duplicados, gestión de listas y recuperación de informes.
  • Por otro lado, el envío, la programación y el diseño final no se pueden gestionar a través de la API y, por razones de seguridad, sigue siendo obligatorio realizar una comprobación en la interfaz.
  • Para utilizarla se necesita la ayuda de un desarrollador o de una herramienta de IA, pero dado que la parte oficial proporciona los archivos llms.txt y SKILL.md, la barrera no es alta si se asume delegar la implementación en la inteligencia artificial.
  • Con Google Sheets y empleando Google Apps Script, puedes llevar a cabo la inscripción automática de listas de registros y la agregación automática de los resultados de entrega.

Para empezar, crea una clave API en el plan gratuito, llama a GET /api/contact-structure y comprueba la estructura de tu propia cuenta. A partir de ahí, te recomiendo automatizar la tarea que mayor esfuerzo te suponga, como por ejemplo la sincronización con hojas de cálculo.

Enlaces de referencia