groundmail

Compare

Groundmail vs Postmark

Both take transactional email seriously. Groundmail runs its own mail servers on IP space we own, and offers dedicated IPs or a whole dedicated server when your mail needs to stand alone.

At a glance

Transactional focus on infrastructure we own

The job is the same: receipts, password resets and alerts that have to land. Here is how the details line up.

TopicGroundmailPostmark
Sending infrastructureOur own mail servers and our own IP spaceSee their docs
IsolationShared transactional pool, dedicated IPs, or your own dedicated mail serverSee their docs
Email typesTransactional onlyTransactional and broadcast message streams
Send APIPOST api.groundmail.dev/emailsPOST api.postmarkapp.com/email
AuthAuthorization: Bearer gm_…X-Postmark-Server-Token header
Payload fieldsfrom, to, subject, html, textFrom, To, Subject, HtmlBody, TextBody
Other ways to sendSDKs for Node, Python, PHP, Ruby, Go, Laravel and Symfony; SMTP relay; MCP serverSee their docs
PricingFree 3,000/mo · Pro from $20/mo · Dedicated server from $299/moSee their pricing page

Postmark details come from Postmark's public docs. Check them for current features and pricing.

What you get

Own the pipe, then isolate it further

Our servers, our IPs

We operate the mail servers and the IP space your mail leaves from. Reputation work happens on infrastructure we control end to end.

An isolation tier above shared IPs

Dedicated IPs when you want your own reputation. A dedicated mail server, built, warmed and managed by us, when you want your own machine too. Same API either way.

Transactional only

We don't carry marketing or cold email on our IPs. That keeps the shared pool clean for the mail your users are waiting on.

Run by mail operators

Our team has run MTAs at scale and worked with Google Postmaster and Spamhaus directly. When something looks off, we can see it and fix it.

Switching

Map the fields, re-point the webhooks

  • Create a gm_ API key and verify your sending domain
  • Point your client at api.groundmail.dev with a Bearer header
  • Rename HtmlBody, TextBody and friends to their lowercase forms
  • Rebuild templates in the dashboard, or send html from your app
  • Re-point bounce, complaint and delivery webhooks

The Postmark migration guide has the full field list and a cutover checklist.

Mapping

X-Postmark-Server-Token  →  Authorization: Bearer gm_…
POST /email              →  POST /emails
From / To / Subject      →  from / to / subject
HtmlBody / TextBody      →  html / text
ReplyTo                  →  reply_to

curl

curl -X POST https://api.groundmail.dev/emails \
  -H "Authorization: Bearer $GROUNDMAIL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "you@yourdomain.com",
    "to": "user@example.com",
    "subject": "Your receipt",
    "html": "<p>Thanks for your order.</p>"
  }'

FAQ

Questions about switching from Postmark

How do Postmark fields map to Groundmail?

From becomes from, To becomes to, Subject becomes subject, HtmlBody becomes html, TextBody becomes text and ReplyTo becomes reply_to. PascalCase names like HtmlBody are not accepted, so map them in your client. The migration guide has the full list.

What replaces Postmark message streams?

Groundmail is transactional only, so there is no separate stream to pick. If you also send broadcasts, keep those with a provider built for marketing mail and move your transactional sends here.

Are templates and inbound email supported?

Yes. Build templates in the dashboard with {{variables}} and send them by alias from any SDK. Inbound email works per domain: add MX records and receive messages through webhooks or the dashboard.

When do I need a dedicated server instead of dedicated IPs?

Dedicated IPs give your mail its own reputation on our servers. The Dedicated plan gives you your own mail server and IPs, built, warmed and managed by us, from $299/mo including 250,000 emails. It suits teams with allowlists, compliance reviews or strict isolation needs.

How long does a cutover take?

The API swap is usually quick. DNS, webhook re-pointing and template rebuilds take most of the time. Run both providers side by side while you ramp volume, rather than switching everything on day one.

Put your transactional email on solid ground.

Start free on our transactional pool. Move to dedicated IPs or a dedicated server when you need the isolation. Same API either way.