Tiempo limitado: 30% DESCUENTO en tu primer pago.
Volver a la visión general de la API

Documentación de la API de InboxWarm

Documentación de referencia para la API REST de InboxWarm. Úsala junto con la colección de Postman de la API de InboxWarm.

URL base#

https://app.inboxwarm.ai/api/v1

Autenticación#

InboxWarm utiliza un esquema de autenticación mixto según el método HTTP:

GET

Solicitudes GET y DELETE — envía tu clave de API como el parámetro de consulta api_key.

POST

Solicitudes POST y PATCH — envía tu clave de API como un campo apiKey dentro del cuerpo JSON.

Genera y administra claves desde Developer kit > API Integration en la aplicación de InboxWarm. Cada clave otorga acceso completo a la cuenta en todos los endpoints que se indican a continuación.

Ejemplo — solicitud GET:

GET https://app.inboxwarm.ai/api/v1/email-accounts?api_key=YOUR_API_KEY

Ejemplo — cuerpo de una solicitud POST:

{
  "apiKey": "YOUR_API_KEY",
  ...
}

Límites de tasa#

El límite predeterminado es de 20 solicitudes por minuto por clave de API. Consulta el uso actual en cualquier momento mediante GET /rate-limit — esta llamada no cuenta para tu cuota.

Errores#

Los errores siguen una estructura coherente:

{
  "error_code": "validation_error",
  "message": "One or more fields are invalid.",
  "details": {}
}

Valores comunes de error_code: validation_error (400), not_found (404), conflict (409), unprocessable (422).

Índice de endpoints#

Sistema

Comprobación de estado#

GEThttps://app.inboxwarm.ai/api/v1/health

Comprobación básica de disponibilidad de la API.

Autenticación:parámetro de consultaapi_key

Respuestas

{
  "status": "ok"
}

Estado del límite de tasa#

GEThttps://app.inboxwarm.ai/api/v1/rate-limit

Consulta el consumo actual del límite de tasa sin gastar una solicitud de tu cuota.

Autenticación:parámetro de consultaapi_key

Respuestas

{
  "limit": 20,
  "remaining": 18,
  "reset": 1752585600
}

Cuentas de correo electrónico

Listar cuentas de correo electrónico#

GEThttps://app.inboxwarm.ai/api/v1/email-accounts

Lista las cuentas de correo electrónico conectadas con su estado actual. Admite búsqueda, paginación y ordenación. Usa la búsqueda para localizar el emailAccountId de una dirección si alguna vez necesitas volver a resolverlo.

Autenticación:parámetro de consultaapi_key

Parámetros de consulta

searchBuscar por dirección de correo electrónico o nombre
statusactive | warming | paused | error | auth-expired
sort
sortBy

Respuestas

{
  "items": [
    {
      "id": "12345",
      "fromEmail": "john@yourcompany.com",
      "fromName": "John Doe",
      "type": "gmail",
      "status": "warming",
      "createdAt": "2026-06-01T10:00:00.000Z"
    },
    {
      "id": "12346",
      "fromEmail": "sales@yourcompany.com",
      "fromName": "Sales Team",
      "type": "microsoft",
      "status": "active",
      "createdAt": "2026-06-03T14:20:00.000Z"
    }
  ],
  "total": 2,
  "page": 1,
  "limit": 20,
  "totalPages": 1
}

Conectar cuenta de correo electrónico#

POSThttps://app.inboxwarm.ai/api/v1/email-accounts

Conecta una cuenta de Gmail, Microsoft o SMTP/IMAP usando credenciales SMTP/IMAP (una contraseña de aplicación funciona para Gmail y Microsoft). Guarda el emailAccountId devuelto — todos los demás endpoints se basan en él.

Autenticación:campo del cuerpoapiKey

Cuerpo de la solicitud

{
  "apiKey": "{{apiKey}}",
  "fromEmail": "john@yourcompany.com",
  "fromName": "John Doe",
  "type": "gmail",
  "smtp": {
    "host": "smtp.example.com",
    "port": 587,
    "password": "your-password",
    "encryption": "TLS",
    "userName": "smtp-username"
  },
  "imap": {
    "host": "imap.example.com",
    "port": 993,
    "encryption": "SSL",
    "userName": "imap-username"
  }
}

