Back to blog
Email APIDomainsPricingBest Practices

How to Send Email from Multiple Domains (Without Paying Per Domain)

Most email APIs charge extra for multiple sending domains. Here's how to manage multiple domains with one API key and one bill — and why it matters for developers.

SendPigeon TeamFebruary 3, 20265 min read

If you're a developer or agency managing multiple projects, you've probably hit this problem: you need to send email from noreply@app-one.com and noreply@app-two.com, and your email provider wants you to pay for each domain separately.

This is how most email APIs work. Here's why it doesn't have to be this way.

TL;DR

The problem: Most email APIs limit domains per plan or charge extra for additional domains.

The fix: SendPigeon includes multiple domains in every plan — 10 on Starter ($7/mo), 20 on Growth, 50 on Pro. One API key, one bill, all your projects.


The multi-domain problem

Say you're building SaaS products, freelancing, or running an agency. You have:

  • app-one.com — needs password resets, welcome emails, invoices
  • app-two.com — needs order confirmations, shipping updates
  • client-project.com — needs contact form notifications

Each project needs its own sending domain for proper email authentication (SPF, DKIM, DMARC). You can't send From: noreply@app-one.com through a domain verified for app-two.com without deliverability issues.

So you need three verified domains. How do the major email APIs handle this?


How other providers handle multiple domains

Resend

Resend includes 1 domain on the free plan. The Pro plan ($20/month) includes 10 domains. Need more? The Scale plan ($90/month) jumps to 1,000 domains.

SendGrid

SendGrid lets you add multiple domains, but their Essentials plan starts at $19.95/month and includes basic features. Domain management becomes more complex at scale.

Postmark

Postmark uses "servers" as the organizational unit. Each server can have its own domain. Their pricing is per email volume, but managing multiple servers adds complexity.

Mailgun

Mailgun lets you add multiple domains, but pricing starts at $35/month for the Foundation plan. The free tier is limited to a sandbox domain.

Amazon SES

SES lets you verify as many domains as you want. But SES is a raw API — you need to build your own dashboard, handle bounces/complaints, and manage suppression lists yourself.


The SendPigeon approach

SendPigeon includes multiple domains in every paid plan:

PlanPriceEmails/monthDomains
Free$0/mo1,0001
Starter$7/mo10,00010
Growth$15/mo30,00020
Pro$29/mo100,00050

You pay for email volume, not domains. Adding a new project is free — just verify the domain and start sending.


How it works

1. Add your domains

In the SendPigeon dashboard, add each sending domain. You'll get DNS records to add for SPF, DKIM, and DMARC.

2. Use one API key

All domains share the same API key. Send from any verified domain:

import { SendPigeon } from "sendpigeon";

const client = new SendPigeon(process.env.SENDPIGEON_API_KEY!);

// Project 1
await client.send({
  from: "noreply@app-one.com",
  to: "user@example.com",
  subject: "Welcome to App One",
  html: "<h1>Welcome!</h1>",
});

// Project 2
await client.send({
  from: "noreply@app-two.com",
  to: "user@example.com",
  subject: "Your order is confirmed",
  html: "<h1>Order Confirmed</h1>",
});

// Client project
await client.send({
  from: "noreply@client-project.com",
  to: "admin@client-project.com",
  subject: "New contact form submission",
  html: "<p>Message from a visitor...</p>",
});

3. Track everything in one dashboard

All emails from all domains show up in the same dashboard. Filter by domain, search by recipient, and see delivery status across all your projects in one place.


When you need separate API keys

Sometimes you want isolation between projects — different API keys so a compromised key only affects one project. SendPigeon supports this too:

  • Create multiple API keys in the dashboard
  • Each key can send from any verified domain
  • Revoke a key without affecting other projects

Email authentication per domain

Each domain needs its own email authentication records. This isn't optional — without SPF, DKIM, and DMARC, your emails land in spam.

When you add a domain in SendPigeon, you'll get the exact DNS records to add:

  • SPF — Authorizes SendPigeon to send on behalf of your domain
  • DKIM — Cryptographically signs your emails
  • DMARC — Tells receiving servers what to do with unauthenticated emails

See our email authentication guide for step-by-step setup instructions, or use our email authentication checker to verify your setup.


Common setups

Indie hacker with multiple side projects

You're shipping fast and have 3-5 projects, each on their own domain. The Starter plan ($7/mo) gives you 10 domains and 10,000 emails — enough for all of them combined.

Agency managing client projects

You handle email for multiple clients. Each client has their own domain. The Growth plan ($15/mo) gives you 20 domains. Clients get proper email authentication, you get one bill.

Company with multiple products

Your company runs several products under different brands. Each product has its own domain for transactional email. The Pro plan ($29/mo) gives you 50 domains and 100,000 emails.


Getting started

1

Sign up

Create a free account at sendpigeon.dev/signup. The free plan includes 1 domain and 1,000 emails to get started.

2

Add your domains

Go to Domains in the dashboard and add each sending domain. Follow the DNS setup instructions.

3

Install the SDK

npm install sendpigeon

Available for TypeScript/Node.js, Python, Go, and PHP.

4

Send from any domain

Use the from field to specify which domain to send from. That's it.


Related