DEV Community

Alex Spinov
Alex Spinov

Posted on

SendGrid Has a Free Email API — Send 100 Emails Per Day Without Managing Mail Servers

SendGrid Has a Free Email API — Send 100 Emails Per Day Without Managing Mail Servers

SendGrid (now part of Twilio) is the email delivery service behind billions of emails. 100 emails/day free, forever — enough for side projects and early-stage startups.

Free Tier (Forever Free)

  • 100 emails/day (3,000/month)
  • Email API (REST + SMTP)
  • Dynamic templates
  • Delivery optimization
  • 7-day activity feed
  • Suppression management

Quick Start: Node.js

const sgMail = require('@sendgrid/mail');
sgMail.setApiKey('SG.your-api-key');

const msg = {
  to: 'user@example.com',
  from: 'noreply@yourapp.com',
  subject: 'Welcome to Our Platform!',
  text: 'Thanks for signing up.',
  html: '<h1>Welcome!</h1><p>Thanks for signing up.</p>'
};

await sgMail.send(msg);
Enter fullscreen mode Exit fullscreen mode

Dynamic Templates

// Use pre-built templates with variables
await sgMail.send({
  to: 'user@example.com',
  from: 'noreply@yourapp.com',
  templateId: 'd-abc123',
  dynamicTemplateData: {
    name: 'Jane',
    orderId: '#12345',
    items: [
      { name: 'Widget', price: '$29.99' },
      { name: 'Gadget', price: '$49.99' }
    ],
    total: '$79.98',
    tracking_url: 'https://track.example.com/12345'
  }
});
Enter fullscreen mode Exit fullscreen mode

Batch Sending

// Send to multiple recipients
const messages = users.map(user => ({
  to: user.email,
  from: 'noreply@yourapp.com',
  templateId: 'd-weekly-digest',
  dynamicTemplateData: {
    name: user.name,
    articles: user.recommendedArticles
  }
}));

await sgMail.send(messages);
Enter fullscreen mode Exit fullscreen mode

Event Webhooks

app.post('/webhooks/sendgrid', (req, res) => {
  const events = req.body;
  events.forEach(event => {
    switch (event.event) {
      case 'delivered': console.log('Delivered to', event.email); break;
      case 'open': console.log('Opened by', event.email); break;
      case 'click': console.log('Clicked:', event.url); break;
      case 'bounce': console.log('Bounced:', event.email, event.reason); break;
      case 'spam_report': console.log('Spam:', event.email); break;
    }
  });
  res.sendStatus(200);
});
Enter fullscreen mode Exit fullscreen mode

The Bottom Line

SendGrid's 100 emails/day free tier is the easiest way to add transactional email to your app. Clean API, good deliverability, and zero infrastructure to manage.


Need to validate email lists, extract contact data, or build automated email workflows? I create custom solutions.

📧 Email me: spinov001@gmail.com
🔧 My tools: Apify Store

Top comments (0)