Respuestas

{
  "emailAccountId": "12345",
  "fromEmail": "john@yourcompany.com",
  "fromName": "John Doe",
  "type": "gmail",
  "status": "active"
}

Conectar cuentas de correo electrónico en lote#

POSThttps://app.inboxwarm.ai/api/v1/email-accounts/bulk-connect

Conecta hasta 20 cuentas en una sola llamada. Cada entrada se valida y conecta de forma independiente — una cuenta incorrecta o duplicada no detiene a las demás — y la respuesta informa el éxito o el fallo de cada cuenta, en el mismo orden que la entrada.

Autenticación:campo del cuerpoapiKey

Cuerpo de la solicitud

{
  "apiKey": "{{apiKey}}",
  "emailAccounts": [
    {
      "fromEmail": "john@yourcompany.com",
      "fromName": "John Doe",
      "type": "gmail",
      "smtp": { "host": "smtp.example.com", "port": 587, "password": "your-password", "encryption": "TLS", "userName": "smtp-username" },
      "imap": { "host": "imap.example.com", "port": 993, "encryption": "SSL", "userName": "imap-username" }
    },
    {
      "fromEmail": "sales@yourcompany.com",
      "type": "microsoft",
      "smtp": { "password": "app-specific-password" }
    }
  ]
}

Respuestas

{
  "results": [
    {
      "success": true,
      "emailAccountId": "12345",
      "fromEmail": "john@yourcompany.com",
      "fromName": "John Doe",
      "type": "gmail",
      "status": "active"
    },
    {
      "success": false,
      "fromEmail": "sales@yourcompany.com",
      "error_code": "already_connected",
      "message": "This email address is already connected.",
      "details": {}
    }
  ]
}

Desconectar cuenta de correo electrónico#

POSThttps://app.inboxwarm.ai/api/v1/email-accounts/{emailAccountId}/disconnect

Pausa una cuenta sin eliminarla. La configuración y el historial se conservan para reconectar más adelante.

Autenticación:campo del cuerpoapiKey

Cuerpo de la solicitud

{
  "apiKey": "{{apiKey}}"
}

Respuestas

{
  "emailAccountId": "12345",
  "status": "disconnected"
}

Eliminar cuenta de correo electrónico#

DELETEhttps://app.inboxwarm.ai/api/v1/email-accounts/{emailAccountId}

Elimina permanentemente una cuenta y todos los datos e historial de calentamiento asociados.

Autenticación:parámetro de consultaapi_key

Respuestas

Sin cuerpo de respuesta

Eliminar cuentas de correo electrónico en lote#

POSThttps://app.inboxwarm.ai/api/v1/email-accounts/bulk-delete

Elimina permanentemente hasta 20 cuentas en una sola llamada.

Autenticación:campo del cuerpoapiKey

Cuerpo de la solicitud

{
  "apiKey": "{{apiKey}}",
  "emailAccountIds": [
    "12345",
    "12346"
  ]
}

Respuestas

{
  "results": [
    {
      "emailAccountId": "12345",
      "deleted": true
    },
    {
      "emailAccountId": "12346",
      "deleted": true
    }
  ]
}

Obtener estado de cuenta de correo electrónico#

GEThttps://app.inboxwarm.ai/api/v1/email-accounts/{emailAccountId}/status

Estado detallado de una sola cuenta — salud de la conexión, estado del calentamiento, estado de autenticación, errores activos.

Autenticación:parámetro de consultaapi_key

Respuestas

{
  "emailAccountId": "12345",
  "fromEmail": "john@yourcompany.com",
  "type": "gmail",
  "authStatus": "connected",
  "warmupStatus": "active",
  "healthScore": 92,
  "connectionError": null,
  "lastConnectedAt": "2026-07-15T08:00:00.000Z"
}

Estado de cuentas de correo electrónico en lote#

POSThttps://app.inboxwarm.ai/api/v1/email-accounts/bulk-status

Estado de hasta 50 cuentas en una sola llamada, devuelto en el mismo orden que los ID de entrada.

Autenticación:campo del cuerpoapiKey

Cuerpo de la solicitud

{
  "apiKey": "{{apiKey}}",
  "emailAccountIds": [
    "12345",
    "12346"
  ]
}

