Preguntas Frecuentes

FAQ: send-email vs send-template-email vs send-batch, límites de envío, programación con scheduled_at, supresión de destinatarios, verificación DNS de dominios, variables y helpers de templates, campañas, API keys, errores 401 e Idempotency-Key.

Envío de emails

¿Cuál es la diferencia entre send-email, send-template-email y send-batch?
EndpointMejor paraDestinatarios
POST /v1/send-emailEmails individuales con HTML directo (transaccionales)1
POST /v1/send-template-emailEmails individuales usando un template guardado con variables1
POST /v1/send-batchEnvíos masivos a múltiples destinatariosHasta 10,000

Reglas rápidas:

  • send-email cuando generas HTML desde tu sistema (confirmaciones, alertas).
  • send-template-email cuando tienes templates en el editor visual y solo envías variables.
  • send-batch para enviar el mismo email (con variables personalizadas) a muchos destinatarios.
¿Puedo enviar más de 10,000 emails?

Sí. Tienes dos opciones:

  1. Múltiples llamadas a /v1/send-batch — Divide destinatarios en lotes de hasta 10,000 y haz una llamada por lote.
  2. Campañas desde el Dashboard — Crea una campaña sin límite. El sistema procesa automáticamente por lotes con rate limiting integrado. Ideal para 50k+ emails.
¿Cuáles son los límites de envío?
LímiteValor
Destinatarios por batch request10,000
Destinatarios por envío individual (/v1/send-email)50
Adjuntos10 por correo, 10 MB total

Además aplican límites de volumen diario y mensual según tu cuenta. Si los alcanzas, los envíos se encolan y se reanudan automáticamente. Contacta soporte si necesitas más capacidad.

¿Puedo programar un envío para después?

Sí. Usa el campo scheduled_at con ISO 8601:

json
{ "scheduled_at": "2026-04-01T10:00:00Z" }

Funciona en /send-email (acepta ISO 8601, lenguaje natural como "tomorrow at 3pm" y campo timezone) y en /v1/send-batch (solo ISO 8601). Ver Programar Envíos.

¿Qué pasa si envío un email a alguien que se dio de baja?

El email se omite automáticamente. El comportamiento depende del endpoint:

  • /v1/send-template-email: la supresión se detecta al momento — responde 200 con "skipped": true y suppression_reason (ver API v1).
  • /v1/send-email, /v1/send-batch y /send-email: la API acepta la solicitud con 200 como cualquier envío, y la supresión se aplica al procesarla en segundo plano. El correo nunca se envía y el registro de actividad queda con current_status: "suppressed" — consultable vía la Activity API con el email_id de la respuesta.

La lista de supresión incluye destinatarios por:

  • Baja — clic en enlace de unsubscribe
  • Hard bounce — rebote permanente
  • Queja — marcado como spam
¿Cómo rastreo si un email fue entregado?

Cada envío retorna un activity_id (o email_id). Los eventos de entrega actualizan el estado:

text
queued → sent → delivered (éxito)
queued → sent → bounced (rebote)
queued → sent → complained (spam)

Estado visible en Dashboard → Actividad, o consultable vía la Activity API. Para send-batch, hay un activity_id por destinatario.

Dominios y deliverability

¿Por qué mis emails llegan a spam?

Causas más comunes:

  1. Dominio no verificado — DKIM, SPF, DMARC. Verifica con POST /domains/:domain/verify.
  2. Dominio frío — necesita warming gradual:
    • Día 1: ~50,000 emails
    • Día 2: ~75,000 emails
    • Día 3+: resto
  3. Contenido sospechoso — muchos enlaces, mayúsculas, palabras como "GRATIS"/"OFERTA"/"URGENTE", imágenes sin alt.
  4. Alta tasa rebotes/quejas — limpia tu lista regularmente. >2% bounces o >0.1% complaints degrada reputación.
  5. Sin enlace de baja — ReallyQuickEmails agrega List-Unsubscribe automáticamente, pero incluye un enlace visible.
