SendGrid vs Mailgun: the cheaper bill, or the more developer-minded plan ladder
SendGrid is cheaper than Mailgun wherever their price lists overlap: Essentials is $34.95 at 100,000 emails a month where Mailgun Foundation is $75, and the top plans converge at $89.95 and $90. SendGrid also bundles an optional marketing tool. Mailgun answers with EU sending from one account, longer log retention on its upper plans, inbound routing and signed webhooks with an 8-hour retry window.
By Julian Pryor · Updated 7 Oct 2026
Short answer
Take SendGrid if price matters, your volume sits between 50,000 and 100,000 emails or you want newsletters in the same account. Take Mailgun if EU sending, inbound routes, address validation or an HMAC-signed webhook are requirements. At 100,000 emails on the top plans the price difference disappears, so the features decide.
What 10,000 to 700,000 emails cost on each
SendGrid's Email API selector on Twilio's pricing page shows Essentials at 50,000 to 100,000 emails and Pro from 100,000 upward; Mailgun's slider on its pricing page shows Basic, Foundation and Scale. Both were read on 7 October 2026, and rows without a stop on one side say so.
| Monthly emails | SendGrid | Mailgun | Cheaper |
|---|---|---|---|
| Free tier | 100 a day for 60 days (trial) | 100 a day, no end date shown | Mailgun lasts longer |
| 10,000 | No stop (selector starts at 50,000) | Basic $15 | Not comparable |
| 50,000 | Essentials $19.95 | Foundation $35 | SendGrid by $15.05 |
| 100,000, entry plans | Essentials $34.95 | Foundation $75 | SendGrid by $40.05 |
| 100,000, top plans | Pro $89.95 | Scale $90 | Equal |
| 250,000 to 300,000 | Pro at 300,000: $249 | Scale at 250,000: $215 | Per 1,000: SendGrid $0.83, Mailgun $0.86 |
| 500,000 to 700,000 | Pro at 700,000: $499 | Scale at 500,000: $400 | Per 1,000: SendGrid $0.71, Mailgun $0.80 |
At 50,000 emails the yearly difference is $15.05 x 12 = $180.60, and at 100,000 emails on the entry plans it is $40.05 x 12 = $480.60. When the volumes differ, I compared per-1,000 prices instead: $249 / 300 = $0.83 for SendGrid against $215 / 250 = $0.86 for Mailgun, and $499 / 700 = $0.71 against $400 / 500 = $0.80. SendGrid continues down its ladder to $799 at 1,500,000 emails ($0.53 per 1,000) and $1,099 at 2,500,000 ($0.44), while Mailgun's slider readouts on 7 October stop at 500,000, so past that point only SendGrid has a number to compare. SendGrid's page notes that taxes and overages may apply, and Mailgun lists extra emails from $1.30 per 1,000 on Foundation and $1.10 on Scale.
What each plan holds back
- SendGrid Essentials has no dedicated IP, since the page says Pro and Premier plans include them. If deliverability on shared IPs worries you, the real cost is Pro at $89.95 or more.
- Mailgun Basic keeps logs for 1 day and allows 1 custom sending domain; Foundation moves to 5 days and 1,000 domains; Scale lists 30 days, SAML SSO, dedicated IP pools, send time optimization and live phone and chat support.
- Inbound mail. Mailgun lists 1 inbound route on Free, 5 on Basic and full inbound routing from Foundation, which matters if customers reply to your notifications and you want those replies in your app.
- Validation. Mailgun sells email validations as an add-on from $1.20 per 100 on Basic and Foundation, with 5,000 included on Scale at $0.80 per 100 beyond that.
Marketing email next to the transactional send
SendGrid sells Marketing Campaigns as a separate meter with its own free plan (up to 2,000 contacts and 6,000 emails a month). Per the plan selector, Basic is $15 at 5,000 contacts, $25 at 10,000, $50 at 20,000 and $120 at 50,000, and Advanced is $60 at 10,000 contacts and $250 at 50,000. That gives a SaaS with 10,000 users one extra line of $25 to $60 for newsletters and announcements. Mailgun lists mailing lists and recipient variables in its sending toolkit and no campaign editor, so announcements there mean assembling them yourself or buying a second tool.
Webhooks and the failure window
SendGrid's Event Webhook posts delivery events (processed, delivered, deferred, dropped, bounce) and engagement events including open, click, spam report, unsubscribe and the group variants, and its documentation says to secure it with the Signed Event Webhook, OAuth 2.0 or both (SendGrid event docs). Signing is ECDSA with a key pair generated when you enable it, and verification needs the raw request bytes, because re-serializing JSON can strip characters and break the check.
Mailgun's events are accepted, delivered, temporary_fail, permanent_fail, opened, clicked, unsubscribed and complained, set at account or domain level. Every POST is signed with a hex HMAC-SHA256 of the timestamp and token, keyed with a single Webhook Signing Key that covers every domain on the account, and failures are retried for 8 hours, with a 406 reply meaning stop (Mailgun docs). For a billing flow, the useful pair is SendGrid's dropped and Mailgun's permanent_fail: either one tells your app that a failed-payment email never reached the customer, so a banner in the product can step in.
Where the data lives
Mailgun's pricing page says: "Send email through the US or the EU from a single account." That makes it the simpler answer for a product with European customers who ask where email data sits. SendGrid publishes the Twilio data protection addendum, and its pricing page does not name a hosting region. If your customers' contracts call for one, get the answer from Twilio before you commit.
Which to choose
- Choose SendGrid for volumes of 50,000 to 100,000 emails, when you want a signed webhook with documented options, and when newsletters will share the account.
- Choose Mailgun for EU sending, inbound routes, validation or SAML SSO, or if you want an HMAC-signed webhook with a documented 8-hour retry.
- Recheck at 250,000 emails and up. SendGrid's per-1,000 price keeps falling past the point where Mailgun's published readouts end.
Migrating between them
- Publish the new vendor's SPF and DKIM records for a sending subdomain and keep the old ones live during the overlap.
- Export suppressions: bounces, spam reports and unsubscribes from SendGrid, or the bounce, complaint and unsubscribe lists from Mailgun, and import them before sending.
- Swap the webhook verifier, ECDSA for SendGrid, HMAC for Mailgun, and map event names by hand: dropped to permanent_fail, deferred to temporary_fail.
- Move newsletters last if you use SendGrid Marketing Campaigns, since lists and unsubscribe groups need separate handling.
- Cut over by message type over one to two weeks and keep the old account until its logs are exported.
Related reading: all comparisons, SendGrid vs Postmark, SendGrid vs SparkPost, Resend vs Mailgun and SendGrid vs Amazon SES.
SendGrid vs Mailgun: common questions
Which costs less, SendGrid or Mailgun?
SendGrid, at every volume where the two can be compared. At 100,000 emails SendGrid Essentials is $34.95 and Mailgun Foundation is $75. On the top plans the two meet: SendGrid Pro is $89.95 and Mailgun Scale is $90 at 100,000. Past that, SendGrid Pro is $249 at 300,000 emails, which is $0.83 per 1,000, while Mailgun Scale is $215 at 250,000, which is $0.86 per 1,000.
Does either offer a free plan I can run production on?
Neither is built for it. SendGrid's Email API gives 100 emails a day for 60 days, then you move to Essentials from $19.95. Mailgun's free plan allows 100 emails a day and shows no end date, but it keeps logs for 1 day and allows one custom domain. SendGrid's separate Marketing Campaigns product has a free plan for up to 2,000 contacts and 6,000 emails a month.
Which one offers EU hosting?
Mailgun says on its pricing page that you can send through the US or the EU from a single account and that its service is hosted in both regions. SendGrid's Twilio data protection addendum is published, but its pricing page does not state a hosting region, so a team with a data-location requirement should ask Twilio for the region in writing.
How do their webhooks differ?
Both can be authenticated. SendGrid's Signed Event Webhook uses ECDSA signatures, with an OAuth 2.0 option, and reports processed, delivered, deferred, dropped and bounce events. Mailgun signs every request with an HMAC-SHA256 of a timestamp and token using one account-wide signing key, and retries failures for 8 hours. SendGrid's event reference page does not state how long it retries a failing endpoint, so ask Twilio if that window matters to you.
Can SendGrid handle newsletters too?
Yes, through Marketing Campaigns, priced by contacts: Basic is $25 at 10,000 contacts and Advanced is $60 at 10,000 contacts, per the plan selector. Mailgun's pricing page lists mailing lists and recipient variables but no campaign editor, so a SaaS that wants one vendor for receipts and newsletters has the easier path on SendGrid.