Respuestas

{
  "results": [
    {
      "emailAccountId": "12345",
      "fromEmail": "john@yourcompany.com",
      "type": "gmail",
      "authStatus": "connected",
      "warmupStatus": "active",
      "healthScore": 92,
      "connectionError": null,
      "lastConnectedAt": "2026-07-15T08:00:00.000Z"
    },
    {
      "emailAccountId": "12346",
      "fromEmail": "sales@yourcompany.com",
      "type": "microsoft",
      "authStatus": "connected",
      "warmupStatus": "paused",
      "healthScore": 81,
      "connectionError": null,
      "lastConnectedAt": "2026-07-14T22:10:00.000Z"
    }
  ]
}

Calentamiento

Obtener configuración de calentamiento#

GEThttps://app.inboxwarm.ai/api/v1/warmup-settings/{emailAccountId}

Obtén la configuración de calentamiento actual de una cuenta.

Autenticación:parámetro de consultaapi_key

Respuestas

{
  "emailAccountId": "12345",
  "displayName": "Ada Lovelace",
  "timeZone": "America/New_York",
  "sendingDays": [1, 2, 3, 4, 5],
  "sendingWindowStartTime": "09:00",
  "sendingWindowEndTime": "17:00",
  "warmupLanguage": "en",
  "targetIndustry": "saas_software",
  "warmupTopics": ["Referral request", "Case study"]
}

Actualizar configuración de calentamiento#

PATCHhttps://app.inboxwarm.ai/api/v1/warmup-settings/{emailAccountId}

Actualiza una o más configuraciones de calentamiento de una cuenta: nombre del remitente, zona horaria, horario de envío, idioma, industria o temas. Solo se modifican los campos que envíes.

Autenticación:campo del cuerpoapiKey

Cuerpo de la solicitud

{
  "apiKey": "{{apiKey}}",
  "displayName": "Ada Lovelace",
  "timeZone": "America/New_York",
  "sendingDays": [1, 2, 3, 4, 5],
  "sendingWindowStartTime": "09:00",
  "sendingWindowEndTime": "17:00",
  "warmupLanguage": "en",
  "targetIndustry": "saas_software",
  "warmupTopics": ["Referral request", "Case study"]
}

Respuestas

{
  "emailAccountId": "12345",
  "displayName": "Ada Lovelace",
  "timeZone": "America/New_York",
  "sendingDays": [1, 2, 3, 4, 5],
  "sendingWindowStartTime": "09:00",
  "sendingWindowEndTime": "17:00",
  "warmupLanguage": "en",
  "targetIndustry": "saas_software",
  "warmupTopics": ["Referral request", "Case study"]
}

Listar idiomas de calentamiento#

GEThttps://app.inboxwarm.ai/api/v1/warmup-settings/languages

Lista todos los idiomas en los que se puede generar contenido de calentamiento, para que sepas qué valores acepta warmupLanguage.

Autenticación:parámetro de consultaapi_key

Respuestas

{
  "languages": [
    { "code": "en", "name": "English", "nativeName": "English", "script": "Latin" },
    { "code": "es", "name": "Spanish", "nativeName": "Español", "script": "Latin" },
    { "code": "ja", "name": "Japanese", "nativeName": "日本語", "script": "Japanese" }
  ]
}

Listar industrias de calentamiento#

GEThttps://app.inboxwarm.ai/api/v1/warmup-settings/industries

Lista todas las industrias objetivo y sus temas sugeridos, para que sepas qué valores aceptan targetIndustry y warmupTopics.

Autenticación:parámetro de consultaapi_key

Respuestas

{
  "industries": [
    {
      "key": "e_commerce",
      "name": "E-Commerce",
      "topics": [
        "Abandoned cart follow-up",
        "New product launch",
        "Seasonal sale announcement",
        "Order and shipping update",
        "Customer review request"
      ]
    },
    {
      "key": "saas_software",
      "name": "SaaS / Software",
      "topics": ["Feature announcement", "Onboarding tip", "Case study"]
    }
  ]
}

Iniciar calentamiento#

POSThttps://app.inboxwarm.ai/api/v1/warmup-settings/{emailAccountId}/start

Inicia el calentamiento de una cuenta.

Autenticación:campo del cuerpoapiKey

