DocumentacionEnviar email
Enviar email
POST /emails/send — payload, respuesta y plantillas.
Endpoint principal de envio transaccional.
POST https://api.mailingcore.com/emails/send
Authorization: Bearer mc_live_xxxx
X-Tenant-Id: clxxxxxxxx
Content-Type: application/json
Scope requerido: email:send.
Cuerpo de la peticion
{
"to": "[email protected]",
"subject": "Bienvenido a MailingCore",
"htmlBody": "<h1>Hola</h1><p>Gracias por registrarte.</p>",
"textBody": "Hola. Gracias por registrarte.",
"fromEmail": "[email protected]",
"fromName": "Tu App",
"replyTo": "[email protected]",
"tags": ["welcome"],
"metadata": { "userId": "123" },
"idempotencyKey": "welcome-123-v1",
"templateVersionId": "clxversion...",
"unsubscribeLang": "es"
}
Campos
| Campo | Requerido | Descripcion |
|---|---|---|
to | Si | Email del destinatario |
subject | Si | Asunto (max 998 caracteres) |
htmlBody | Si* | HTML del mensaje (*o usa templateVersionId) |
textBody | No | Fallback texto plano |
fromEmail | No | Remitente; dominio debe estar verificado |
fromName | No | Nombre visible del remitente |
replyTo | No | Direccion de respuesta |
tags | No | Etiquetas para filtrar logs |
metadata | No | JSON libre para tu integracion |
idempotencyKey | No | Reintentos seguros (misma key = misma respuesta) |
templateVersionId | No | Version publicada de plantilla |
projectId | No | Proyecto SMTP (avanzado) |
unsubscribeLang | No | Idioma de la pagina de baja en campanas |
Respuesta (async)
{
"id": "clxlog...",
"status": "QUEUED",
"queued": true,
"position": 2
}
En desarrollo puedes forzar envio sincrono con ?sync=true.
Headers de cuota
Cada respuesta puede incluir:
X-Quota-Limit: 5000
X-Quota-Used: 420
X-Quota-Percentage: 8
X-Quota-Warning: true
Detalle en Cuota mensual.
Envio por lotes
POST /emails/batch — hasta 100 destinatarios por peticion. Mismo scope email:send.