Email API-first: qué proveedor elegir si tu producto envía desde código
Por Mara Levin · Actualizado el 7 de octubre de 2026 · Precios comprobados en las páginas de cada proveedor ese mismo día.
La respuesta corta
Si escribes TypeScript y tus plantillas están en React, empieza por Resend: su plan gratuito admite 3.000 correos al mes y el de pago cuesta $20 por 50.000. Si lo que te preocupa es que los correos transaccionales lleguen siempre y quedan aislados de todo lo demás, mira Postmark. Si envías mucho y ya vives en AWS, Amazon SES sale a $0,16 por cada 1.000 correos. Mailgun y SendGrid compensan cuando necesitas más superficie de API, como rutas, validación de direcciones o subusuarios.
Esta guía deja fuera las plataformas de marketing con automatizaciones visuales. Para eso están las páginas de automatización de marketing y correo transaccional.
Comparativa de un vistazo
Todos los precios son los publicados en la página de precios de cada proveedor el 7 de octubre de 2026. Los límites diarios del plan gratuito importan más de lo que parece: con 100 correos al día no puedes ni siquiera hacer un envío de prueba a toda tu base de beta testers.
| Servicio | Plan gratuito | Primer plan de pago | Verificación de webhooks |
|---|---|---|---|
| Resend | 3.000 al mes, 100 al día, 3 dominios | Pro: $20 al mes por 50.000 | Firma Svix; método de verificación en el SDK |
| Postmark | 100 al mes, sin excedente | Basic: $15 al mes desde 10.000 | Autenticación básica HTTP y lista de IP |
| Mailgun | 100 al día, 1 dominio | Basic: $15 al mes por 10.000 | Configurable por evento y dominio |
| Amazon SES | Plan gratuito durante 6 meses desde el alta | Essentials: $0,16 por 1.000 | Eventos mediante SNS |
| SendGrid | Prueba de 60 días, 100 al día | Essentials desde $19,95 (50.000 a 100.000) | Event Webhook hacia uno o varios endpoints |
| SMTP2GO | 1.000 al mes, 200 al día | Starter: $15 al mes por 10.000 | Webhooks para entrega, rebote y clics |
| Mailjet | 6.000 al mes, 200 al día | Essential: $19 al mes por 15.000 | Webhooks de envío, apertura y rebote |
Cuánto pagas realmente a tres volúmenes
El precio de entrada engaña porque cada proveedor cobra el excedente de forma distinta. Estas cuentas usan las cifras publicadas de cada plan y no incluyen impuestos ni complementos como IP dedicada.
- 10.000 correos al mes. Postmark Basic, Mailgun Basic y SMTP2GO Starter cuestan $15 cada uno. Resend Pro son $20 y trae 50.000 incluidos. SES Essentials sale a 10 × $0,16 = $1,60.
- 50.000 correos al mes. Resend Pro: $20. Mailgun Foundation: $35. SES: 50 × $0,16 = $8. Aquí Postmark deja de ser barato: el control deslizante de su página de precios marcaba el 7 de octubre de 2026 $55 en Basic, $60,50 en Pro y $66 en Platform. SMTP2GO queda en $15 + 40 × $1,20 = $63.
- 100.000 correos al mes. SES: 100 × $0,16 = $16. Resend Pro marca $35 en el control deslizante de su página de precios, frente a $90 del plan Scale. Mailgun Scale cuesta $90 y SendGrid Pro parte de $89,95. El control deslizante de Postmark no tiene un punto en 100.000 (el más cercano, 125.000, marcaba $115 en Basic), así que consulta tu volumen en su página en lugar de calcularlo con el excedente.
La lectura útil es que a bajo volumen casi todo cuesta lo mismo y la decisión es de ergonomía, mientras que pasados los 50.000 mensuales SES y Resend se separan claramente de los proveedores que cobran el excedente a más de un dólar por mil.
Enviar con Resend y React Email: un ejemplo que sigue la documentación
Resend recomienda guardar la clave en una variable de entorno y pasar el componente de plantilla en el parámetro react. La plantilla usa los componentes de React Email tal como los presenta su guía de instalación manual; el envío sigue la guía de Resend para Next.js.
// emails/bienvenida.tsx
import { Button, Html, Head, Body } from "react-email";
import * as React from "react";
export function Bienvenida({ nombre }: { nombre: string }) {
return (
<Html>
<Head />
<Body>
<h1>Hola, {nombre}</h1>
<Button
href="https://example.com/empezar"
style={{ background: "#000", color: "#fff", padding: "12px 20px" }}
>
Empezar
</Button>
</Body>
</Html>
);
}
// enviar.ts
import { Resend } from "resend";
import { Bienvenida } from "./emails/bienvenida";
const resend = new Resend(process.env.RESEND_API_KEY);
const { data, error } = await resend.emails.send({
from: "Acme <onboarding@resend.dev>",
to: ["delivered@resend.dev"],
subject: "Te damos la bienvenida",
react: Bienvenida({ nombre: "Lucía" }),
});
if (error) console.error({ error }); Fíjate en que el remitente y el destinatario son las direcciones de prueba de resend.dev que usa la propia documentación. Antes de enviar a clientes reales tendrás que verificar tu dominio. Si no usas React, la misma llamada acepta el parámetro html con una cadena ya generada, que es justo lo que produce un compilador como MJML.
Webhooks: lo que cambia de un proveedor a otro
Un handler de webhooks de producción hace tres cosas: autentica la petición, responde rápido con un 200 y procesa el evento después, de forma idempotente, porque los reintentos significan que recibirás duplicados. Lo primero es lo que más varía.
- Resend firma con Svix y exige verificar contra el cuerpo en bruto. Si tu framework parsea el JSON y lo vuelve a serializar, la firma deja de coincidir. Es el error más habitual, y su guía de verificación lo advierte expresamente.
- Postmark no firma los webhooks. Según su documentación de webhooks, la protección recomendada es la autenticación HTTP básica más la lista de IP permitidas. Copiar un ejemplo con HMAC pensado para otro proveedor no te protege aquí.
- Amazon SES publica los eventos en temas de SNS, que a su vez llaman a tu endpoint, a una función Lambda o a una cola. Es más piezas, pero encaja si ya lo gestionas todo en AWS.
Qué elegir según tu situación
Producto en Next.js o React con plantillas en el repositorio
Resend. La plantilla es un componente con tipos, el envío es una llamada y los dos viven en el mismo pull request. Cuando el volumen suba, el plan Pro con excedente a $0,90 por mil te da margen antes de plantearte otro proveedor.
Correo transaccional crítico: recibos, accesos, alertas
Postmark, con el matiz de que sale bastante más caro al subir de volumen ($55 frente a $20 de Resend a 50.000 correos). Si prevés superar con frecuencia los 10.000 mensuales, lee tu volumen en el control deslizante de su página de precios. Lo que sí ofrece es un entorno de pruebas y streams separados para que un envío masivo no contamine la reputación del tráfico transaccional.
Mucho volumen y equipo con experiencia en AWS
Amazon SES. Asume que serás tú quien monte la gestión de rebotes y quejas y que el soporte es el de AWS, no el de un equipo de producto. A cambio, la factura de 100.000 correos son $16.
Necesitas más de lo básico: rutas, validación, subcuentas
Mailgun o SendGrid. Mailgun ofrece plan gratuito de 100 correos diarios y planes desde $15; SendGrid añade las líneas de Marketing Campaigns con un plan gratuito de hasta 2.000 contactos si algún día mezclas transaccional y campañas.
Todavía envías por SMTP y quieres migrar poco a poco
SMTP2GO permite empezar cambiando solo las credenciales SMTP y pasar a la API cuando te convenga, con 1.000 correos gratis al mes para probar el flujo.
Cuatro comprobaciones antes de comprometerte
- Envía desde tu dominio real en la primera semana. Un proveedor puede funcionar perfecto con su dominio de pruebas y fallar al verificar tus registros DNS.
- Provoca un rebote y una queja a propósito y comprueba que tu aplicación los recibe y deja de escribir a esa dirección.
- Guarda el identificador de mensaje que devuelve la API junto al registro del usuario. Cuando soporte te pregunte qué pasó con un correo concreto, lo necesitarás.
- Aísla el proveedor detrás de una función tuya. Si cambiar de servicio es tocar un archivo, la decisión de hoy no te ata.
Qué mirar en las plantillas
La API resuelve el transporte, pero la plantilla sigue siendo HTML para clientes de correo difíciles. Si prefieres un marcado más cerca del correo que de React, compara MJML y React Email, y si necesitas que marketing edite sin pasar por código, repasa la guía de constructores de HTML. Para el flujo completo desde el código hasta la bandeja de entrada, el resumen de herramientas para desarrolladores amplía lo que aquí queda fuera.
Preguntas frecuentes
¿Qué significa que un servicio de email sea API-first?
Que todo lo importante se puede hacer con una petición HTTP: enviar, consultar el estado de un mensaje, gestionar dominios y recibir eventos por webhook. El panel web es un extra, no la vía principal. En la práctica significa que puedes versionar tu configuración, probar el envío en CI y no depender de que alguien pulse botones en un dashboard.
¿Resend o Postmark para una aplicación pequeña?
Si tus plantillas ya viven en React, Resend es la opción más cómoda porque acepta un componente directamente en la llamada de envío. Si lo que envías son recibos, restablecimientos de contraseña e invitaciones y quieres separar ese tráfico de cualquier envío promocional, el modelo de streams de Postmark está pensado para eso. A 10.000 correos al mes el precio de entrada de Postmark es de $15 y el de Resend ofrece 50.000 por $20, así que el coste rara vez decide.
¿Cómo compruebo que un webhook viene realmente del proveedor?
Depende del proveedor y conviene leer su documentación. Resend firma los eventos con Svix y su SDK trae un método para verificar la firma sobre el cuerpo sin modificar. Postmark no firma sus webhooks: recomienda proteger la URL con autenticación HTTP básica y permitir solo sus rangos de IP. Con SES los eventos llegan a través de SNS, que tiene su propio mecanismo de verificación.
¿Merece la pena Amazon SES si soy un equipo de dos personas?
Solo si ya trabajas dentro de AWS o tu volumen es alto. A $0,16 por cada 1.000 correos es la opción más barata por mensaje, pero te toca configurar la identidad del dominio, los eventos en SNS y el tratamiento de rebotes. Si ese trabajo te cuesta más de una tarde cada trimestre, la diferencia de precio con Resend o Mailgun se evapora.
¿Puedo probar el envío sin mandar correos de verdad?
Sí. Resend publica direcciones de prueba en el dominio resend.dev que simulan entregas y rebotes sin dañar la reputación de tu dominio, y Postmark tiene un modo sandbox para servidores. Para desarrollo local también sirve un servidor SMTP de captura como Mailpit, que no depende de ningún proveedor.