Introducción

API de email transaccional y campañas de ReallyQuickEmails — base URL, autenticación Bearer (sk_proj_/sk_live_/sk_test_), POST /v1/send-email, /v1/send-template-email, /v1/send-batch, leads, events, activity, dominios, webhooks firmados, inbound replies, automatizaciones, SDK Node.js y acceso markdown para agentes IA (/llms.txt, /llms-full.txt).

ReallyQuickEmails (RQE) es la API para enviar emails transaccionales y campañas masivas: una llamada HTTP y tu primer email está en camino.

Tu primer email

bash
curl -X POST https://api.reallyquickemails.com/v1/send-email \
  -H "Authorization: Bearer sk_proj_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "recipient_email": "usuario@ejemplo.com",
    "sender_email": "hola@tudominio.com",
    "subject": "Hola desde ReallyQuickEmails",
    "html_body": "<h1>Hola</h1><p>Mi primer email con RQE.</p>"
  }'

Respuesta exitosa (200):

json
{
  "message": "Email sent successfully",
  "email_id": "550e8400-e29b-41d4-a716-446655440000",
  "project_id": "123e4567-e89b-12d3-a456-426614174000"
}

email_id identifica el envío: úsalo para consultar su estado en Activity y correlacionar los eventos que llegan a tus webhooks. El sender_email debe pertenecer a un dominio verificado.

Para desarrollo usa tu key sk_test_*: el email se envía de verdad (puedes probar render y deliverability), pero queda marcado con is_test: true y separado de tus métricas de producción. Detalle en Modos Live y Test.

Tres pasos al primer email

Obtén tu API key

En el dashboard, entra a tu proyecto y abre Configuración → Integraciones → API Keys. Copia la Test key (sk_test_*) para desarrollo, o la Live key (sk_proj_* / sk_live_*) para producción. Más detalle en API Keys.

Envía el curl

Reemplaza sender_email por un remitente de tu dominio verificado y recipient_email por tu propio email. Si la respuesta es 200 con email_id, el envío quedó en camino.

Verifica el resultado

Consulta el estado del envío en Activity del dashboard o vía GET /v1/activity/:id (referencia). Para recibir los eventos en tu servidor (entrega, apertura, click, respuesta), configura tus webhooks.

Lo esencial

Base URLhttps://api.reallyquickemails.com
AutenticaciónHeader Authorization: Bearer <api_key> en todos los endpoints
FormatoJSON — Content-Type: application/json
API keyssk_proj_* y sk_live_* (producción) · sk_test_* (modo de prueba)
SDK oficial@reallyquickemails/sdk para Node.js / TypeScript

Qué puedes construir

Emails transaccionales

Lo que acabas de ver: POST /v1/send-email envía a hasta 50 destinatarios con cc/bcc y adjuntos, y POST /v1/send-template-email usa plantillas pre-configuradas con variables. Referencia completa en API Pública v1.

Campañas y envío masivo

POST /v1/send-batch acepta hasta 10,000 destinatarios por request, con variables Handlebars por destinatario vía recipients[].data:

bash
curl -X POST https://api.reallyquickemails.com/v1/send-batch \
  -H "Authorization: Bearer sk_proj_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "sender": "noticias@tudominio.com",
    "senderName": "Mi Empresa",
    "subject": "Oferta especial para ti, {{nombre}}",
    "html": "<h1>Hola {{nombre}}!</h1><p>Tenemos una oferta en {{producto}}.</p>",
    "recipients": [
      { "email": "juan@ejemplo.com", "data": { "nombre": "Juan", "producto": "Plan Pro" } },
      { "email": "maria@ejemplo.com", "data": { "nombre": "Maria", "producto": "Plan Business" } }
    ]
  }'

Soporta idempotencia (header Idempotency-Key), previsualización con dry_run y envío programado con scheduled_at (ISO 8601). Ver API Pública v1 y Programar envíos.

Automatizaciones

Dispara flujos de emails (onboarding, recuperación de carritos, secuencias) desde tu backend con el SDK de Node.js:

ts
import { RQE } from '@reallyquickemails/sdk';

const rqe = new RQE({ apiKey: process.env.RQE_API_KEY });

