Abstract flat illustration of an envelope beside a sliding volume dial and a stack of coins

Mailgun Pricing 2026: Free Tier, Plans and Overages

Mailgun’s free plan sends 100 emails a day. Basic is $15 a month for 10,000 emails, Foundation is $35 for 50,000 (or $75 for 100,000), and Scale runs from $90 for 100,000 to $1,250 for 2.5 million. Above that, Enterprise is a quote.

Overage costs $1.80 per 1,000 on Basic, falling to $0.40 on the biggest Scale tier, and you can’t switch it off.

The quick answer: if you send receipts, password resets and alerts, Foundation at $35 is Mailgun’s sweet spot, and Foundation 100K at $75 is the best deal on the page. If your app has to receive mail and answer it (an AI agent, a support desk, anything with a reply loop), CarlyEmail is built for that: real inboxes with threads assembled for you and mail kept until you delete it. It’s free for 3 inboxes and 1,000 emails a month, then $20 a month for 25 inboxes.

Every Mailgun number below comes from Mailgun’s live pricing page (including the plan data embedded in it) and its help center, checked October 2, 2026. All prices are monthly in USD.

Mailgun Send pricing

Mailgun Send is the email API and SMTP relay. You pick a plan by monthly volume, and on paid plans anything past it is billed at that tier’s overage rate.

PlanPriceEmails / monthExtra emails (per 1,000)
Free$0100 a daynot available
Basic$15/mo10,000$1.80
Foundation$35/mo50,000$1.30
Foundation$75/mo100,000$1.10
Scale$90/mo100,000$1.10
Scale$215/mo250,000$0.90
Scale$400/mo500,000$0.75
Scale$550/mo750,000$0.60
Scale$700/mo1,000,000$0.50
Scale$1,250/mo2,500,000$0.40
EnterpriseQuote2.5M+Custom

How the bill works:

  • Monthly only. No annual toggle appears on the Send, Optimize or Inspect pricing pages. Prices are also listed in euros and pounds (Basic is €14 or £12).
  • Overage can’t be turned off. Mailgun’s help center says so in as many words. Excess mail is billed on the 1st of the next month. If you upgrade before the month ends, the excess comes out of the new plan’s allowance instead.
  • Trials. Foundation and Scale start with a free month. Basic has no trial.
  • Downgrades wait. A downgrade is scheduled and takes effect at the next billing cycle, on the 1st.
  • Legacy plans. Flex, the old pay-as-you-go plan, is retired, and Mailgun’s FAQ still mentions an older Growth plan. If you’re on one, your control panel’s billing page is the source of truth.

What each Mailgun plan includes

FreeBasicFoundationScale
Daily sending limit100nonenonenone
Custom sending domains111,0001,000
Inbound routes15full routingfull routing
Log retention1 day1 day5 days30 days
Message retentionnonenone1 dayup to 7 days
Users11unlimitedunlimited
API keys22role-based keysrole-based keys
Dedicated IPnonobuyable at 50K, 1 included at 100K1 included, plus IP pools
Email validationsnopay per usepay per use5,000 included
Uptime SLAnonoyesyes
SAML SSOnononoyes
Supportticketsticketsticketstickets, live chat, phone

Every plan gets the REST API and SMTP relay, webhooks, templates, suppression management, mailing lists and SPF/DKIM/DMARC/BIMI, and you can send from Mailgun’s US or EU region. Subaccounts (separate accounts per customer) are Enterprise only.

The retention rows matter more than they look. On Basic, if a customer says “I never got the email” two days later, the log is already gone. Log retention is the delivery record; message retention is a stored copy of the email itself.

The Mailgun free tier, in detail

The free plan is permanent and needs no card, but there’s a catch the pricing page leaves out:

  • Without a card on file, you can only send to authorized recipients. That means the sandbox domain (sandboxXXXX.mailgun.org) and up to 5 addresses that each click a verification link. Adding a card unlocks the 1 custom domain, and with it, sending to anyone.
  • 100 emails a day, with no overage option.
  • 1 inbound route, 1 day of logs, no stored message copies, 2 API keys, 1 user, ticket support.

It’s a good sandbox for wiring up an integration. For a product with real users, Basic is the floor.

Mailgun add-ons: validation, Optimize and Inspect

Email validation checks whether an address exists before you send to it. On Basic and Foundation it’s pay per use, priced per 100 checks:

Validations in the monthBasic and FoundationScale
First 5,000$1.20 per 100included
Next 45,000$0.80 per 100$0.80 per 100
Next 50,000$0.50 per 100$0.50 per 100
Next 150,000$0.35 per 100$0.35 per 100
Next 250,000$0.25 per 100$0.25 per 100

