Brevo or Resend

Two ways to send the same email. One is an API, the other is a marketing platform that happens to have one, and the difference decides more than the bill.

16 September 20269 min read

Most teams pick a sending provider the way they pick a typeface: somebody had a preference, nobody wrote down why, and two years later it is load bearing. Brevo and Resend land on the same shortlist constantly, and they are not really competing products. They are two answers to a question most teams have not finished asking.

They are not the same shape

Resend is an email API and nothing else. Brevo is a marketing platform that also exposes a transactional API. Resend fits teams where engineers own every message. Brevo fits teams where somebody outside engineering needs to send, segment and schedule without asking for a release.

Resend gives you a domain, a key and an HTTP request. There is no campaign builder, no contact database, no automation canvas. The narrowness is deliberate and it shows in the details: a component library for the templates, SDKs that match the rest of your stack, webhooks that behave.

Brevo is a larger building with a transactional door in the side. The same account holds contact lists, campaigns, automation, SMS, WhatsApp, a shared inbox and a light CRM. The sending API is one entrance among several.

That difference decides most of what follows. It is not which is better. It is whether your marketing people and your engineers need to live in the same tool.

What the free tiers actually give you

Resend's free tier is 3,000 emails a month but only 100 a day, on one domain. Brevo's free tier is 300 a day, roughly 9,000 a month, with unlimited contacts and marketing campaigns on the same quota. Neither asks for a card.

Resend FreeBrevo Free
Monthly volume3,000 emailsaround 9,000 emails
Daily cap100 a day300 a day
Sending domainsOneDomain authentication included
Contacts storedNot a conceptUnlimited
Marketing campaignsNoYes, same quota
Log retention30 days, every planMoves with the tier
Card requiredNoNo

The daily cap is what catches people. Three thousand a month and one hundred a day do not divide into each other cleanly. A launch, a password reset storm, one batch notification to your own users: any of those can finish the day's allowance by lunchtime while the monthly number still reads half empty. Brevo's ceiling has the same shape, three times further out.

Neither free tier is a trap. Both genuinely run a contact form, a receipt, a sign-in link. Both stop being enough at the same moment, which is when the thing you built starts working.

What it costs once you are past free

Resend's first paid plan is $20 a month for 50,000 emails across 10 domains. Brevo's Starter begins around $9 a month for 5,000 and climbs with volume. Resend is more predictable; Brevo is cheaper to enter and harder to forecast.

ResendBrevo
Entry paid planPro, $20 a monthStarter, from about $9 a month
What that buys50,000 emails, 10 domains5,000 emails, scaling by volume
Next tierScale, from $90 a monthBusiness, from about $18 a month base
Overage$0.90 per 1,000, falling to $0.46 at the topCredits, or sending pauses until the quota resets
Dedicated IP$30 a month, volume gatedAdd-on, plan dependent
Priced onEmails sentEmails sent, not contacts stored

Two things are worth pulling out of that.

Resend's entry plan is unusually generous in the middle. Fifty thousand for $20 is a lot of headroom for one step up from free, and the rate per thousand keeps falling as you climb. You can forecast it on the back of an envelope.

Brevo is cheaper to start and harder to predict. Independent reviewers disagree with each other about what Starter costs, because the number moves with volume, with region, and with which add-ons are switched on. Reviews at EmailToolTester and Omnisend both land on the same caution: the figure on the pricing page is not the figure on the invoice once transactional credits, SMS and contact handling are counted. That is what selling eight products on one meter does. Budget for it rather than being surprised by it.

The structural advantage is real, though. Brevo charges for emails sent, not contacts stored. If you are sitting on a large and mostly dormant list, a contact-priced competitor is charging you rent on people who never open anything. Brevo is not.

Where each one is genuinely better

Resend, when email is infrastructure

Your messages are triggered by the product and read by one person each. Receipts, verification links, alerts, invites, digests. Nobody outside engineering needs to touch them, and the people who do need to touch them are already working in the repository.

There, the narrowness is the feature. Templates are components, so they get reviewed like any other change. The webhook payloads are clean enough to build on. The dashboard is small enough to hold in your head. There is no campaign builder for somebody to send from by accident.

Brevo, when email is a channel

You have a list. Somebody who is not an engineer needs to write to it, segment it, schedule it and see what happened, without waiting for a release. You probably also want SMS or WhatsApp in the same place, because your customers are in Cairo or Riyadh or Istanbul and email is not where the conversation actually happens.

Running that on a developer API means building a second product on top of the first. Brevo already is that product. The automation builder, the shared inbox and the CRM are shallow next to a specialist tool in each category, but they are in one place and on one invoice, which is usually the entire point.

The parts nobody compares

Deliverability is mostly your domain reputation and your list hygiene, not your provider. SPF, DKIM and DMARC are required by both. The most common production failure when one domain receives through one service and sends through another is two SPF records, which fails silently.

Domain authentication is identical work at both. Anyone telling you one provider has better inbox placement out of the box is selling something. Your reputation is built from what you send and who asked for it. The provider is a distant fourth input.

Shared IPs are the default at both. You are pooled with other senders until your volume justifies a dedicated address, and a dedicated IP at low volume is worse than a shared one, because reputation is built from consistent sending. Do not buy one early.

One SPF record, never two. If your domain receives mail through one service and sends through another, the includes merge into a single record. Two SPF entries on one domain is a permanent error that does not announce itself: mail keeps sending and quietly stops landing.

Logs are your debugging surface. Resend now keeps 30 days on every plan, which was not true a year ago. Brevo's retention moves with the tier. When a customer says the email never arrived, retention is the difference between an answer and a shrug.

Lock-in is smaller than it feels. Both are one HTTP request behind an interface you own. Swapping is an afternoon, provided the calls live in one place rather than scattered through a dozen files.

Choosing, in one line each

If this is youTake
Transactional only, engineers own itResend
Marketing and transactional, shared ownershipBrevo
SMS or WhatsApp needed in the same placeBrevo
Templates should be reviewed like any other changeResend
Large dormant list, price sensitiveBrevo, priced on sends
A predictable invoice above everythingResend
You genuinely cannot decideWhichever you can configure today

That last row is not a joke. We have watched teams spend two weeks on this choice and zero days on what happens when a send fails.

The failure nobody budgets for

Here is the part the comparison misses, and it is the part that costs money.

On a build we shipped this month, the contact form writes the enquiry to storage before it touches the CRM, and touches the CRM before it touches the sending provider. If the provider is down, the enquiry is already saved. If the CRM refuses the record, the enquiry is already saved. The form only tells a person it failed when every destination has refused, which has not happened.

Before that change, the same form answered every submission with a cheerful confirmation and dropped the enquiry on the floor, because one key was missing. It looked like it worked. Nothing on the page would ever have told anyone otherwise.

Choosing between Brevo and Resend is a real decision, and the numbers above are there to settle it. But it is a reversible decision and it takes an afternoon. The order your system does things in, and what it does when a third party says no, is neither.

A provider outage should cost you a delay. It should never cost you the enquiry.

Ready to start

Expect more from your next build

Discover how partnering with Nemo can drive your success and prepare you for what's next.