Transactional email service ActiveCampaign-owned since May 2022
Postmark logo

Postmark features: what you get on each plan

Feature TL;DR (August 2026)
Postmark covers 40 of the 46 features we test, and almost all of them sit on the free tier: API, SMTP, templates with loops, seven webhook event types, suppression, open and link tracking. The single hard wall is inbound processing, which needs Pro. Since the 2025 repricing, Pro at ten thousand emails a month costs $16.50/month and Platform $18/month, so that wall is now about a dollar fifty high — it used to be sixty.

Feature matrix

FeatureIncludedFrom planVerdict
REST email APIYesFreeFull send API, no tier gate
SMTP relayYesFreeSame surface as the API
Multi-region SMTP routingYesFreeFailover routing on every plan
Bulk Email APIYesFreeChecked on all four tiers
Batch sending, 500 per requestPartialBasicGrid withholds it from Free
Transactional message streamsYesFreeSeparate IP pool, always on
Broadcast message streamsYesBasic15, then 30, then unlimited
Stored templatesYesFree100 per server, hard ceiling
Loops and conditionals in templatesYesFreeRare at this price point
Layout templatesYesFreeOne shell wraps many templates
Template push between serversYesFreeDry run before applying
Template editor and import toolYesFreeIncluded on every tier
Event webhooksYesFreeSeven event types, no gate
Webhook retriesPartialFreeSix attempts inside one hour
HMAC webhook signaturesNoExplicitly unsupported today
Webhook IP allowlistYesFreeDocumented ranges to pin
Basic auth on webhook URLYesFreeCredentials live in the URL
Inbound processingYesProThe only real feature wall
Inbound domain forwardingYesProYour domain, not a hash address
Inbound spam scoringYesProSpam headers passed straight through
Inbound blocking rulesYesProFilter before it reaches you
Open trackingYesFreePixel plus dedicated webhook
Link trackingYesFreeClick webhook included
Suppression managementYesFreeAPI driven, on every plan
Automatic suppressionYesFreeHard bounces removed for you
Granular bounce dataYesFreeTyped bounce records, not codes
Stats APIYesFreeRates queryable, not just shown
Custom taggingYesFreeSlice stats your own way
Sandbox modeYesFreeTest token, no delivery
Activity retentionPartialBasic45 days, longer costs extra
Custom retention add-onYesProFrom $5/month, Pro or higher
Dedicated IPsYesProFrom $50/month per IP, volume floor
DKIM, SPF and DMARC setupYesFreeAuthentication is not upsold
DMARC monitoring add-onYesFree$14/month per domain, any plan
Two-factor authenticationYesBasicAbsent from the free tier
API permission controlsYesBasicScoped tokens need a paid plan
User rolesYesFreeServer admin split from owner
Team seatsPartialBasic4, then 6, then unlimited
ServersPartialBasic5, then 10, then unlimited
Custom sending domainsPartialBasic5, then 10, then unlimited
Official MCP server and CLIYesFreeAgent tooling published, not promised
Contact lists and segmentationNoNo audience layer at all
Signup formsNoNothing hosted, bring your own
Landing pagesNoNot part of the product
A/B testingNoNo split testing anywhere
SMSNoEmail only, no other channel

Feature by feature

Postmark webhooks

Webhooks are on the free tier, with seven event types: delivery, bounce, spam complaint, open tracking, click, subscription change and inbound. Only the last carries a plan condition, because inbound itself needs Pro. The rest fire from the first free send.

The retry policy is where the detail matters. Postmark retries on 5xx, 408, 429 and network failures, never on a 4xx. The schedule is six attempts spaced 1, 5, 10, 10, 10 and 15 minutes apart, so the whole retry window closes in about fifty minutes. An endpoint down for a two hour maintenance slot does not get its events replayed afterwards — it loses them. If your consumer cannot promise better than an hour of uptime, put a queue in front of it.

Security is the other place to read carefully. You can pin Postmark’s published IP ranges, put basic auth credentials in the webhook URL and insist on HTTPS. What you cannot do is verify a signature: the documentation states plainly that Postmark does not currently support HMAC webhook signature verification. Your endpoint therefore authenticates the sender by source address or by a secret sitting in a URL, both of which are weaker than a signed body, and both of which leak into logs more easily than a header does. Treat the payload as unauthenticated input and re-fetch anything consequential through the API.

All seven event types are free; only the inbound webhook waits behind Pro. No signature verification on any plan.

Postmark templates

Templates are free, stored server side, and capped at 100 templates per server. Two kinds exist: standard templates carrying a subject, an HTML body and a text body, and layout templates that wrap a standard template through a content placeholder, so a shared header and footer live in one place.

The templating language is the reason to care. Alongside plain substitution such as {{name}} and dotted paths such as {{company.name}}, it supports conditional blocks and iteration — {{#each person}} walks a list. That sounds unremarkable until you compare it with the stored templates of other transactional providers, several of which offer substitution and nothing else. An order confirmation with a variable number of line items, an invoice with a variable number of rows, a digest with a variable number of items: all of these stay inside a stored Postmark template instead of being rendered in your application and pushed as raw HTML.

The workflow around them is unusually grown up too. Templates can be pushed from one server to another, and the push accepts a dry run flag so you can see what would change before it changes — a staging server and a production server holding the same set, with a reviewable promotion between them.

Two limits to plan around. The hundred is per server, not per account, so a multi tenant setup that gives each customer a server multiplies templates fast but also multiplies the ceiling. And there is no A/B testing anywhere in the product, so comparing two versions means splitting traffic yourself and reading the difference from the Stats API.

Free on every plan, 100 per server, with loops and conditionals. No native way to test one version against another.

Plan gating notes

The free tier is a real tier. It carries ten servers, ten sending domains and six users — more of each than Basic, which drops to five, five and four. Basic buys two factor authentication, API permission controls, batch sending and broadcast streams; it does not buy headroom. Read the free column as a feature tier, not a trial.

The pricing grid contradicts itself on batch sending. Bulk Email API is checked on all four plans while batch sending is dashed on Free. The API reference gates neither, and states a ceiling of 500 messages per batched request with a 50 MB payload. We kept the grid’s stricter reading in the matrix and flag it here rather than pick a side.

Retention is bounded and the extension is gated. Paid plans keep detailed activity for 45 days. Longer windows exist only as an add-on from $5/month, and only on Pro or higher, so an investigation reaching back a quarter is a decision made in advance, not a support request made after the fact. Dedicated IPs are gated the same way: Pro or higher, from $50/month per IP, with a sending floor of 300,000 messages a month before Postmark will warm one.

Continue reading

AAlaa Touil RRabeb How we test →

This review follows our email infrastructure testing methodology. We disclose affiliate relationships in our editorial independence policy.