Half of what a marketing-platform feature page usually covers does not apply here. Mailgun’s own information page describes it as a delivery platform for sending, receiving and tracking at scale, and lists no landing pages, forms, SMS or CRM — absences by design, not gaps. What matters instead are the thresholds that plan cards hide: retention windows, a webhook fan-out limit, and a dedicated IP rule that is not written in the plan name.
| Feature | Included | From plan | Verdict |
|---|---|---|---|
| Webhooks | Yes | Free | Eight event types, three URLs each |
| Email templates | Partial | Foundation | Builder and API gated together |
| Handlebars logic in templates | Partial | Foundation | Five block helpers, no extensions |
| Template versioning | Partial | Foundation | 100 templates, 40 versions each |
| Inbound routing | Partial | Free | One route free, five on Basic |
| Route actions and filters | Yes | Free | forward, store, stop; 4k cap |
| Message retention | Partial | Foundation | One day, seven on Scale |
| Log retention | Partial | Free | One day, five, then thirty |
| Bounce classification | Partial | Free | Window matches log retention exactly |
| Suppression management | Yes | Free | Bounces, unsubscribes and complaints |
| Link and open tracking | Yes | Free | Included at every tier |
| Analytics and reporting | Yes | Free | Scheduled report delivery on Scale |
| Batch sending | Yes | Free | Capped at 1,000 recipients per call |
| SMTP relay | Yes | Free | Full relay from the free plan |
| RESTful send API | Yes | Free | Free tier included, full at Foundation |
| Authentication (SPF, DKIM, DMARC, BIMI) | Yes | Free | Every protocol, no tier gate |
| Email validation | Partial | Scale | Paid add-on below Scale |
| Dedicated IP | Partial | Foundation 100k | Volume tier decides, not plan |
| Dedicated IP pools | Partial | Scale | Pool management is Scale only |
| Send time optimization | Partial | Scale | Nothing equivalent below Scale |
| SAML SSO | Partial | Scale | Scale and Enterprise accounts only |
| Multi-user access and roles | Partial | Foundation | Free capped at one user |
| Inbox placement testing | No | — | Sold separately as Mailgun Optimize |
| A/B testing | No | — | No split testing in Send |
| Landing pages | No | — | Sending platform, nothing to build |
| Web forms | No | — | No form builder at any tier |
| SMS | No | — | Email only, no second channel |
| CRM | No | — | No contact-relationship layer |
Webhooks are available from the free plan with no tier gate, which is the right decision for a platform whose whole job is telling your application what happened to a message. Eight event types are documented: accepted, delivered, temporary_fail, permanent_fail, opened, clicked, unsubscribed and complained. Each is configured on its own, and the help center states the fan-out limit plainly — “Each event type is configured individually and can contain up to 3 URLs per event type.” Three is low if you were planning to feed a warehouse, an alerting service and your application from the same event, and it is the one webhook number worth checking before you design around it.
Delivery semantics are simple: a 200 stops retries, a 406 stops them and marks the payload rejected, and every other status code triggers exponential backoff. Mailgun’s two official surfaces do not agree on the schedule, though. The user manual gives six attempts “during 8 hours” at 5 and 10 and 15 minutes, then 1, 2 and 4 hours; the help center lists seven, starting 10, 10, 15 and 30 minutes. Both put the window at roughly eight hours with nothing queued after it, so treat eight hours as your recovery budget and ignore the interval count.
Templates are the clearest plan gate on the platform. Mailgun’s pricing comparison puts “Email template builder and API” under Foundation, so the visual builder and the templates endpoint arrive together at $35/mo. Below it you compose bodies in your own code and send them inline — fine for one transactional message, painful across a dozen, because every copy change becomes a deploy.
Once unlocked, the limits are generous and precisely documented: “Mailgun caps usage of account-level templates to 100 templates and 40 versions per template,” with the same ceiling applying separately per sending domain. Version history is real: hold forty drafts and pick which is active, so copy changes stop being code changes. Templating runs on a customized Handlebars engine with five block helpers — if, unless, each, with and equal — which covers the conditionals and line-item loops a receipt needs. Custom helpers are not supported, so formatting logic such as currency rounding belongs in your payload.
One deployment detail catches multi-region accounts. Templates are region-isolated: an account sending from both the US and the EU has to create the same template twice, once in each region, and keep the two in step by hand. There is no cross-region sync.
Retention is the real tier ladder. Log retention runs one day on Free and Basic, five days on Foundation and thirty on Scale, and bounce classification expires on exactly the same clock. On the two cheapest plans you have twenty-four hours to work out why a message failed before the evidence is gone. Message retention is separate and shorter still: one day on Foundation, up to seven on Scale. Mailgun’s user manual describes the store() route action as keeping inbound mail “for up to 3 days,” which does not line up with either figure, so if inbound archival matters, confirm the window against your own account rather than the docs.
Test mode is billed. The sending documentation says it outright: “You are charged for messages sent in test mode!” A staging environment left pointed at a live domain runs up real volume against your plan.
See how the volume tiers price out on Mailgun pricing, read the full assessment in our Mailgun review, or compare it with similar sending platforms in Mailgun alternatives.
This review follows our email infrastructure testing methodology. We disclose affiliate relationships in our editorial independence policy.