¿Cómo verifico mi dominio?
  1. Registra el dominio con POST /domains/register
  2. Configura los 7 records DNS en tu proveedor:
    • 1 TXT verificación de dominio
    • 3 CNAME DKIM
    • 1 TXT SPF
    • 1 TXT DMARC
    • 1 CNAME Return-Path
  3. Espera 5–10 min para propagación
  4. Verifica con POST /domains/:domain/verify
  5. Cuando can_send: true, listo

Guía completa en Dominios.

¿Cuánto tarda la verificación DNS?
ProveedorTiempo típico
Cloudflare1–5 min
GoDaddy5–30 min
Namecheap5–30 min
Route 53 (AWS)1–5 min
Otroshasta 48 h

Templates

¿Qué sintaxis usan las variables?
SintaxisEjemplo
Doble llave{{nombre}}
Llave simple{nombre}

También:

  • Fallback{nombre || "Cliente"}
  • HTML crudo{!htmlContent}
  • Loops{{#each productos}}...{{/each}}
  • Condicionales{{#if premium}}...{{/if}}

Ver Templates y Variables.

¿Qué helpers de formateo hay disponibles?
HelperUsoEjemplo
formatCurrencyMoneda{{formatCurrency total}}$61,970.00
multiplyMultiplicación{{multiply cantidad precio}}
formatDateFecha legible{{formatDate fecha}}15/3/2026
formatDate "long"Formato largo{{formatDate fecha "long"}}domingo, 15 de marzo de 2026
defaultDefault{{default nombre "Cliente"}}
jsonSerializa a JSON{{json datos}}
¿Puedo usar el mismo template para send-email y send-batch?

Sí. Los templates creados en el editor visual funcionan en:

  • POST /v1/send-template-email (individual, template_id + variables)
  • POST /v1/send-batch (masivo, templateId + data por destinatario)
  • Campañas desde Dashboard

Campañas

¿Diferencia entre send-batch y campaña?
Aspectosend-batch (API)Campaña (Dashboard)
Límite10,000 por requestSin límite
CreaciónCódigo (curl, SDK)Asistente visual de 5 pasos
TemplateHTML directo o templateIdEditor visual de campañas
Variablesdata por destinatarioCSV upload, mapeo, defaults
LotesManualAutomático
WarmingManualModo por lotes configurable
ReintentosNoAutomático
StatsVía activity_id individualDashboard con métricas agregadas

Regla: send-batch para integraciones programáticas. Campañas para envíos grandes desde UI.

¿Puedo pausar una campaña en proceso?

Sí. Desde el Dashboard puedes pausar una campaña en processing. Los emails ya encolados se siguen enviando pero no se despachan nuevos lotes. Reanuda desde el Dashboard.

¿Qué pasa si mi campaña queda en 'rate_limited'?

Se alcanzó el límite de envío de tu cuenta. Se reanuda automáticamente cuando el límite se restablece. También puedes reanudarla manualmente desde el Dashboard.

API y autenticación

¿Dónde encuentro mis API keys?
  1. Dashboard → tu proyecto → Configuración → Integraciones → API Keys
  2. Copia la key correspondiente:
    • Live (sk_live_* o sk_proj_*) → tráfico productivo
    • Test (sk_test_*) → desarrollo, no consume cuota

Ver API Keys para detalles.

¿Por qué recibo error 401?
CausaSolución
Falta header AuthorizationAgrega Authorization: Bearer sk_live_...
Formato incorrectoVerifica el espacio después de Bearer
Prefijo no reconocidoSolo sk_proj_*, sk_live_*, sk_test_*
Key inválida o revocadaGenera una nueva desde Configuración → API Keys
¿La API tiene rate limiting?

Los endpoints no tienen rate limiting propio. El límite lo impone la capacidad de envío de tu cuenta. Si alcanzas el límite, los emails se encolan y se envían automáticamente cuando hay capacidad.

¿Cómo evito doble envío en retries?

Pasa un header Idempotency-Key: <string-único> (1–256 caracteres) en /send-email o /v1/send-batch. Cualquier reintento con la misma key dentro de 24h devuelve la respuesta cacheada con Idempotency-Replayed: true. Ver API Keys.

Soporte

Contáctanos en soporte@reallyquickemails.com incluyendo: Project ID, endpoint usado, request body, error/respuesta y timestamp aproximado.