Novedad: campañas, automatizaciones y correos del producto en la misma cuenta. Conoce Postal
Iniciar sesión Crear cuenta

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

POST /emails
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>"
  }'
200Devuelve el id del correo

Sin costo

Qué incluye el plan Gratis

Las cifras vienen directamente del plan, siempre actualizadas.

1.500correos al mes
50correos al día
5peticiones por segundo
1dominio de envío

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 conectar

Cómo empezar

Envía el primer correo en 3 pasos

01

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 pasos
02

Crea una clave de API

En Claves de API, crea una clave solo de envío y guárdala en POSTAL_API_KEY.

Autenticación
03

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 API

Código

Ejemplos en varios lenguajes

Cambia la clave y el remitente.

curl
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>"
  }'
postal-so
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' },
)
postal-php
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>',
]);
requests
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()
POST /emails
{
  "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 y después
Antes
  base URL: https://api.resend.com
  chave:    re_…

Depois
  base URL: https://api.postal.so
  chave:    ps_…

Ver la guía completa

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.

Envía el primer correo por la API

Crea la cuenta, verifica el dominio y haz tu primer POST en el plan Gratis.