Mailgun Optimize is the deliverability product, billed separately from Send:

  • Pilot, $49/mo: 2,500 validations and 25 inbox placement tests.
  • Starter, $99/mo: 5,000 validations, 50 inbox placement tests, spam trap monitoring for 1 domain, blocklist monitoring for 1 IP and 1 domain, Google Postmaster Tools and Microsoft SNDS integration, and an email health score.
  • Contract: custom. Extra inbox placement tests start at $0.75 each. Pilot and Starter start with a free month.

Mailgun Inspect (previews of your email across mail clients) is $99 a month for 1,000 previews or $199 for 2,000 plus accessibility, code, link and spam checks.

Extra dedicated IPs are $59 per IP per month. Mailgun’s own guidance is that a dedicated IP only makes sense once you consistently send 100,000 or more emails a month. Below that, a lone IP doesn’t send enough to build a reputation.

What Mailgun costs at real volumes

The cheapest way to reach each monthly volume with Mailgun’s published tiers and overage rates:

Emails a monthCheapest Mailgun setupMonthly cost
3,000 (100 a day max)Free$0
10,000Basic$15
20,000Basic + 10,000 at $1.80$33
50,000Foundation 50K$35
75,000Foundation 50K + 25,000 at $1.30$67.50
100,000Foundation 100K$75
200,000Foundation 100K + 100,000 at $1.10$185
250,000Scale 250K$215
500,000Scale 500K$400
1,000,000Scale 1M$700
2,500,000Scale 2.5M$1,250

Three things fall out of that table:

  • Basic stops being cheapest at about 21,000 emails. Past that, Basic plus overage costs more than Foundation’s $35, which also gives you 1,000 domains and 5-day logs.
  • Foundation 100K beats Scale 100K by $15 and still includes a dedicated IP. With overage it stays cheaper than Scale up to about 227,000 emails a month.
  • Scale earns its price through features, not volume: 30-day logs, up to 7 days of stored messages, 5,000 validations, SSO, IP pools and phone support. Pay for it when you need those.

Receiving email on Mailgun

Mailgun can receive mail through routes. A route matches incoming mail by recipient or header and then forwards it to a URL or another address, stores it temporarily, or stops processing. Free gets 1 route, Basic 5, Foundation and Scale full routing. A newer Forwards API handles the simple case (forward everything for support@ to a webhook) with wildcard patterns. If that pattern is new, email-to-webhook walks through it.

Mailgun parses inbound mail well, including a stripped-text field with the quoted reply chain removed. What it hands you is one POST per message, and the rest is your build:

  • Threading is your code. Each inbound message arrives as its own record. Matching replies to conversations and keeping In-Reply-To and References right on your answers is up to you.
  • History is short. Stored copies last none (Free, Basic), 1 day (Foundation) or up to 7 days (Scale). An agent that needs last month’s thread needs your own database behind the webhook.
  • Spoof checks are headers you have to read. Inbound spam filtering is off by default. Turn it on and SPF and DKIM results arrive as MIME headers (X-Mailgun-Spf, X-Mailgun-Dkim-Check-Result) that your handler must check. When an LLM reads the mail and follows instructions, a forged “from your CEO” email is an attack.
  • Per-customer isolation is Enterprise. Subaccounts aren’t on any self-serve plan.

When the mail has to come back: CarlyEmail

CarlyEmail is an email API for apps and AI agents that hold conversations. One API call creates a real inbox, at hello@carlyemail.com or on your own domain. Mail from Gmail, Outlook or anything else is received, threaded and stored, including the replies Outlook mangles, and your reply lands inside the thread.

import { CarlyEmail } from "carlyemail";
const carly = new CarlyEmail();
const inbox = await carly.inboxes.create({ username: "hello" });
const { messages } = await carly.messages.list(inbox.email);
await carly.messages.reply(inbox.email, messages[0].message_id, { text: "On it." });

Put the plans side by side for a two-way app:

Mailgun Basic ($15)Mailgun Foundation ($35)CarlyEmail Startup ($20)
Sends a month10,00050,00010,000; received mail isn’t counted
Inboxesnone; routes POST each message to younone; routes POST each message to you25 real inboxes
Threadingyour codeyour codeassembled automatically
Stored copy of each emailnone1 dayuntil you delete it, within 25 GB
Custom domains11,00010
Team seats1unlimited10
Per-customer isolationEnterprise subaccountsEnterprise subaccounts5 pods, keys scoped per pod or inbox
Spoofed mailheaders to check, if filtering is onheaders to check, if filtering is onseparate message.received.unauthenticated event
At the limitoverage billed, can’t be switched offoverage billed, can’t be switched offrefused with a 429 naming the cap

