DEV Community

Alex Spinov
Alex Spinov

Posted on

SendGrid Has a Free API — Send 100 Emails Per Day With Templates, Analytics, and Deliverability Built In

SendGrid's free tier gives you 100 emails per day — forever, not just a trial. That's 3,000 emails per month with delivery tracking, templates, and analytics. No credit card required.

Get Your Free API Key

  1. Sign up at sendgrid.com
  2. Go to Settings → API Keys → "Create API Key"
  3. Select "Full Access" or "Restricted Access" with Mail Send permission
  4. Copy your key (starts with SG.)

1. Send an Email

curl -X POST "https://api.sendgrid.com/v3/mail/send" \
  -H "Authorization: Bearer SG.YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "personalizations": [{"to": [{"email": "recipient@example.com"}]}],
    "from": {"email": "you@yourdomain.com", "name": "Your App"},
    "subject": "Welcome to My App!",
    "content": [{"type": "text/html", "value": "<h1>Welcome!</h1><p>Thanks for signing up.</p>"}]
  }'
Enter fullscreen mode Exit fullscreen mode

2. Python — Transactional Emails

from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail

sg = SendGridAPIClient("SG.YOUR_API_KEY")

def send_welcome_email(to_email, username):
    message = Mail(
        from_email="noreply@yourapp.com",
        to_emails=to_email,
        subject=f"Welcome, {username}!",
        html_content=f"""
        <h2>Hey {username},</h2>
        <p>Your account is ready. Here's what you can do next:</p>
        <ul>
            <li>Complete your profile</li>
            <li>Explore the dashboard</li>
            <li>Invite your team</li>
        </ul>
        <p>Questions? Reply to this email.</p>
        """
    )
    response = sg.send(message)
    print(f"Status: {response.status_code}")

send_welcome_email("user@example.com", "Alex")
Enter fullscreen mode Exit fullscreen mode

3. Node.js — Order Confirmation

const sgMail = require("@sendgrid/mail");
sgMail.setApiKey("SG.YOUR_API_KEY");

async function sendOrderConfirmation(email, orderId, total) {
  await sgMail.send({
    to: email,
    from: "orders@yourshop.com",
    subject: `Order #${orderId} Confirmed`,
    html: `
      <h2>Order Confirmed!</h2>
      <p>Order #${orderId} — Total: $${total}</p>
      <p>We'll email you when it ships.</p>
    `,
  });
  console.log(`Confirmation sent to ${email}`);
}

sendOrderConfirmation("buyer@example.com", "1234", "49.99");
Enter fullscreen mode Exit fullscreen mode

Free Tier

Feature Limit
Emails/day 100
Emails/month ~3,000
Dynamic templates Unlimited
Analytics Full (opens, clicks, bounces)
APIs Full access
Dedicated IP Paid only

What You Can Build

  • Welcome emails — auto-send on user signup
  • Password reset — secure reset link delivery
  • Order notifications — confirmation, shipping, delivery
  • Newsletter — weekly digest for your subscribers
  • Alert system — error notifications, daily reports
  • Invoice emails — auto-generate and send invoices

More Free API Articles


Need Web Data? Try These Tools

If you're building apps that need web scraping or data extraction, check out my ready-made tools on Apify Store — scrapers for Reddit, YouTube, Google News, Trustpilot, and 80+ more. No coding needed, just run and get your data.

Need a custom scraping solution? Email me at spinov001@gmail.com


More Free APIs You Should Know About

Need custom data scraping? Email me or check my Apify actors.

Top comments (0)