Cuerpo de la solicitud

{
  "apiKey": "{{apiKey}}"
}

Respuestas

{
  "emailAccountId": "12345",
  "warmupStatus": "active"
}

Detener calentamiento#

POSThttps://app.inboxwarm.ai/api/v1/warmup-settings/{emailAccountId}/stop

Detiene el calentamiento de una cuenta.

Autenticación:campo del cuerpoapiKey

Cuerpo de la solicitud

{
  "apiKey": "{{apiKey}}"
}

Respuestas

{
  "emailAccountId": "12345",
  "warmupStatus": "paused"
}

Acción de calentamiento en lote#

POSThttps://app.inboxwarm.ai/api/v1/warmup-settings/bulk-action

Inicia o detiene el calentamiento de hasta 50 cuentas en una sola llamada.

Autenticación:campo del cuerpoapiKey

Cuerpo de la solicitud

{
  "apiKey": "{{apiKey}}",
  "emailAccountIds": [
    "12345",
    "12346"
  ],
  "action": "start"
}

Respuestas

{
  "results": [
    {
      "emailAccountId": "12345",
      "status": "ok"
    },
    {
      "emailAccountId": "12346",
      "status": "ok"
    }
  ]
}

Actualización de configuración de calentamiento en lote#

POSThttps://app.inboxwarm.ai/api/v1/warmup-settings/bulk-update

Aplica la configuración de horario y/o contenido a hasta 50 cuentas en una sola llamada.

Autenticación:campo del cuerpoapiKey

Cuerpo de la solicitud

{
  "apiKey": "{{apiKey}}",
  "emailAccountIds": [
    "12345",
    "12346"
  ],
  "apply": ["language", "window"],
  "warmupLanguage": "es",
  "sendingWindowStartTime": "06:00",
  "sendingWindowEndTime": "10:00"
}

Respuestas

{
  "updatedCount": 2
}

Historial de actividad de calentamiento#

GEThttps://app.inboxwarm.ai/api/v1/warmup-status/{emailAccountId}

Actividad de calentamiento de hoy para una cuenta: enviados, recibidos, respondidos, spam, rebotados.

Autenticación:parámetro de consultaapi_key

Respuestas

{
  "emailAccountId": "12345",
  "date": "2026-07-15",
  "current": "active",
  "dailySendingLimit": 10,
  "sent": 12,
  "received": 10,
  "replied": 7,
  "spam": 1,
  "bounced": 0
}

Capacidad de entrega

Obtener puntuación de configuración#

GEThttps://app.inboxwarm.ai/api/v1/setup-score/{emailAccountId}

Puntuación de salud de configuración en caché (comprobaciones de DMARC, SPF, DKIM, MX, lista negra) para una cuenta.

Autenticación:parámetro de consultaapi_key

Respuestas

{
  "emailAccountId": "12345",
  "emailAccountScore": 86,
  "dmarcScore": 15,
  "spfScore": 29,
  "dkimScore": 18,
  "mxRecordScore": 9,
  "ipBlacklistScore": 5,
  "domainBlacklistScore": 10,
  "updatedAt": "2026-07-14T10:30:00.000Z",
  "manualLastRefreshedAt": "2026-07-14T10:30:00.000Z"
}

Actualizar puntuación de configuración#

POSThttps://app.inboxwarm.ai/api/v1/setup-score/{emailAccountId}/refresh

Recalcula de forma sincrónica la puntuación de configuración de una cuenta.

Autenticación:campo del cuerpoapiKey

Cuerpo de la solicitud

{
  "apiKey": "{{apiKey}}"
}

Respuestas

{
  "emailAccountId": "12345",
  "emailAccountScore": 88,
  "dmarcScore": 15,
  "spfScore": 29,
  "dkimScore": 18,
  "mxRecordScore": 9,
  "ipBlacklistScore": 7,
  "domainBlacklistScore": 10,
  "updatedAt": "2026-07-15T09:00:00.000Z",
  "manualLastRefreshedAt": "2026-07-15T09:00:00.000Z"
}

Comprobación de estado de DNS#

GEThttps://app.inboxwarm.ai/api/v1/dns-health/{emailAccountId}

Búsqueda de DNS en vivo para el dominio de envío de la cuenta — aprobado/fallido para SPF, DKIM, DMARC, MX.