// Enroll idempotente — pasa trigger_reference_id para que múltiples calls
// con el mismo external_id NO creen runs duplicados, sino que actualicen el run existente
await rqe.automations.enroll('automation-uuid', {
  email: 'user@example.com',
  data: { first_name: 'Adriano', plan: 'pro' },
  trigger_reference_id: 'order-12345',
});

Respuestas entrantes (inbound)

Los emails enviados vía API (POST /v1/send-email, POST /send-email y POST /v1/send-batch) incluyen automáticamente un Reply-To con token único:

text
Reply-To: "Tu Empresa" <r-{token}@rqe.inbound.reallyquickemails.com>

Los clientes de correo muestran el nombre del remitente, no la dirección técnica. Cuando el destinatario responde, la respuesta llega a tu webhook como evento email.inbound — adjuntos incluidos (payload resumido; esquema completo en Webhooks):

json
{
  "event": "email.inbound",
  "timestamp": "2026-04-28T22:45:32.299Z",
  "project_id": "uuid",
  "is_test": false,
  "data": {
    "from": { "email": "cliente@empresa.com", "name": "Cliente Externo" },
    "subject": "Re: Asunto original",
    "text_body": "respuesta del cliente",
    "attachments": [
      {
        "filename": "factura.pdf",
        "content_type": "application/pdf",
        "size": 50826,
        "download_url": "https://..."
      }
    ],
    "original_outbound": { "activity_id": "uuid", "thread_id": "uuid" }
  }
}

Solo aplica a envíos hechos vía API — los envíos desde la UI de RQE (campañas, automatizaciones, "enviar prueba") usan el Reply-To del remitente humano para que reciba la respuesta en su inbox.

Endpoints principales

Método y rutaQué haceReferencia
POST /v1/send-emailEnvío individual (hasta 50 destinatarios), cc/bcc, adjuntosAPI v1
POST /v1/send-template-emailEnvío con plantilla pre-configurada y variablesAPI v1
POST /v1/send-batchHasta 10,000 destinatarios por request, idempotencia, dry run, scheduled_atAPI v1
POST /send-emailAPI avanzada: envío programado con lenguaje natural y timezoneEnviar Email · Scheduling
/v1/leads (POST · GET · PUT · DELETE)CRUD de contactos, segmentos, tags y atributos customLeads
POST /v1/events · POST /v1/events/bulkTracking de eventos custom (bulk hasta 1,000)Events
GET /v1/activity · GET /v1/activity/:idEstado de envíos, timeline de eventos, filtrosActivity
POST /domains/register · POST /domains/:domain/verifyAlta y verificación de dominios (DKIM/SPF/DMARC)Dominios

Los eventos de entrega (email.send, email.delivery, email.bounce, email.open, email.click, email.inbound, entre otros) llegan a tu servidor vía webhooks firmados con HMAC-SHA256 (header X-RQE-Signature).

Errores comunes

CódigoMensajeSolución
401Missing or invalid API key. Use: Authorization: Bearer sk_proj_...Verifica el header Authorization y el prefijo de la key
400Missing required fields: recipient_email, sender_email, html_bodyRevisa los campos requeridos del endpoint
400ENVIRONMENT_NOT_CONFIGUREDEl environment enviado no está configurado en el proyecto — ver Webhook environments
404Template not found with ID ...El template_id no existe en el proyecto de esa API key

Un sender_email de dominio no verificado no produce error síncrono: el request responde 200 y el envío falla en segundo plano. Revisa el estado en Activity y verifica tu dominio en Dominios.

Para agentes IA

Esta documentación está optimizada para consumo por LLMs:

  • /llms.txt — índice de todas las páginas con sus descripciones.
  • /llms-full.txt — todo el contenido de la documentación en un solo archivo.
  • Agrega el sufijo .mdx a la URL de cualquier página para obtener su markdown crudo — por ejemplo, /api-reference/public-api.mdx. Los clientes que envían Accept: text/markdown reciben markdown directamente.

Siguientes pasos

¿Preguntas? Escríbenos a soporte@reallyquickemails.com o consulta las preguntas frecuentes.