Warm up now. Book January. Claim 30 days free

Skip to main content
Transactional email API

Transactional email that actually arrives.

Send password resets, verification emails, receipts and product notifications through infrastructure built around deliverability.

From $15/month. No complicated pricing.

Send your first email in under 5 minutes.

  • Node.js
  • Python
  • PHP
  • cURL
reset-7f3a9cSent once, even on retry. Example data
mail.acme.exampleSPF, DKIM and DMARC pass. Example data

What is Warmerly's transactional email API?

Warmerly's transactional email API sends the emails your app triggers, such as password resets and receipts, over a REST API on infrastructure kept separate from cold outreach. The Free plan includes 5,000 emails a month with no card, and paid plans start at $15 a month for 50,000.

One request

Send from any language

Create a sending key and make one HTTP request, from any language. Every email gets an id you can look up, with its full delivery timeline.

See the code samples
Example data, press send

POST /emails

Demo
from no-reply@mail.acme.example
to jane@example.org
subject Reset your password
  • 202 Accepted
  • Delivered to jane@example.org
Sending-only keys, limited to one domain

Delivery events

A timeline for every email

When it was accepted for delivery, then delivered, deferred, bounced or marked as spam, with the receiving server's own response. From the API and the dashboard.

Read the delivery docs
Example data, try the outcomes

Email timeline

jane@example.orgOne email is one recipient

  1. Accepted for delivery
  2. Delivered250 2.0.0 OK, queued as 4F2c9
Nothing to suppress. The address stays on your list.
Bounces and complaints join one suppression list

What counts

Pay for email that leaves us

An email that fails on our side and is never handed to the recipient's mail server doesn't count toward your allowance or your overage.

See pricing
Example data

Your allowance this month

Free plan
5,000emails a month included
  • Delivered, bounced or complainedCounted
  • Skipped, on your suppression listNot counted
  • Failed on our side, never handed overNot counted
Overage is off: 10% extra free, then sends are refused until next monthOff
Nothing is charged unless you switch overage on
5,000
emails a month free, no card required
99.9%
monthly API availability, with service credits if we miss it
EU
sending servers, with no cold outreach or warmup through them
$15
a month for 50,000 emails

Transactional API

From one API call to delivered.

Follow an email from your app through sending to its delivery events.

How it works

From domain to first email in three steps

Most of the work is pasting DNS records. The API call is the short part.

  1. Step 1: Add your sending domain

    For example mail.acme.com. Warmerly registers it for sending and hands you the DNS records for it.

  2. Step 2: Publish a few DNS records and verify

    Three DKIM CNAMEs, an MX and an SPF record on a bounce. subdomain, and DMARC. None of them touch your inbound mail, and Verify tells you exactly which record is still missing.

  3. Step 3: Send from your app

    Create a sending key and make one HTTP request, from any language. Every email gets an id you can look up, with its full delivery timeline.

    curl -X POST https://app.warmerly.com/api/v1/transactional/emails \
      -H "Authorization: Bearer wm_tx_…" \
      -H "Idempotency-Key: reset-7f3a9c" \
      -H "Content-Type: application/json" \
      -d '{
        "from": "Acme <no-reply@mail.acme.com>",
        "to": "jane@example.org",
        "subject": "Reset your password",
        "html": "<p>Click the link to reset your password.</p>"
      }'
    202 Accepted
    { "id": "9b1e…", "status": "sent", "duplicate": false }

Or let your coding agent set it up

Copy this prompt into Claude Code, Cursor, Codex or any agent with your project open. It adds your domain, waits while you publish the DNS records, writes the send function with safe retries, and sends a test email to you.

Deliverability

Why it lands in the inbox

Warmerly is also an outreach tool, so we built this the other way round: the email your users asked for goes out on a path your campaigns can never touch.

Established sending infrastructure
Your mail leaves from established, high-volume sending infrastructure, so a new domain doesn't start on a cold IP that has to be warmed up first.
Nothing else rides along
Warmerly never puts cold outreach or warmup through it. Each workspace is isolated from every other, so if another sender's list bounces, their sending pauses and yours doesn't.
Aligned to your domain
DKIM signs as your domain with 2048-bit keys that are rotated for you, with no DNS changes. Bounces return to a bounce. subdomain of yours, so SPF aligns too, and DMARC can pass on both.
Bad addresses stop themselves
An address that hard-bounces or marks you as spam is suppressed automatically, so you don't keep mailing it and paying for it in reputation.

Built in

Built for the email that has to arrive

Each of these is enforced in code, not left to a setting you have to remember.

Retries that never double-send

Send an Idempotency-Key header and a repeated request returns the first email instead of sending a second one, even when two retries race each other.

Queued, not dropped

If a send is throttled or the mail server can't be reached, the email waits and is retried with backoff for up to 24 hours, under the same id. You don't write the retry loop.

