Tools: Resend Has a Free API — Send Beautiful Transactional Emails With React Email Templates (2026)
What You Get for Free
Quick Start (2 Minutes)
1. Get Your API Key
2. Send an Email (Node.js)
3. Send with React Email Templates
4. Python
5. cURL
Why Developers Are Switching
Free Plan Limits
The Bottom Line
More Free APIs You Should Know About SendGrid, Mailgun, AWS SES — they all work but the developer experience is stuck in 2015. XML templates, complex SMTP configs, and ugly default styling. Resend gives you a modern email API built for developers. Write email templates in React. Send with one API call. 3,000 emails/month free. Sign up at resend.com, grab your API key from the dashboard. A startup CTO told me: "We were using SendGrid. The template editor felt like building a Word doc in 1999. Switched to Resend, wrote our templates in React, and our emails now look exactly like our app. The whole migration took an afternoon." If you are building a modern app and care about email quality — Resend is what email should have been all along. React templates, clean API, generous free tier. Need to extract email addresses from websites? Check out my web scraping tools on Apify — extract contact data from any site automatically. Building something custom? Email me at [email protected] Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse
$ -weight: 500;">npm -weight: 500;">install resend
-weight: 500;">npm -weight: 500;">install resend
-weight: 500;">npm -weight: 500;">install resend
import { Resend } from "resend"; const resend = new Resend("re_YOUR_API_KEY"); await resend.emails.send({ from: "[email protected]", to: "[email protected]", subject: "Welcome to our app!", html: "<h1>Welcome!</h1><p>Thanks for signing up.</p>",
});
import { Resend } from "resend"; const resend = new Resend("re_YOUR_API_KEY"); await resend.emails.send({ from: "[email protected]", to: "[email protected]", subject: "Welcome to our app!", html: "<h1>Welcome!</h1><p>Thanks for signing up.</p>",
});
import { Resend } from "resend"; const resend = new Resend("re_YOUR_API_KEY"); await resend.emails.send({ from: "[email protected]", to: "[email protected]", subject: "Welcome to our app!", html: "<h1>Welcome!</h1><p>Thanks for signing up.</p>",
});
-weight: 500;">npm -weight: 500;">install @react-email/components
-weight: 500;">npm -weight: 500;">install @react-email/components
-weight: 500;">npm -weight: 500;">install @react-email/components
import { Html, Head, Body, Container, Text, Button } from "@react-email/components"; function WelcomeEmail({ name }) { return ( <Html> <Head /> <Body style={{ fontFamily: "sans-serif", background: "#f4f4f5" }}> <Container style={{ padding: "40px", background: "#fff", borderRadius: "8px" }}> <Text style={{ fontSize: "24px", fontWeight: "bold" }}> Welcome, {name}! </Text> <Text>Thanks for joining. Here is what you can do next:</Text> <Button href="https://yourapp.com/dashboard" style={{ background: "#000", color: "#fff", padding: "12px 24px", borderRadius: "6px" }} > Go to Dashboard </Button> </Container> </Body> </Html> );
} // Send it
await resend.emails.send({ from: "[email protected]", to: "[email protected]", subject: "Welcome!", react: <WelcomeEmail name="Alex" />,
});
import { Html, Head, Body, Container, Text, Button } from "@react-email/components"; function WelcomeEmail({ name }) { return ( <Html> <Head /> <Body style={{ fontFamily: "sans-serif", background: "#f4f4f5" }}> <Container style={{ padding: "40px", background: "#fff", borderRadius: "8px" }}> <Text style={{ fontSize: "24px", fontWeight: "bold" }}> Welcome, {name}! </Text> <Text>Thanks for joining. Here is what you can do next:</Text> <Button href="https://yourapp.com/dashboard" style={{ background: "#000", color: "#fff", padding: "12px 24px", borderRadius: "6px" }} > Go to Dashboard </Button> </Container> </Body> </Html> );
} // Send it
await resend.emails.send({ from: "[email protected]", to: "[email protected]", subject: "Welcome!", react: <WelcomeEmail name="Alex" />,
});
import { Html, Head, Body, Container, Text, Button } from "@react-email/components"; function WelcomeEmail({ name }) { return ( <Html> <Head /> <Body style={{ fontFamily: "sans-serif", background: "#f4f4f5" }}> <Container style={{ padding: "40px", background: "#fff", borderRadius: "8px" }}> <Text style={{ fontSize: "24px", fontWeight: "bold" }}> Welcome, {name}! </Text> <Text>Thanks for joining. Here is what you can do next:</Text> <Button href="https://yourapp.com/dashboard" style={{ background: "#000", color: "#fff", padding: "12px 24px", borderRadius: "6px" }} > Go to Dashboard </Button> </Container> </Body> </Html> );
} // Send it
await resend.emails.send({ from: "[email protected]", to: "[email protected]", subject: "Welcome!", react: <WelcomeEmail name="Alex" />,
});
import resend resend.api_key = "re_YOUR_API_KEY" resend.Emails.send({ "from": "[email protected]", "to": "[email protected]", "subject": "Welcome!", "html": "<h1>Welcome!</h1><p>Thanks for signing up.</p>"
})
import resend resend.api_key = "re_YOUR_API_KEY" resend.Emails.send({ "from": "[email protected]", "to": "[email protected]", "subject": "Welcome!", "html": "<h1>Welcome!</h1><p>Thanks for signing up.</p>"
})
import resend resend.api_key = "re_YOUR_API_KEY" resend.Emails.send({ "from": "[email protected]", "to": "[email protected]", "subject": "Welcome!", "html": "<h1>Welcome!</h1><p>Thanks for signing up.</p>"
})
-weight: 500;">curl -X POST "https://api.resend.com/emails" \ -H "Authorization: Bearer re_YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "from": "[email protected]", "to": "[email protected]", "subject": "Welcome!", "html": "<h1>Hello!</h1>" }'
-weight: 500;">curl -X POST "https://api.resend.com/emails" \ -H "Authorization: Bearer re_YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "from": "[email protected]", "to": "[email protected]", "subject": "Welcome!", "html": "<h1>Hello!</h1>" }'
-weight: 500;">curl -X POST "https://api.resend.com/emails" \ -H "Authorization: Bearer re_YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "from": "[email protected]", "to": "[email protected]", "subject": "Welcome!", "html": "<h1>Hello!</h1>" }' - 3,000 emails/month — enough for most side projects
- 100 emails/day sending limit
- React Email — write templates as React components
- Custom domains — send from your own domain
- Webhooks — delivery, open, click, bounce notifications
- REST API + SDKs — Node.js, Python, Go, Ruby, PHP, Elixir
- SMTP support — drop-in replacement for existing setups - 30+ Free APIs Every Developer Should Bookmark
- Algolia Has a Free Tier
- MongoDB Atlas Has a Free Tier
- Auth0 Has a Free Tier
- Cloudinary Has a Free API
- SendGrid Has a Free API
- Stripe Has a Free API
- Supabase Has a Free Tier
- Vercel Has a Free Tier
- NASA Has a Free API
- OpenAI Has a Free API Tier
- PlanetScale Has a Free API
- Upstash Has a Free API
- Neon Has a Free API