Autenticación:parámetro de consultaapi_key

Respuestas

{
  "emailAccountId": "12345",
  "spf": "pass",
  "dkim": "pass",
  "dmarc": "pass",
  "mx": "pass",
  "cachedAt": "2026-07-15T09:00:00.000Z"
}

Obtener puntuación de capacidad de entrega#

POSThttps://app.inboxwarm.ai/api/v1/deliverability-score/{emailAccountId}

Tasa de capacidad de entrega general y por ESP de bandeja de entrada frente a spam para un rango de fechas.

Autenticación:campo del cuerpoapiKey

Cuerpo de la solicitud

{
  "apiKey": "{{apiKey}}",
  "startDate": "2026-06-01",
  "endDate": "2026-06-30",
  "esps": [
    "gmail",
    "outlook",
    "other"
  ]
}

Respuestas

{
  "emailAccountId": "12345",
  "totalDeliverabilityRate": 88,
  "totalSentCount": 1500,
  "totalInboxCount": 1320,
  "totalSpamInboxCount": 180,
  "gmail": {
    "deliverabilityRate": 92,
    "sentCount": 500,
    "inboxCount": 460,
    "spamCount": 40
  },
  "outlook": {
    "deliverabilityRate": 92,
    "sentCount": 500,
    "inboxCount": 460,
    "spamCount": 40
  },
  "other": {
    "deliverabilityRate": 92,
    "sentCount": 500,
    "inboxCount": 460,
    "spamCount": 40
  }
}

Informes

Panel#

GEThttps://app.inboxwarm.ai/api/v1/dashboard

Resumen de calentamiento de toda la cuenta en todas las bandejas de entrada conectadas.

Autenticación:parámetro de consultaapi_key

Respuestas

{
  "totalAccounts": 42,
  "activeWarmups": 30,
  "pausedWarmups": 8,
  "accountsWithErrors": 2,
  "avgSetupScore": 78.5
}

Informe de una sola cuenta#

POSThttps://app.inboxwarm.ai/api/v1/reports

Informe diario de calentamiento para una cuenta durante un rango de fechas.

Autenticación:campo del cuerpoapiKey

Cuerpo de la solicitud

{
  "apiKey": "{{apiKey}}",
  "emailAccountId": "12345",
  "from": "2026-06-01",
  "to": "2026-06-30"
}

Respuestas

{
  "emailAccountId": "12345",
  "from": "2026-06-01",
  "to": "2026-06-30",
  "days": [
    {
      "date": "2026-06-15",
      "sent": 25,
      "inbox": 20,
      "received": 22,
      "spam": 3,
      "bounced": 1,
      "undelivered": 0,
      "replied": 5,
      "deliverabilityRate": 92.5
    }
  ]
}

Informe en lote#

POSThttps://app.inboxwarm.ai/api/v1/reports/bulk

Informes diarios de calentamiento para hasta 50 cuentas durante un rango de fechas.

Autenticación:campo del cuerpoapiKey

Cuerpo de la solicitud

{
  "apiKey": "{{apiKey}}",
  "emailAccountIds": [
    "12345",
    "12346"
  ],
  "from": "2026-06-01",
  "to": "2026-06-30"
}

Respuestas

{
  "reports": [
    {
      "emailAccountId": "12345",
      "from": "2026-06-01",
      "to": "2026-06-30",
      "days": [
        {
          "date": "2026-06-15",
          "sent": 25,
          "inbox": 20,
          "received": 22,
          "spam": 3,
          "bounced": 1,
          "undelivered": 0,
          "replied": 5,
          "deliverabilityRate": 92.5
        }
      ]
    }
  ]
}

Exportar informe#

POSThttps://app.inboxwarm.ai/api/v1/reports/export

Inicia una exportación asíncrona en CSV de los informes de calentamiento, entregada por correo electrónico cuando esté lista.

Autenticación:campo del cuerpoapiKey

Cuerpo de la solicitud

{
  "apiKey": "{{apiKey}}",
  "emailAccountIds": [
    "12345",
    "12346"
  ],
  "from": "2026-06-01",
  "to": "2026-06-30"
}

Respuestas

{
  "jobId": "a1b2c3d4",
  "status": "queued"
}