Everything you expect from Resend or Postmark: a REST API, SMTP, newsletters, open and click tracking, and deliverability monitoring. The difference is where the mail goes out. It leaves through your AWS account at Amazon's own rate, and sendvia adds no markup. Flat $19 a month for the platform.
The platform side of sending: an API, a relay, campaign tools, and the monitoring that tells you whether the mail arrived. Amazon does the delivery, and bills you for it directly.
Every message is dispatched to Amazon SES under credentials you create and can revoke. The sending identity and the bill from Amazon stay with you.
Drop-in SMTP for existing tools (WordPress, Rails, Postfix) on ports 587 / 2525. REST API when you want it. Auth with your API key.
Auto-generated DNS records with one-click copy. Every record is checked against live DNS, and the domain health panel scores what it finds, BIMI and DMARC included.
SES publishes these four to an SNS webhook, so they land in your dashboard off the event itself rather than a poll. A deferral is an ISP throttling you; a rejection is SES refusing the message before it goes out. Anything with no event against it is marked delivered two minutes after sending.
Manage audiences, run campaigns, and track opens + clicks on the same stack as your transactional sends. Built-in unsubscribe (RFC 8058).
Fire real requests from your browser and read back the payload, the headers and the response. No curl, no SDK to wire up first.
Pixel tracking and link rewriting, toggleable per-send. Country + truncated-IP of the open. No dark patterns, no shared tracker domain.
Hard bounces and complaints are added to your blocklist automatically, so the next send skips them without you writing the suppression logic.
Amazon charges you for SES at its own published rate. sendvia charges $19 a month whether you send 100 emails or a million, with no seat fee on top.
One POST, or an SMTP client you already have pointed somewhere new. The same API key authenticates both.
curl -X POST https://api.sendvia.io/v1/send \ -H "Authorization: Bearer sv_live_••••" \ -H "Content-Type: application/json" \ -d '{ "from": "[email protected]", "to": "[email protected]", "subject": "Welcome aboard", "html": "<h1>It works.</h1>" }' # 200 {"success":true,"message_id":"0102018f1234abcd-...","log_id":42}
Every figure below comes from the provider's own published pricing, checked on the date in the table's footer. Where a provider prints no price against a send volume, the table says so rather than guessing one.
| Emails per month | sendvia | Resend | Postmark | Mailgun | SendGrid | Raw SES |
|---|---|---|---|---|---|---|
| 10,000 | $20.00$19.00 + $1.00 SES | $20.00 | $15.00 | $15.00 | Not publishedSendGrid does not print a price against a send volume. See their pricing page. | $1.00 |
| 100,000 | $29.00$19.00 + $10.00 SES | $35.00 | $126.00Based on Postmark's Platform plan at $18.00 plus their published $1.20 per additional 1,000. | $90.00 | Not publishedSendGrid does not print a price against a send volume. See their pricing page. | $10.00 |
| 1,000,000 | $119.00$19.00 + $100.00 SES | $650.00 | $1,206.00Based on Postmark's Platform plan at $18.00 plus their published $1.20 per additional 1,000. | $1,080.00At least $1,080.00. Computed from Mailgun's published $1.10 per additional 1,000 above 100,000 emails, staying on their $90.00 tier. That rate is published as a "from" price, so treat this as a lower bound. | Not publishedSendGrid does not print a price against a send volume. See their pricing page. | $100.00 |
| Prices verified . Each figure is the cheapest route worked out from what a provider actually publishes. Some are a quoted plan price; others are computed from a published rate for extra emails, and a note beside those says so. sendvia cost is a flat $19 plus Amazon SES at cost. | ||||||
Three volumes here. The cost calculator covers seven, from 1,000 to 5,000,000 emails a month, with a slider for anything in between.
| Feature | Postmark | Mailgun | SendGrid | Resend | sendvia |
|---|---|---|---|---|---|
| Infrastructure | |||||
| You own the AWS account | No | No | No | No | Yes |
| DNS setup | Manual | Manual | Manual, or automatic on GoDaddy | Manual | Generated and monitored |
| Sending domains included | 5 to unlimited | 1 to 1,000 | Up to 3,000 | 3 to 1,000 | 1 to 10 |
| Features | |||||
| REST API and SMTP | Both | Both | Both | Both | Both |
| Newsletters and mailing lists | Broadcast streams, no stored list | Mailing lists, included | Single Sends, priced separately | Broadcasts | Included |
| Contact segments | No | Lists and tags only | Yes, dynamic | Yes | Rule-based |
| CSV import and subscribers | Export only | Yes | Yes, up to 1,000,000 contacts | Yes, up to 200MB | Yes |
| Webhook events | Delivery, bounce, complaint, open, click, subscription change | Accepted, delivered, opened, clicked, unsubscribed, complained, failures | Processed, delivered, deferred, bounce, open, click, spam report and more | Sent, delivered, bounced, opened, clicked and more | Bounce, complaint, delay, reject |
| Scheduled sending | No | Yes, 1 to 7 days | Yes, up to 72 hours | Yes, up to 30 days | Yes, up to 72 hours |
| Open and click tracking | Both | Both, plus bot detection | Both | Both, off by default | Both, with country |
| One-click resend | No | Yes, within 72 hours | Not recorded | Not recorded | Yes |
| Log retention | 45 to 365 days | 1 to 30 days | 3 to 30 days | 30 days | 7 to 90 days |
| Compliance and deliverability | |||||
| BIMI and DMARC monitoring | DMARC Digests, free | DMARC reporting on paid plans | Setup guidance only | Setup guidance only | Yes, per domain |
| RFC 8058 one-click unsubscribe | Yes, on broadcast streams | Yes | Yes, with subscription tracking | Yes, on Broadcasts | Yes |
| Auto blocklist for bounces and complaints | Yes | Yes | Yes | Yes | Yes |
| Two-factor authentication | Yes | Yes | Yes, required on paid plans | Yes | Yes |
| Every cell was read from the provider's own documentation on . The page each value came from is listed in the sources block directly below this table. Two cells read "Not recorded" because neither SendGrid nor Resend documents a resend action either way, and guessing is worse than a blank. One row needs saying plainly: sendvia does not receive a delivery confirmation. It subscribes to bounce, complaint, delivery delay and reject only, and marks a message delivered when no failure has arrived two minutes after it was sent. All four of these providers get a real delivery event from their own infrastructure. sendvia infers it. | |||||
| Row | Postmark | Mailgun | SendGrid | Resend | sendvia |
|---|---|---|---|---|---|
| You own the AWS account | postmarkapp.com | documentation.mailgun.com | www.twilio.com | resend.com | app/pages/domains.php |
| DNS setup | postmarkapp.comPostmark shows a DKIM TXT record and a Return-Path CNAME, and you add both at your DNS host yourself. | documentation.mailgun.comTXT records for SPF and DKIM, a CNAME for tracking, and MX records if you want inbound. You add all of them yourself. | www.twilio.comUsually you add the records yourself. SendGrid can do it through Domain Connect when GoDaddy hosts the domain, automated security is on and link branding is off. The old table said Manual with no qualifier. | resend.comYou copy the DKIM and SPF records to your DNS provider yourself. No registrar integration is documented. | app/pages/domains.phpsendvia builds the DKIM, SPF, MAIL FROM MX on bounce.yourdomain.com, DMARC and BIMI records, then watches them afterwards. You still add them at your DNS host. |
| Sending domains included | postmarkapp.com5 custom sending domains on Basic, 10 on Pro, unlimited on Platform. | www.mailgun.com1 custom sending domain on Free and Basic, 1,000 on Foundation and Scale. | www.twilio.comA documented maximum of 3,000 authenticated domains per user and per subuser. Given as a ceiling rather than a range because SendGrid publishes no per-plan floor, and inventing one would be worse than saying so. The old table said 1. | resend.com3 domains on the free plan, 10 on Pro, 1,000 on Scale. | app/config.php1 on the free plan, 10 on the paid plan. Both figures are PLAN_*_DOMAIN_LIMIT in app/config.php, not a copy of it. |
| REST API and SMTP | postmarkapp.com | documentation.mailgun.com | www.twilio.com | resend.com | app/pages/smtp_docs.php |
| Newsletters and mailing lists | postmarkapp.comBulk sending is fully supported through broadcast message streams, but the recipient list lives in your application, not in Postmark. | documentation.mailgun.com | www.twilio.comNewsletters live in Marketing Campaigns, which SendGrid sells as a separate plan from the Email API. Buying one does not include the other. | resend.com | app/pages/newsletters.php |
| Contact segments | postmarkapp.com | documentation.mailgun.comMembers carry a subscribed flag and custom variables, and sends can be tagged, but the documentation describes no rule-based segment builder. | www.twilio.com | resend.com | app/pages/segments.php |
| CSV import and subscribers | postmarkapp.com | documentation.mailgun.com | www.twilio.comOne CSV may hold up to a million contacts or 5GB, whichever comes first. | resend.comCSV import through the dashboard or the contacts import API. | app/pages/lists.php |
| Webhook events | postmarkapp.com | documentation.mailgun.com | www.twilio.com | resend.com | app/helpers.phpNo delivery event. sendvia leaves DELIVERY out of its SES subscription because the volume stalled the site, so delivered status is inferred from the absence of a failure two minutes after sending. All four rivals receive a real delivery confirmation and sendvia does not. |
| Scheduled sending | postmarkapp.com | documentation.mailgun.comThe window follows the plan message retention, so a smaller plan schedules less far ahead. Given lowest to highest like every other plan-gated row here, rather than as the best case alone. | www.twilio.comsend_at on the Mail Send API. A send cannot be scheduled more than 72 hours in advance. | resend.comscheduled_at accepts natural language or an ISO 8601 timestamp. | app/api.phpsend_at on the API. The ceiling is SCHEDULED_MAX_HOURS in app/config.php, read here rather than repeated. |
| Open and click tracking | postmarkapp.com | documentation.mailgun.com | www.twilio.com | resend.comDisabled for all domains until you enable it and verify a tracking subdomain. | app/track_open.php |
| One-click resend | postmarkapp.com | documentation.mailgun.com | www.twilio.comNot recorded either way. The activity feed documentation covers filtering, searching and export and describes no resend action, but absence from one page is not a statement that the feature is missing. | resend.comNot recorded either way. The dashboard documentation lists viewing, sharing and log actions on a sent email and describes no resend action, but absence from one page is not a statement that the feature is missing. | app/email_modal.php |
| Log retention | postmarkapp.com45 days as standard on every plan, customisable up to 365 days as a paid add-on on Pro and Platform, from $5 a month. A Postmark Pro customer paying that $5 keeps logs four times as long as sendvia does. | www.mailgun.com1 day on Free and Basic, 5 days on Foundation, 30 days on Scale. | www.twilio.com3 days of activity history on the free trial and Essentials, 7 on Pro and Premier, up to 30 with the paid activity history add-on. The 30 is included in the range because the convention here covers paid add-ons as well as plans, which is also why Postmark reads 45 to 365. | resend.com | app/config.php7 days on the free plan, 90 days on the paid plan, from LOG_RETENTION_*_DAYS in app/config.php. Message bodies are nulled out at half the retention period, before the row itself is deleted. |
| BIMI and DMARC monitoring | dmarc.postmarkapp.comA separate product that turns DMARC reports into a weekly summary, for any domain, whether or not you send through Postmark. The free tier covers the top 10 mail sources with 5 IPs each and 7 days of history; the paid tier is $14 a month per domain and extends that to 60 days with monthly reports as well. No BIMI monitoring. The old table said No, which was wrong. | www.mailgun.comAggregate DMARC reporting, free on every paid plan, through the Red Sift partnership. No BIMI monitoring. The old table said No, which was wrong. | support.sendgrid.com | resend.com | app/helpers.php |
| RFC 8058 one-click unsubscribe | postmarkapp.com | www.mailgun.com | www.twilio.com | resend.com | app/cron.php |
| Auto blocklist for bounces and complaints | postmarkapp.com | www.mailgun.com | www.twilio.com | resend.com | app/webhook_sns.php |
| Two-factor authentication | postmarkapp.com | www.mailgun.com | www.twilio.com | resend.com | app/pages/two_factor.php |
Twelve scenarios, three for each rival, where that provider is the better buy. Every one was checked against their documentation on the same day as the table above, and every one links to the page it came from.
Best for: A team that wants transactional mail to land, wants a human to talk to when it does not, and is content to keep the subscriber list in its own application.
Best for: A team that needs inbound mail routed, parsed and stored, or a list validated before a send, and wants that from the same provider as its outbound API.
Best for: A marketing team that wants a campaign builder, dynamic segments and a contact database in the same account as the sending API, or a buyer who needs subusers and dedicated IPs.
Best for: A React or Next.js team that wants to write email as components, and anyone under 3,000 emails a month who would rather pay nothing at all.
Start free. Move to Premium when you need newsletters, open tracking or more than one domain. Amazon bills you for SES separately, at its own rate.
Create an IAM user with SES + SNS access. Paste your keys once. We register your domain in SES and generate the DNS records for you.
Copy the DKIM CNAMEs, the DMARC and BIMI TXT records, and the MX and SPF pair that delegates your bounce domain to SES. The dashboard re-checks each one against live DNS on demand and names the ones still missing.
One POST to /v1/send, or point any SMTP client at smtp.sendvia.io. Watch it land on the dashboard.
Including the one about what sendvia does not do, which is the answer most of these pages leave out.
sendvia is a managed email platform that sends through your own Amazon SES account.
You get a REST API, an SMTP relay on ports 587 and 2525, newsletters and mailing lists, open and click tracking, and DKIM, SPF, DMARC and BIMI monitoring. The platform costs a flat $19 a month. Amazon bills you for the email itself at SES rates, and sendvia adds nothing to that. There is a longer answer on the about page.
Yes, and the account is your own.
You create an IAM user in your AWS account with SES and SNS access, paste its credentials into sendvia, and revoke them whenever you like. Every message is dispatched to SES under those credentials, so the sending reputation and the bill from Amazon both stay with you. The setup guide walks through the whole thing, including the DNS records.
It depends on volume, and the answer flips three times on the way up.
Up to 3,000 emails a month Resend is free where sendvia is $19.30, so Resend wins. From 3,000 to 10,000 sendvia wins: Resend's free tier has run out, its next plan is $20 flat, and sendvia is still under that. From 10,000 to 54,000 Resend wins again, because that $20 plan covers 50,000 emails while sendvia's SES bill keeps climbing on top of the $19. From 55,000 up sendvia is cheaper and stays cheaper, as far as the 2,500,000 where Resend stops publishing a price at all: $29.00 against $35.00 at 100,000 emails, and $119.00 against $650.00 at a million.
The cost calculator works out any volume between 1,000 and 5,000,000 and shows the arithmetic.
Yes, and you set it up yourself.
sendvia does not create the AWS account or the IAM user for you. A new SES account also starts inside Amazon's sandbox, capped at 200 emails a day to verified recipients only, until Amazon grants production access. That review usually takes 12 to 24 hours. After it clears, your SES sending limits are whatever Amazon has set on your account.
It does not hand you a sending account: you bring the AWS account and create the IAM user yourself.
A new SES account starts inside Amazon's sandbox, capped at 200 emails a day to verified recipients only, until Amazon grants production access, which usually takes 12 to 24 hours. sendvia has no dedicated IP option, handles no inbound email or parsing, ships no official SDKs, and has no teams or sub-accounts: one login owns one account.
250 free emails a day, no credit card. If your AWS account already exists, the first send is about five minutes away.