What you stop building:

  • Events that resume the right conversation. Signed webhooks and WebSockets fire on arrival carrying a thread_id, so Michael’s support agent picks up the thread where it left off.
  • Spoof filtering before your handler. Mail failing SPF, DKIM or DMARC arrives as message.received.unauthenticated and spam as message.received.spam, so a forged sender never reaches your message.received code. It’s kept and labelled, not dropped.
  • Tenant isolation on every plan. Pods give each customer their own space, and an API key can be scoped to one pod or one inbox. Another tenant’s mail returns 404.
  • A human-in-the-loop guardrail the agent can’t argue past. A key with draft_create but not message_send gets a 403 on send. The agent drafts, Claire approves.
  • Every interface your stack already speaks. REST, a TypeScript SDK (npm install carlyemail), a Python SDK (pip install carlyemail), a CLI, and a hosted MCP server at https://api.carlyemail.com/mcp. Guides cover LangChain, the OpenAI Agents SDK, the Claude Agent SDK, the Vercel AI SDK, Mastra and Cloudflare Agents. You keep your agent and your model key.
  • An agent can sign itself up. Paste this into any agent: Read https://docs.carlyemail.com/llms.txt and set yourself up with an email address. Until you confirm a 6-digit code, the account can only email you.

CarlyEmail pricing: Free is $0 with no card: 3 inboxes, 1,000 emails a month (100 a day), 1 custom domain, 1 GB of storage. Startup is $20 a month for 25 inboxes, 10,000 emails, no daily cap, 10 domains and 25 GB. Business is $200 a month for 250 inboxes, 100,000 emails, 100 domains and 250 GB. Enterprise covers higher volume, a dedicated sending domain or custom terms. Every plan gets the whole API, there’s no “Sent via” footer even on free, and the free custom domain works without a card. Get started at carlyemail.com.

The honest scope line: if all you do is send receipts at volume, Mailgun is priced for that. Foundation’s 50,000 emails for $35 is more one-way mail per dollar than CarlyEmail offers, and Scale adds IP pools and an EU region for big senders. If mail has to come back and be answered, that’s what CarlyEmail is for, and plenty of teams run both: Mailgun for notifications, CarlyEmail for the agent’s inbox.

For the wider field, see Mailgun alternatives, SendGrid vs Mailgun, SendGrid pricing, Resend pricing, Amazon SES pricing and email APIs for AI agents.

FAQ

Is Mailgun free?

Yes. The free plan is permanent: 100 emails a day, 1 custom domain, 1 inbound route, 1 day of logs and 2 API keys, for a single user. Until you add a card, you can only send from the sandbox domain to up to 5 verified addresses. There’s no overage on free.

How much does Mailgun cost per month?

Basic is $15 for 10,000 emails. Foundation is $35 for 50,000 or $75 for 100,000. Scale runs from $90 for 100,000 to $1,250 for 2.5 million. Overage is $1.80 per 1,000 on Basic, $1.30 or $1.10 on Foundation, and $1.10 down to $0.40 on Scale.

What happens if I go over my Mailgun plan?

Mailgun keeps sending and bills the extra emails at your tier’s overage rate on the 1st of the next month. You can’t disable overage. Upgrading before the month ends moves the excess into the new plan’s allowance instead.

Does Mailgun offer annual pricing?

Not on its pricing pages. Send, Optimize and Inspect are listed as monthly prices with no annual toggle. Foundation and Scale include a free first month, and longer contracts go through Mailgun’s sales team as Enterprise.

How much is a dedicated IP on Mailgun?

One is included with Foundation 100K ($75) and Scale, and Foundation 50K can add one. Extra dedicated IPs are $59 per IP per month. Mailgun recommends one only if you consistently send 100,000 or more emails a month.

Can Mailgun receive email for an AI agent?

It can receive through routes, which POST each message to your endpoint, but threading, history beyond 1 to 7 days and spoof checks are yours to build. CarlyEmail gives each agent a real inbox with threads, signed events and mail kept until you delete it, free for 3 inboxes.

Give your agent a real inbox

Your agent gets its own email address. People can email it, it answers in the same thread, and your personal inbox stays out of it. Start with 3 inboxes, no card needed.

Get started
See the prompt
Read https://docs.carlyemail.com/llms.txt and set yourself up with an email address.