Features Pricing Compare Cost calculator Guides Quickstarts Docs All systems nominal

sendvia vs Resend

What each costs at 10,000, 100,000, 500,000 and 1,000,000 emails a month, who owns the sending account, and where Resend is the better buy.

Last reviewed:

Should I use sendvia or Resend?

Use sendvia if you already run on AWS, want the sending reputation and the Amazon bill to stay in an account you control, and send enough that a flat monthly fee beats a rate per email. Choose Resend if you write your email in React, if you need a delivery confirmation you can act on rather than an assumption, or if you send little enough that its free tier covers you outright. At the extremes neither answer is close. The middle is what the rest of this page is for.

Is sendvia cheaper than Resend?

The two cost the same at 10,000 emails a month. sendvia is cheaper at 100,000, 500,000 and 1,000,000 emails a month.

sendvia is $19.00 a month flat plus Amazon SES at $0.10 per 1,000 emails, billed by Amazon straight to your own account. At 1,000,000 emails that is the flat fee plus $100.00 of SES, and the flat half of it is the half that never moves.

Monthly cost at 10,000, 100,000, 500,000 and 1,000,000 emails a month, across six providers.
Emails per monthsendviaResendPostmarkMailgunSendGridRaw SES
10,000$20.00$19.00 + $1.00 SES$20.00$15.00$15.00Not 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.00Not publishedSendGrid does not print a price against a send volume. See their pricing page.$10.00
500,000$69.00$19.00 + $50.00 SES$350.00$606.00Based on Postmark's Platform plan at $18.00 plus their published $1.20 per additional 1,000.$530.00At least $530.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.$50.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.

Where a cell says a figure is computed, it is worked out from that provider's own published rate for extra emails on the cheapest plan that can carry the volume, not quoted from a price list. The other three rivals are in the table on purpose: somebody weighing up two of these is usually weighing up more than two, and hiding the rest would make this page less useful rather than more focused.

Feature by feature

Every cell below carries the page it was read from and the date it was read. Where a plain yes or no would mislead, the cell says what the difference actually is instead of rounding it.

Feature by feature, Resend against sendvia, with the source for every claim.
FeatureResendsendvia
Infrastructure
You own the AWS accountNoMail leaves through Resend infrastructure, and Resend holds the sending reputation.SourceYesYour AWS account, your IAM user, revocable by you at any time.
DNS setupManualYou copy the DKIM and SPF records to your DNS provider yourself. No registrar integration is documented.SourceGenerated and monitoredsendvia 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 included3 to 1,0003 domains on the free plan, 10 on Pro, 1,000 on Scale.Source1 to 101 on the free plan, 10 on the paid plan. Both figures are PLAN_*_DOMAIN_LIMIT in app/config.php, not a copy of it.
Features
REST API and SMTPBothSMTP on smtp.resend.com, username "resend", the API key as the password. The old table said API only, which was wrong.SourceBothThe same credentials drive the REST API and the SMTP relay.
Newsletters and mailing listsBroadcastsBulk marketing sends to a stored audience, with queuing, throttling and scheduling handled by Resend. The old table said No, which was wrong.SourceIncludedLists, newsletters and sends are part of the flat fee, not an add-on.
Contact segmentsYesSegments are groups of contacts within an audience, and a broadcast is sent to a segment.SourceRule-basedSegments are built from rules over contact fields and engagement.
CSV import and subscribersYes, up to 200MBCSV import through the dashboard or the contacts import API.SourceYesCSV upload, with column mapping for exports from other tools.
Webhook eventsSent, delivered, bounced, opened, clicked and moreIncluding email.delivered, a real confirmation from the receiving server, plus contact, domain and suppression events.SourceBounce, complaint, delay, rejectNo 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 sendingYes, up to 30 daysscheduled_at accepts natural language or an ISO 8601 timestamp.SourceYes, up to 72 hourssend_at on the API. The ceiling is SCHEDULED_MAX_HOURS in app/config.php, read here rather than repeated.
Open and click trackingBoth, off by defaultDisabled for all domains until you enable it and verify a tracking subdomain.SourceBoth, with countryOpens and clicks, with the country resolved from the opening address.
One-click resendNot recordedNot 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.SourceYesResend any logged message from the log, blocklist-aware.
Log retention30 days30 days on Free, Pro and Scale alike, so the range is a single figure. The old table said 3 to 72 hours.Source7 to 90 days7 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.
Compliance and deliverability
BIMI and DMARC monitoringSetup guidance onlyResend documents how to publish DMARC and BIMI records and points at an outside checker. It does not monitor them for you.SourceYes, per domainDKIM, SPF, DMARC policy and BIMI are checked per domain and reported on the domain page.
RFC 8058 one-click unsubscribeYes, on BroadcastsList-Unsubscribe and List-Unsubscribe-Post are added automatically to Broadcasts with no action from you.SourceYesList-Unsubscribe and List-Unsubscribe-Post are added to every newsletter send.
Auto blocklist for bounces and complaintsYesA hard bounce or a spam complaint puts the address on the suppression list, and later sends to it are suppressed.SourceYesBounces and complaints from the SNS webhook go straight onto the blocklist.
Two-factor authenticationYesMulti-factor authentication with an authenticator app, enabled from your profile.SourceYesTime-based codes from an authenticator app.
Resend figures were read from Resend's own documentation on . The sendvia column is read from the code that implements each row rather than from a marketing page. Where a value would mislead as a yes or a no, the cell says what the difference actually is.

