BLOGS

Supabase Email Rate Limit Exceeded

February 4, 2026

Learn how to fix the Supabase email rate limit exceeded error by routing authentication emails through a third-party SMTP provider in 2 minutes.

Supabase Email Rate Limit Exceeded

Video Walkthrough

If you’ve been building with Supabase, you’ve likely encountered this error:

Email rate limit exceeded

This happens when Supabase’s built-in email service hits its rate limit for authentication emails (password resets, magic links, email confirmations). When this happens, users can’t sign up or recover their accounts.

Why You Need a Third-Party Email Provider

Something many developers don’t realize is how difficult it is to set up email infrastructure from scratch. Unless you’re sending millions of emails per month, you should use a dedicated email provider.

Routing your Supabase authentication emails through a third party solves two problems:

  1. Rate limits disappear - No more blocked authentication flows
  2. Professional domain - Emails come from your domain instead of Supabase’s

Prerequisites

Step 1: Set Up Your Email Provider

Sign up at Pingram.io. During onboarding, you’ll see a Supabase tab specifically for this use case. Select it and click Integrate with Supabase.

If you already have a Pingram account, navigate to Settings > SMTP and use the Integrate with Supabase button.

Step 2: Connect to Supabase

  1. Click the integration button and authorize Pingram
  2. Select your Supabase project from the dropdown
  3. Enter a sender name and address (e.g., “My App” and no-reply@yourdomain.com)

Domain Verification

If you haven’t verified your domain yet, you’ll see a warning. The integration will still work, but emails will not come from your domain until you verify your domain in Pingram.

Bonus: Email Analytics and Logs

That’s it.

With your emails flowing through Pingram, you get visibility into:

Access these from the Logs section in your Pingram dashboard.

Additional Resources

If you want to send custom emails from your Supabase project using Edge Functions, you can follow our guide here.