https://api.reallyquickemails.com
Autenticacion
Todos los endpoints requieren Bearer token con una clave del proyecto:
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
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
- cURL
- Python
Ejemplo con múltiples destinatarios + cc + adjunto
- cURL
- Python
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.- Un footer de cancelación de suscripción si el HTML no incluye la URL de unsubscribe.
- Los headers
List-UnsubscribeyList-Unsubscribe-Post(RFC 8058). - Las variables
view_in_browser_urlyunsubscribe_url(si no las envías tú).
Ejemplo con template UUID
- cURL
- Python
Ejemplo con template internal ID
Cada template tiene un ID interno auto-incrementado en el proyecto. Útil para integraciones que prefieren IDs numéricos:- cURL
- Python
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: Respuesta200 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.Headers
Ejemplo con HTML directo
- cURL
- Node.js
- Python
Ejemplo con template
- cURL
- Node.js
- Python
Ejemplo con envio programado
- cURL
- Node.js
- Python
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 opcionalIdempotency-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
Codigos de Error
Gestionar un batch programado
Un batch creado conscheduled_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ó.- cURL
200 OK
PATCH /v1/send-batch/:batchId
Reprograma un batch pendiente a una nueva fecha.- cURL
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.- cURL
200 OK
cancelled es la cantidad de jobs quitados de la cola; activities_updated, los registros de actividad marcados como cancelled.
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:
/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