Whose AWS account, whose reputation, whose IPs

sendvia sends through an IAM user in your own AWS account. Amazon meters the mail and bills you for it directly, the SES sending identity is yours, and the addresses it leaves from are Amazon's shared SES pool unless you pay Amazon for a dedicated one. Revoke the key and sending stops the same minute, with the verified domains, the DNS records and the bounce history still sitting where they were.

Resend is the other arrangement, and it is the ordinary one. You point a domain at Resend, the mail leaves Resend's servers, and the reputation those servers carry belongs to Resend rather than to you. That is not automatically the worse deal, because whoever owns a pool also polices it and there is somebody whose job is to keep it clean.

What it costs you sits in the DNS setup row above: records added by hand at whatever host holds your domain, with no registrar integration documented, and a second subdomain to verify before opens and clicks are counted at all, since that counting is switched off for every domain until you turn it on. None of it is difficult. It is simply a different set of things to own.

The trade runs both ways, and ours costs you something. You set up the AWS account, you create the IAM user, and a new SES account starts inside Amazon's sandbox, capped at 200 emails a day to verified recipients, until Amazon grants production access.

Does sendvia support SMTP like Resend?

Resend publishes SMTP settings of its own at smtp.resend.com. sendvia runs a relay on smtp.sendvia.io, port 587, with 2525 as a fallback for networks that block it, and your API key is the password.

How you talk to each service, as each one documents it.
DetailResendsendvia
Send APIREST APIREST API
SMTP relayYes, smtp.resend.com on 25, 465, 587, 2465 or 2587Yes, an SMTP relay on 587 with 2525 as a fallback
The Resend column was read from resend.com on . The sendvia column comes from sendvia_profile() in app/data/competitors.php, which is sourced to the code that implements each answer rather than to a marketing page, and reads any plan figure in it straight out of app/config.php.

The send call, side by side

Both are a single POST. Resend takes the same four fields at POST https://api.resend.com/emails, with the API key as a bearer token and the recipients as an array.

sendvia
curl -X POST https://api.sendvia.io/v1/send \
  -H "Authorization: Bearer sv_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "from":    "[email protected]",
    "to":      "[email protected]",
    "subject": "Your receipt",
    "html":    "<p>Thanks for your order.</p>"
  }'

Read from app/api.php on .

Resend
curl -X POST https://api.resend.com/emails \
  -H "Authorization: Bearer re_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "from":    "[email protected]",
    "to":      ["[email protected]"],
    "subject": "Your receipt",
    "html":    "<p>Thanks for your order.</p>"
  }'

Read from resend.com on .

Both answer with JSON and both report a result per recipient. A successful sendvia call comes back as {"success":true,"total":1,"sent":1,"failed":0} plus a results array.