A timeline for every email

When it was accepted for delivery, then delivered, deferred, bounced or marked as spam, with the receiving server's own response. From the API and the dashboard.

One suppression list

Hard bounces and spam complaints join your workspace's suppression list, the same one your campaigns use. Skipped recipients are recorded, so you can see why.

Keys that can only send

Give your app a sending-only key, optionally limited to one domain. It can't read your email log, change domains, or touch anything else in Warmerly.

Sent from the EU

Mail goes out from servers in the EU. Warmerly sends no cold outreach or warmup through them.

Pricing

Transactional email pricing

One email is one recipient. Every plan keeps each email's content for 30 days. Nothing past your allowance is ever charged unless you switch overage on; without it you get 10% extra free, then sends are refused until the next month.

How many emails will you send?

One email is one recipient. Pick a monthly number, or estimate it from your users: sign-up, verification and password-reset emails add up to about four per user a month for most apps.

Not sure? Estimate it
users ×emails each
Best fit
Starter$15/mo
  • Starter includes 50,000 emails.

Prices in USD. Tax is added at checkout where it applies.

Start here

Free

$0
free forever, no card
  • 5,000 emails a month
  • Up to 200 a day
  • 3 sending domains
  • No overage billing, ever
Start sending free

Starter

$15/mo
billed monthly
  • 50,000 emails a month
  • 10 sending domains
  • Optional overage at $0.60 per 1,000, off unless you switch it on
Get started

Growth

$29/mo
billed monthly
  • 100,000 emails a month
  • 25 sending domains
  • Optional overage at $0.60 per 1,000, off unless you switch it on
Get started

Scale

$129/mo
billed monthly
  • 200,000 emails a month
  • Unlimited sending domains
  • Optional overage at $0.55 per 1,000, off unless you switch it on
  • Dedicated IP available, $29/mo
Get started

Every account starts on Free, with no card. Choose a paid plan in the dashboard when you need more.

This is separate from the outreach and warmup plans: a workspace can have either, both or neither.

Compare

Warmerly vs Resend: email API pricing

At every volume Resend publishes, Warmerly costs less, and overage only happens if you turn it on.

Resend is still the better pick if you need an SMTP relay, webhooks, templates or open and click tracking today; those are on our roadmap, not built. The full Resend comparison shows the code change line by line.

Start sending free
Warmerly and Resend transactional email prices in USD
VolumeWarmerlyResend
Free plan5,000 a month, 200 a day3,000 a month, 100 a day
50,000 emails a month$15/mo$20/mo (Pro)
100,000 emails a month$29/mo$35/mo (Pro)
200,000 emails a month$129/mo$160/mo (Scale)
500,000 emails a month$279/mo$350/mo (Scale)
1,000,000 emails a month$499/mo$650/mo (Scale)
2,500,000 emails a month$899/mo$1,150/mo (Scale)
Overage per 1,000$0.60 down to $0.35, only if you switch it on$0.90 down to $0.46
Dedicated IP$29/mo on Scale$30/mo

Resend prices are those published on resend.com/pricing as of September 2026. Check resend.com for current rates.

Alternatives

Compare with other email APIs

Head-to-head pages with prices at four volumes, a feature table, and the cases where the other one is the better pick.

In writing

Guarantees

What we commit to in writing. The binding wording is in section 18A of our Terms.

99.9% monthly API availability
If we miss it, you get a service credit on that month's transactional fee: 10% below 99.9%, 25% below 99.0%, 50% below 95.0%. Ask within 30 days at support@warmerly.com. Credits are the only remedy. Maintenance announced 48 hours ahead on status.warmerly.com doesn't count, and neither do problems outside our control: recipient servers, your DNS, a region-wide AWS outage.
You only pay for email that leaves us
An email that fails on our side and is never handed to the recipient's mail server doesn't count toward your allowance or your overage.
Authenticated before it sends
We don't promise inbox placement; nobody honestly can. What we do promise is that every sending domain passes SPF, DKIM and DMARC before it can send, and is re-checked automatically after that.

What's next

On the roadmap

Sending, verification, suppression and delivery tracking are live today. Next up:

  • SMTP relay, for apps that can't call a REST API
  • Webhooks that push delivery events to your app
  • Templates
  • Open and click tracking

Fair use

Limits today

600
emails a minute per workspace
50
addresses each in to, cc and bcc

FAQ

Transactional email API questions

Not here? The API docs cover every field, or email support@warmerly.com.

How much does the Warmerly transactional email API cost?

Free covers 5,000 emails a month (up to 200 a day) with no card. Starter is $15 a month for 50,000, Growth is $29 for 100,000, and Scale runs from $129 for 200,000 to $899 for 2,500,000. It is a separate subscription from Warmerly's outreach plans: you can have either, both or neither.

