API de correo gratis
API de correo gratis para enviar desde tu código
Una petición POST /emails envía el correo. API REST con clave de API, SDK para Node.js y PHP, envío por lotes, programación y webhooks, todo en el plan Gratis.
Plan Gratis, sin tarjeta de crédito
curl -X POST https://api.postal.so/emails \
-H "Authorization: Bearer $POSTAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "Loja Exemplo <[email protected]>",
"to": ["[email protected]"],
"subject": "Tu pedido #10482 salió para la entrega",
"html": "<p>El pedido <b>#10482</b> está en camino.</p>"
}'Sin costo
Qué incluye el plan Gratis
Las cifras vienen directamente del plan, siempre actualizadas.
Recursos
Todo lo que hace la API
Las funciones de una API de correo para producto, sin pedir un plan de pago.
Envío simple y por lotes
Un correo por petición, o hasta 100 en una sola. En el lote, o entran todos en la cola o ninguno.
Programación
Pasa scheduled_at con fecha y hora hasta 30 días por delante.
Plantillas con variables
Envía con template y variables: el HTML queda en el panel y el código solo manda los valores.
Webhooks y eventos
Recibe entrega, rebote, apertura, clic y queja en tu sistema, con firma para verificarlos.
Idempotencia y reintento
Reenvía sin miedo a duplicar: la clave de idempotencia garantiza un solo envío.
Servidor MCP
Conecta Claude, Cursor y otras herramientas de IA a tu cuenta mediante el servidor MCP.
Ver cómo conectarCómo empezar
Envía el primer correo en 3 pasos
Crea la cuenta y verifica el dominio
En el panel, en Dominios, añade el dominio y crea los registros de DNS que se muestran.
Primeros pasosCrea una clave de API
En Claves de API, crea una clave solo de envío y guárdala en POSTAL_API_KEY.
Haz un POST /emails
Usa el ejemplo de al lado (cURL, Node.js, PHP o Python) con un remitente de tu dominio verificado.
Referencia de la APICódigo
Ejemplos en varios lenguajes
Cambia la clave y el remitente.
curl -X POST https://api.postal.so/emails \
-H "Authorization: Bearer $POSTAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "Loja Exemplo <[email protected]>",
"to": ["[email protected]"],
"subject": "Tu pedido #10482 salió para la entrega",
"html": "<p>El pedido <b>#10482</b> está en camino.</p>"
}'import { Postal } from 'postal-so'
const postal = new Postal() // lee POSTAL_API_KEY
const { id } = await postal.emails.send(
{
from: 'Mi empresa <[email protected]>',
to: '[email protected]',
subject: '¡Bienvenido!',
html: '<p>Qué bueno tenerte por aquí.</p>',
text: 'Qué bueno tenerte por aquí.',
},
{ idempotencyKey: 'welcome-42' },
)use Postal\Client;
$postal = new Client(); // lee POSTAL_API_KEY
$result = $postal->emails->send([
'from' => 'Mi empresa <[email protected]>',
'to' => '[email protected]',
'subject' => '¡Bienvenido!',
'html' => '<p>Qué bueno tenerte por aquí.</p>',
]);import os
import requests
response = requests.post(
"https://api.postal.so/emails",
headers={"Authorization": f"Bearer {os.environ['POSTAL_API_KEY']}"},
json={
"from": "Loja Exemplo <[email protected]>",
"to": ["[email protected]"],
"subject": "Tu pedido #10482 salió para la entrega",
"html": "<p>El pedido <b>#10482</b> está en camino.</p>",
},
timeout=10,
)
data = response.json(){
"from": "Loja Exemplo <[email protected]>",
"to": "[email protected]",
"template": {
"id": "order-shipped",
"variables": { "NAME": "Ana", "ORDER": "10482" }
}
}Compatible
¿Ya usas Resend? Cambia solo la URL y la clave
La API de Postal usa las mismas funciones y formatos, así que puedes conservar el SDK que ya tienes.
Antes
base URL: https://api.resend.com
chave: re_…
Depois
base URL: https://api.postal.so
chave: ps_…Preguntas sobre la API de correo gratis
¿La API de correo de Postal es gratis?
Sí. El plan Gratis incluye la API completa: 1.500 correos al mes y 50 al día, con un dominio y 5 peticiones por segundo. No hay período de prueba ni tarjeta de crédito.
¿Cuál es el límite de peticiones?
En el plan Gratis, 5 peticiones por segundo por equipo, sumando todas las claves. El envío por lotes ayuda: 100 correos cuentan como una sola petición. Toda respuesta trae los encabezados X-RateLimit-*.
¿Cómo me autentico?
Con una clave de API en el encabezado Authorization: Bearer ps_…. Crea una clave solo de envío para tu sistema y guárdala en una variable de entorno, nunca en el navegador.
¿Existe un SDK?
Sí: postal-so para Node.js y TypeScript (npm install postal-so) y postal-so/postal-php para PHP y Laravel (composer require postal-so/postal-php), con errores tipados, idempotencia y reintento. Para otros lenguajes, la API es HTTP con JSON.
¿Puedo usar el SDK de Resend?
Sí. La API de Postal usa las mismas funciones y formatos: apunta la URL base a https://api.postal.so y usa tu clave de Postal. Consulta la guía para migrar desde Resend.
¿Puedo enviar desde cualquier dirección?
Solo desde dominios que hayas verificado. Añades el dominio en el panel, creas los registros de DNS que se muestran y Postal lo comprueba sola.
¿API o SMTP?
Usa la API para tener etiquetas, programación, plantillas con variables y envío por lotes. Si tu sistema solo sabe hablar SMTP, usa el SMTP gratis con la misma clave.
Mira también
Sigue explorando
Envía el primer correo por la API
Crea la cuenta, verifica el dominio y haz tu primer POST en el plan Gratis.