The reply that surprises a reader arriving from a provider which owns the sending account is the 422. sendvia refuses a from-address on a domain it has not verified inside your own SES account, because it has no sending identity of its own to fall back on. Verify the domain and the same call goes through.

# 422 {"error":"The domain \"yourdomain.com\" has not been verified. Add and verify it in the dashboard first."}

The relay takes the same credentials, so the same tool drives it:

curl --url smtp://smtp.sendvia.io:587 \
  --user "sendvia:sv_live_your_api_key" \
  --mail-from [email protected] \
  --mail-rcpt [email protected] \
  --upload-file receipt.eml

Logs and retention

sendvia keeps 7 days of send logs on the free plan and 90 on the paid one, and nulls the stored message body at half the retention period before the row itself is deleted. What it records against a message is a bounce, a complaint, a delivery delay or a rejection, published by SES to an SNS topic in your own account.

Delivery is not on that list, and it is the row to read carefully. sendvia leaves DELIVERY out of its SES subscription because subscribing to it flooded the webhook and stalled the site, so a message with no failure recorded against it two minutes after sending is marked delivered. That is an inference drawn from silence. Resend, Postmark, Mailgun and SendGrid all receive a real delivery event from their own systems, and sendvia does not.

Retention is the row where the table above rewards a close read. Every provider prices it differently, and each cell gives the low and the high across everything that provider publishes rather than the flattering end of either.

Campaigns and lists

sendvia stores contacts, builds segments from rules over their fields and their engagement, imports a CSV with column mapping for exports out of other tools, and sends a newsletter to a list on the same flat fee as the transactional mail. List-Unsubscribe and List-Unsubscribe-Post go on every newsletter send, so the one-click unsubscribe Gmail and Yahoo ask for is there without you configuring it.

Resend calls its equivalent Broadcasts, and a Broadcast is sent to a segment of a stored audience. The table above records what each side holds. The difference that matters here is not capability but where the list lives: on sendvia the contacts sit in the same account as the sending domain and the send log, and there is no separate marketing plan to buy.

What does Resend do better than sendvia?

These come out of the same data file the table above does, and each one links to the page it was checked against.

  • You are building in React or Next.js. Resend and React Email are built by the same team, so an email is a component and Resend renders it for you. sendvia has no SDK at all, official or otherwise. Source
  • You send under 3,000 emails a month and want more than one sending domain. Resend covers that volume at $0 with 3 domains and 30 days of history. The sendvia free plan covers the volume too, but on 1 domain, with 7 days of history and a hard 250 a day, so the same 3,000 sent in one burst fails on it. Lifting any of those means the $19 plan. Source
  • You need to know an email actually arrived. Resend sends an email.delivered webhook when the receiving server accepts the message. sendvia infers delivery from the absence of a bounce and cannot confirm it. Source

Who each one is for

Who each service is the right choice for, in one line each.
DetailResendsendvia
Best forA 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.A team that already runs AWS, sends enough that a flat platform fee beats per-email pricing, and wants the sending reputation, the logs and the bill to stay in an account it controls.
The Resend column was read from resend.com on . The sendvia column comes from sendvia_profile() in app/data/competitors.php, which is sourced to the code that implements each answer rather than to a marketing page, and reads any plan figure in it straight out of app/config.php.

Neither line is a slogan. If the one on the left describes you better than the one on the right, the rest of this page is a set of details you do not need.

Can I migrate from Resend to sendvia?

Yes, and most of the work is on the Amazon side rather than in sendvia. You need an AWS account, an IAM user allowed to use SES and SNS, and production access, which Amazon reviews and usually grants within 12 to 24 hours. After that you verify a sending domain, publish the records sendvia generates for it, and import your contacts.

Check what is missing before you start rather than after: there is no dedicated IP option, no inbound email or parsing, no teams or sub-accounts and no official SDKs. If one of those rules sendvia out for you, it rules it out, and better to find that here.

Run both in parallel before you cut over. Send the same traffic through each for a week, compare what lands, and keep the old key alive until you are satisfied. Migrate from Resend to sendvia walks through every one of those steps in order: the AWS setup is the slow part, and everything after it is an afternoon.