What counts as one email on Warmerly transactional?

One email is one recipient. A message sent to one address counts once; the same message to one address in to and two in cc counts three times. Recipients skipped because they are on your suppression list do not count, and neither does an email that fails on Warmerly's side before it is handed to the recipient's mail server.

What happens if I send more than my transactional plan includes?

Nothing is charged unless you switch overage on. Without it, you can go 10% past your monthly allowance free, so an unexpected spike does not stop password resets mid-month; past that, sends are refused until the next month or until you upgrade. With overage switched on, extra email costs $0.60 per 1,000 on Starter and Growth, falling to $0.35 on the largest Scale plan.

Why keep transactional email apart from cold email?

Inbox providers judge mail partly by where it comes from and by the domain behind it. If password resets shared a sender with a cold campaign that drew complaints, the resets would pay for it. Warmerly's outreach and warmup run on your mailboxes; your app's email runs on separate transactional infrastructure, and the two never share a sending server or a domain.

Is Warmerly a good Resend alternative?

On price, yes: at every published volume Warmerly costs less (for example $29 against $35 for 100,000 emails a month, as of September 2026), the free plan is larger, and overage is cheaper and opt-in. Resend is the better pick today if you need an SMTP relay, delivery webhooks, templates or open and click tracking, which Warmerly does not have yet, or official SDKs in many languages; Warmerly is a REST API.

Does Warmerly guarantee transactional email uptime?

Yes. The transactional email API is covered by a 99.9% monthly availability commitment. If Warmerly misses it, you get a service credit on that month's transactional fee: 10% below 99.9%, 25% below 99.0%, 50% below 95.0%. Request it within 30 days by emailing support@warmerly.com. The full terms, including what is excluded, are in section 18A of the Terms of Service.

What is transactional email?

Email your application sends to one person because of something they did: a password reset, a sign-in link, a receipt, a notification. It is expected and time-sensitive, unlike marketing or cold outreach, which is why it should never share sending reputation with them.

What sends the email?

Transactional sending infrastructure in the EU, separate from everything else in Warmerly: it never carries cold outreach or warmup. Each workspace is isolated, so a workspace whose bounce or complaint rate gets too high is paused on its own without affecting anyone else.

Which DNS records do I add, and will they affect my existing email?

A few, all shown in the dashboard ready to copy: three DKIM CNAMEs, an MX and an SPF TXT on bounce.yourdomain (where bounce reports are received), and a DMARC TXT. None of them touch your domain's own inbound mail. The only MX is on bounce.yourdomain, so your mailboxes keep receiving exactly where they do today, and your existing SPF record is left alone.

Do I need a separate domain?

Use a domain or subdomain you don't send cold outreach from, such as mail.yourcompany.com. Warmerly refuses a domain that is already used for anything else in Warmerly. A subdomain of a domain that already receives mail is ideal.

What happens when a recipient marks an email as spam?

The complaint is reported back to us, the email's status becomes complained, and the address is added to your workspace's suppression list, just like a hard bounce. Later sends to it are skipped and recorded as suppressed.

Can I get a dedicated IP?

Yes, on any Scale plan, for $29 a month. Most apps don't need one: a dedicated IP's reputation rests on your own sending alone, so it suits senders with high, steady volume. Everyone else is better served by the shared sending infrastructure, where each workspace is still isolated from every other.

How many sending domains can I verify?

3 on Free, 10 on Starter, 25 on Growth and unlimited on Scale. Every domain has to pass SPF, DKIM and DMARC before it can send, and its records are re-checked automatically after that.

Is it an alternative to Amazon SES?

If you want to send without building the parts around the sending yourself, yes: domain verification with ready-to-copy DNS records, bounce and complaint handling, a suppression list, retries and a delivery timeline for every email come with it. If you only need raw sending at the lowest possible price and have engineers to build that plumbing, sending through SES directly, at $0.10 per 1,000 emails, is cheaper.

Is there an SMTP relay?

Not yet. Sending is through the REST API, which any language that can make an HTTP request can call. An SMTP relay, delivery webhooks to your app, templates and open/click tracking are on the roadmap.

Sending cold outreach too? Warmerly's email warmup keeps those mailboxes out of spam, and the free deliverability checker audits any domain's SPF, DKIM and DMARC in seconds. See outreach pricing, the suppression list both products share, or send from a conversation with ChatGPT or Claude.

More from Warmerly

The rest of your sending path

Transactional email is one product on the same account, the same workspace and the same bill.

Pick your volume

How many emails a month?

Choose the allowance closest to what your app sends. You can change plan any time from the dashboard.

Free
5,000emails a month for Free

Up to 200 a day, 3 sending domains, no card.

Start sending free

Send your app's email on a path of its own

Create a free Warmerly account, add a sending domain and send your first email from the dashboard. 5,000 emails a month free, no card required.