Skip to main content
La API pública v1 de ReallyQuickEmails (RQE) expone endpoints autenticados con Bearer token para integraciones externas. Base URL: https://api.reallyquickemails.com

Autenticacion

Todos los endpoints requieren Bearer token con una clave del proyecto:
Se aceptan tres prefijos de clave: Las claves se generan desde el panel de administración del proyecto. Una clave inválida o ausente responde 401 Unauthorized. Los requests con body requieren además el header Content-Type: application/json.

Respuesta de error de autenticacion

Si el prefijo es válido pero no corresponde a ningún proyecto:

POST /v1/send-email

Envía un email individual a hasta 50 destinatarios.

Request Body

El tracking de aperturas y clics se aplica en segundo plano (los remitentes transaccionales lo omiten). Este endpoint no agrega footer de unsubscribe ni headers List-Unsubscribe — esos se agregan automáticamente en campañas y en /v1/send-template-email; en /v1/send-batch los pasas mediante custom_headers.

Ejemplo simple

Ejemplo con múltiples destinatarios + cc + adjunto

Respuesta 200 OK
email_id es el ID de actividad del envío — úsalo para correlacionar los eventos de tus webhooks. Es null si el registro de actividad no pudo crearse.
Se verifica al procesar el envío en segundo plano. Si el destinatario está suprimido (rebote, queja o baja), el email no se envía y la actividad queda con estado suppressed. Este endpoint no devuelve una respuesta skipped síncrona — /v1/send-template-email sí verifica la supresión antes de responder.

Codigos de Error

¿Necesitas envío programado, dry_run o plantillas en envíos individuales? Ver API avanzada de envío.

POST /v1/send-template-email

Envía un correo con una plantilla pre-configurada y sustitución de variables (soporta loops {{#each}}).

Request Body

*Debes enviar template_id O template_internal_id. Si no envías ninguno, html_body (junto con recipient_email y sender_email) es requerido.
Este endpoint agrega automáticamente:
  • Un footer de cancelación de suscripción si el HTML no incluye la URL de unsubscribe.
  • Los headers List-Unsubscribe y List-Unsubscribe-Post (RFC 8058).
  • Las variables view_in_browser_url y unsubscribe_url (si no las envías tú).
Las respuestas del destinatario van a la bandeja del remitente — ver Reply-To Automático.

Ejemplo con template UUID

Ejemplo con template internal ID

Cada template tiene un ID interno auto-incrementado en el proyecto. Útil para integraciones que prefieren IDs numéricos:
Respuesta 200 OK
variables_used incluye las variables inyectadas automáticamente (view_in_browser_url, unsubscribe_url). used_cached_html es true cuando se usó el HTML pre-renderizado de la plantilla.

Respuesta cuando el destinatario esta suprimido (200)

Si el destinatario se dio de baja o rebotó, el email se omite automáticamente: Respuesta 200 OK

Codigos de Error

Ver más en Plantillas.

POST /v1/send-batch

Envía correos masivos en un solo request — hasta 10,000 destinatarios por llamada.

Request Body

*Debes enviar templateId O ambos subject + html.
email_type ahora usa transactional como default (antes era marketing solo en este endpoint, distinto del resto de la API). Si mandas campañas por send-batch, declara email_type: "marketing" explícitamente: sin el campo, el envío no respeta las bajas voluntarias. Los rebotes y las quejas siguen bloqueando en ambos casos.
Estructura de cada recipient:

Headers

Ejemplo con HTML directo

Ejemplo con template

Ejemplo con envio programado

Respuesta 200 OK
El activity_id de cada destinatario permite rastrear el estado de entrega vía webhooks.
Igual que en /v1/send-email, se aplica al procesar cada envío en segundo plano — los destinatarios suprimidos se omiten y su actividad queda con estado suppressed.

Idempotencia

Envía el header opcional Idempotency-Key (1–256 caracteres) para evitar duplicados ante reintentos. Las respuestas 2xx o 4xx se cachean por 24 horas, con alcance por proyecto. Si repites la clave dentro de ese plazo, recibes la respuesta cacheada sin re-procesar el batch, con el header Idempotency-Replayed: true. En el SDK de Node.js, pásala como segundo argumento: rqe.emails.sendBatch(params, { idempotencyKey }). Ver más en SDK de Node.js.

Dry run

Con "dry_run": true la API devuelve una previsualización, sin encolar emails ni crear registros de actividad:

Limites

Para más de 10,000 destinatarios, usa múltiples llamadas o crea una campaña desde el Dashboard de RQE, que maneja lotes y reintentos automáticamente. Ver más en Campañas.

Codigos de Error

Gestionar un batch programado

Un batch creado con scheduled_at en el futuro se puede consultar, reprogramar o cancelar mientras no haya salido. Usa el batch_id que devolvió POST /v1/send-batch, con el mismo Bearer token sk_proj_....

GET /v1/send-batch/:batchId

Devuelve el estado de un batch programado que aún no salió.
Respuesta 200 OK

PATCH /v1/send-batch/:batchId

Reprograma un batch pendiente a una nueva fecha.
Respuesta 200 OK
rescheduled es la cantidad de jobs reprogramados a la nueva fecha.

DELETE /v1/send-batch/:batchId

Cancela un batch programado antes de que salga.
Respuesta 200 OK
cancelled es la cantidad de jobs quitados de la cola; activities_updated, los registros de actividad marcados como cancelled.
Estos endpoints solo aplican a batches con scheduled_at en el futuro que aún no salieron. Un batch inmediato (sin scheduled_at) se encola al instante y no se puede cancelar. Las activities de un batch cancelado quedan con estado cancelled y el motivo en error_code/error_message.

Reply-To Automatico (Inbound Email)

Los correos de /v1/send-email y /v1/send-batch incluyen automáticamente un header Reply-To con el nombre del remitente:
Los clientes de correo (Gmail, Outlook, Apple Mail) muestran el nombre del remitente, no la dirección técnica. Cuando el destinatario responde, la respuesta se enruta a RQE y se asocia al hilo original. No requiere configuración. Para recibir notificaciones de respuestas entrantes, configura un webhook de inbound email. En /v1/send-template-email las respuestas van directo a la bandeja del remitente: el Reply-To usa la dirección de respuesta configurada en el perfil del remitente, o el propio sender_email si no hay una.

APIs de Gestion de Datos

Además del envío, la API v1 incluye endpoints para gestionar leads, eventos, tags y atributos. Documentación completa en:
  • Leads API — CRUD de leads, segmentos, tags y atributos
  • Events API — Tracking de eventos custom desde tus apps

Resumen rapido