Skip to content

Mailbay vs Resend

Resend is a polished, proven sending API. Mailbay accepts the same request body for sending, so moving is a base URL and a key, and it adds inboxes people and agents read.

Updated 5 min read

On this page (6)

In short

Resend is known for its developer experience: a clean API, React Email, templates, broadcasts and SDKs in nine languages. Mailbay's sending endpoint takes the same request body as Resend's POST /emails, so code written for one runs on the other. Where the two differ is everything around sending: Mailbay is built around inboxes that agents and people read.

Pick Resend if

  • You mostly send, and want templates, scheduling, batch sends or marketing broadcasts.
  • You want an official SDK in your language and a long public track record.
  • You need high volume now, with dedicated IPs on a self serve plan.

Pick Mailbay if

  • Your app or agent needs to receive mail too: inboxes, threads, a blocking wait for codes.
  • You want support@ on your domain with a shared inbox, assignment and IMAP, next to app email.
  • You run several projects and want one plan pooled across them.

Who each is for

Resend is for product teams sending transactional and marketing email from code. Receiving exists too: mail can arrive on your domain or a Resend managed subdomain and reach you as a webhook[4]. Received mail counts against the sending quota [1].

Mailbay is for apps and AI agents that hold conversations over email. Every workspace gets a private mailbay.email domain with a Catch-all, inboxes on your own domains, a support inbox for people, IMAP for mail apps, and sending over the API or SMTP from the same project.

Features and prices

Mailbay is in private beta and free while it runs. The Mailbay prices below are the planned plans from our pricing page; billing is not live yet.

FeatureMailbayResend
Free plan3,000 emails a month, 3 inboxes, 3 custom domains. New accounts send to 100 recipients a day for the first 7 days.3,000 emails a month, 100 a day, 3 domains [1]
First paid planPro, $9 a month: 50,000 emails, 25 inboxes, 10 domainsPro, $20 a month: 50,000 emails, 10 domains [1]
Overage per 1,000 emails$0.80 on Pro and Scale (planned)$0.90 on Pro, from $0.80 to $0.46 on Scale [1]
Send APIPOST /v1/emails, Resend shapedPOST /emails [2]
Idempotency-Key headerYes, 24 hoursYes, 24 hours [2]
Batch sendNoUp to 100 per request [1]
Scheduled sendNoYes [2]
Templates and React EmailNo. Render to HTML first.Yes [2]
Marketing broadcastsNoYes, priced by contacts [1]
SMTP587 (STARTTLS) and 465 (TLS); user mailbay, password an API key465 and 2465 (TLS), 25, 587 and 2587 (STARTTLS) [3]
ReceivingInboxes with threads, a Catch-all, wait for a code, IMAPInbound on your domain or a resend.app subdomain, as webhooks [4]
Shared support inbox for peopleYes: assign, close, snooze, keyboard shortcutsNot stated
MCP serverRemote and stdio, 15 tools, inbox and wait toolsRemote and local [5]
Official SDKsNone yet. The Resend Node SDK works for sending.Node.js, Python, PHP, Go, Ruby, Java, Rust, .NET and more [6]
Dedicated IPsEnterprise plan (planned)$30 a month add-on on Scale, over 3,000 emails a day [1]

Sources, read on October 14, 2026

  1. [1]Resend pricing: resend.com/pricing
  2. [2]Resend, send email API reference: resend.com/docs/api-reference/emails/send-email
  3. [3]Resend, send with SMTP: resend.com/docs/send-with-smtp
  4. [4]Resend, receiving emails: resend.com/docs/dashboard/receiving/introduction
  5. [5]Resend, MCP server: resend.com/docs/mcp-server
  6. [6]Resend, SDKs: resend.com/docs/sdks

Prices change. If something here is out of date or wrong, email hello@mailbay.dev and we will fix it.

Where Resend is better

  • Maturity. Resend is an established product with a public track record. Mailbay is in private beta, and our sending IPs are still being warmed up.
  • Templates and React Email. Resend renders React components and stored templates for you. Mailbay takes HTML and text; you render React Email yourself with @react-email/render.
  • Batch and scheduled sends, broadcasts. Mailbay has none of these yet. Marketing email is a later phase for us.
  • SDKs. Resend has official SDKs for most languages. Mailbay has a REST API, a CLI and MCP, and no published SDK yet.

Where Mailbay is better

  • Inboxes are the product, not an add on. Mail lands in inboxes with threads, auth results and spam scores. GET /v1/inboxes/{id}/wait blocks until a matching message arrives and returns the one time codes and links in it. See email inboxes for AI agents.
  • People can answer. support@ on your domain gets a shared inbox with assignment, or an app password for Apple Mail and Outlook over IMAP. Replies go out as support@, threaded.
  • Price at the first paid step. $9 a month for 50,000 emails against $20, with 25 inboxes and the plan pooled across every project in the workspace.
  • Agents. An MCP server whose tools create inboxes, send, reply and wait, with tool descriptions written for models.

Moving from Resend

Mailbay's POST /v1/emails accepts Resend's documented request body: from, to, cc, bcc, reply_to, subject, html, text, headers, attachments and tags, plus the Idempotency-Key header. It answers with {"id": "..."} as Resend does. We ran Resend's own cURL example against Mailbay with three changes: the URL, the key and the from domain.

Resend's documented example, pointed at Mailbay
curl -X POST 'https://api.mailbay.dev/v1/emails' \
     -H 'Authorization: Bearer mb_live_xxxxxxxxx' \
     -H 'Content-Type: application/json' \
     -d $'{
  "from": "Acme <onboarding@acme.com>",
  "to": ["delivered@test.mailbay.dev"],
  "subject": "hello world",
  "html": "<p>it works!</p>"
}'

{"id":"eml_01m4x3aq3qwchj4qmw7qxv9782"}

delivered@test.mailbay.dev is our version of Resend's delivered@resend.dev: it simulates a delivery without sending real mail. bounced@ and complained@ work too.

With the Resend Node SDK

The official resend package reads its base URL from RESEND_BASE_URL. We sent with resend.emails.send() and read the status back with resend.emails.get() using version 6.32.1, changing nothing but the environment:

.env
RESEND_BASE_URL=https://api.mailbay.dev/v1
RESEND_API_KEY=mb_live_xxxxxxxxx   # a Mailbay sending key

The steps

  1. Add your domain in Mailbay and publish the records it shows. DKIM keys use different selectors (ours is mb1._domainkey), so Resend's DKIM record can stay while you switch. The SPF record needs both providers' includes until you finish; the add project wizard merges our include into your existing record instead of replacing it. See SPF, DKIM and DMARC explained.
  2. Create a sending key, limited to that domain if you like. It can send and read the send log, nothing else.
  3. Swap the base URL and key. Send to the test addresses first, then to yourself.
  4. Move your webhook handler: Mailbay signs with the Standard Webhooks scheme and names events message.delivered, message.bounced and so on. See Webhooks.
Fields Mailbay does not support yet are refused, never silently dropped, so a scheduled email is not sent early by mistake: scheduled_at, template, react, topic_id and attachment path URLs return 400 unsupported_field with a fix. There is no batch endpoint, so send batches as single requests.

Prefer SMTP? The same key works as the password on smtp.mailbay.dev, port 587 or 465, with the username mailbay. The sending guide has Nodemailer and Supabase settings, and Resend's SMTP page lists theirs for comparison.

Join the beta

Mailbay is in private beta and free while the beta runs: inboxes, sending, your own domains and MCP. We invite people in small batches and read every note on the form.