Setup y API Key

Para empezar a enviar emails con Resend necesitas tres cosas: una cuenta, una API key y el SDK instalado en tu proyecto. Todo el proceso toma menos de 5 minutos.

Crear cuenta en Resend

  1. Ve a resend.com y haz clic en "Get Started"
  2. Puedes registrarte con tu cuenta de GitHub o con email y contraseña
  3. Una vez dentro, llegas al dashboard de Resend

No necesitas tarjeta de crédito. El plan gratuito se activa automáticamente con 3,000 emails al mes.

Obtener tu API Key

  1. En el dashboard, ve a Settings > API Keys
  2. Haz clic en Create API Key
  3. Dale un nombre descriptivo (por ejemplo mi-app-desarrollo)
  4. Selecciona el permiso: Full access para desarrollo, o Sending access si solo necesitas enviar emails
  5. Haz clic en Add
  6. Copia la API key inmediatamente -- solo se muestra una vez
Copia tu API key ahora

Resend solo te muestra la API key completa una vez, en el momento de crearla. Si la pierdes, tendrás que generar una nueva. Guárdala en un lugar seguro.

Instalar el SDK

En tu proyecto de Node.js o Next.js, instala el paquete oficial:

bash
npm install resend

O con otros gestores de paquetes:

bash
# pnpm
pnpm add resend
 
# yarn
yarn add resend
 
# bun
bun add resend

Variables de entorno

Guarda tu API key como variable de entorno. Nunca la pongas directamente en el código.

En tu archivo .env.local:

env
RESEND_API_KEY=re_xxxxxxxxxxxxxxxxxxxxxxxxx
Nunca uses NEXT_PUBLIC_ con tu API key

La API key de Resend es un secreto del servidor. Si le pones el prefijo NEXT_PUBLIC_, Next.js la expone en el bundle del cliente y cualquier persona que visite tu sitio puede ver tu key y enviar emails en tu nombre. Siempre usa RESEND_API_KEY sin prefijo público.

Configurar el cliente

Crea un archivo para instanciar el cliente de Resend. Así lo importas desde cualquier parte de tu aplicación sin repetir la configuración:

typescript
// lib/resend.ts
import { Resend } from 'resend'
 
export const resend = new Resend(process.env.RESEND_API_KEY)

Eso es todo. El constructor de Resend recibe la API key y te devuelve un cliente listo para enviar emails.

Enviar tu primer email de prueba

Resend te da un dominio de prueba (resend.dev) para que puedas enviar emails sin necesidad de verificar tu propio dominio. Vamos a usarlo para tu primer envío.

Crea un Route Handler en tu proyecto de Next.js:

typescript
// app/api/email/route.ts
import { resend } from '@/lib/resend'
 
export async function POST() {
  const { data, error } = await resend.emails.send({
    from: 'Acme <onboarding@resend.dev>',
    to: ['tu@email.com'],
    subject: 'Hola desde Resend',
    html: '<p>Tu primer email con Resend. Si estás leyendo esto, la integración funciona correctamente.</p>'
  })
 
  if (error) {
    return Response.json({ error }, { status: 400 })
  }
 
  return Response.json({ data })
}

Para probarlo, haz un POST a /api/email:

bash
curl -X POST http://localhost:3000/api/email

Deberías recibir una respuesta con el ID del email:

json
{
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
}
El dominio resend.dev es para pruebas

resend.dev es un dominio que Resend te da gratis para testing. Los emails enviados desde este dominio llegan a tu bandeja de entrada pero pueden caer en spam. Para producción, verifica tu propio dominio desde el dashboard en Domains > Add Domain.

Verificar en el dashboard

Después de enviar tu primer email, ve al dashboard de Resend y navega a Emails. Ahí puedes ver:

  • El estado del email (sent, delivered, opened, bounced)
  • La dirección del destinatario
  • El subject
  • La hora de envío
  • Los logs detallados de entrega

Si ves tu email con status "Delivered", todo está funcionando. Si ves "Bounced", revisa que la dirección de destino sea correcta.

Siguiente paso

Con el SDK configurado y tu primer email enviado, ya puedes explorar todas las opciones de envío. En la siguiente sección cubrimos la función resend.emails.send() en detalle con todos sus parámetros.