Best transactional email API in 2026: seven providers compared, every cell sourced
Published Updated 20 min readBy the Rasket team
Written for developers and startup founders

No single transactional email API is best for everyone. On published prices at 50,000 emails a month, SendGrid ($19.95), Resend ($20) and Rasket ($20) cost least; at 5,000 a month, Brevo’s free plan and MailerSend’s $7 plan do; Postmark separates bulk from transactional mail; Mailgun routes inbound mail by rules; Brevo adds a CRM. Every one except Rasket ships official client libraries today.
Say you launch in three weeks. Sign-up confirmations, password resets and receipts have to arrive within seconds from day one, and you would rather not switch providers in month six. This page compares the seven you are likely to shortlist on features, cost at your volume, uptime and support. We are one of the seven, so every competitor figure is quoted from the vendor’s own page.
Not writing code?
If a shop or booking platform already sends your confirmations, the fix is usually in its email settings, not a new provider. For newsletters, read the small-business platform comparison; for a no-code route, jump to using one without a developer.
What does a transactional email API do?
It sends one email to one person when something happens in your application: a sign-up, a password reset, an order. Your code makes one HTTPS request. The service signs the message for your domain with DKIM, delivers it, keeps a suppression list of addresses that bounced or complained, and reports what happened to each message as a webhook event. Nobody logs in to read mail there; it is not a mailbox.
The rows below use the glossary’s terms: inbound email, signed webhooks, idempotent sends and dedicated IPs. Replay means sending a past event to your endpoint again after you fix the handler that dropped it; versioned templates keep earlier designs so a bad edit can be rolled back.
Every provider here also runs an SMTP relay. Use the API when you can change the code that sends; use the relay when you can’t, as with a CMS or an auth service that only takes SMTP settings (email API vs SMTP). Ours is smtp.rasket.com on port 465 or 587, with the username rasket and an API key as the password.
How do the seven compare, row by row?
The arrow beside each cell opens the page it quotes. Not published means the vendor’s pages do not say; it is not a No. Best for is our reading, not a quotation. DKIM key size is left to the per-vendor pages, because none of the six competitors states it.
Last checked on 17 October 2026
Pricing pages change without notice. If this date is months behind you, open the linked page before you quote a figure.
| Rasket | Resend | SendGrid | Postmark | Mailgun | MailerSend | Brevo | |
|---|---|---|---|---|---|---|---|
| Inbound email | Yes source ↗ | Yes source ↗ | Yes source ↗ | On the Pro and Platform plans source ↗ | 1 route on Free, 5 on Basic, full routing from Foundation source ↗ | Yes source ↗ | Yes source ↗ |
| Transactional and campaigns on one plan | Yes source ↗ | Marketing email is priced as a separate plan source ↗ | No — campaigns are a separate purchase source ↗ | Yes, on a separate Broadcast stream source ↗ | Not published source ↗ | Not published source ↗ | Marketing campaigns and transactional email are both in the API source ↗ |
| Signed webhooks | Yes source ↗ | Yes source ↗ | Yes source ↗ | No signature: basic auth and an IP allowlist source ↗ | Yes source ↗ | Yes source ↗ | No signature: IP allowlist, basic auth or a token source ↗ |
| Replay a webhook event | Yes source ↗ | Yes source ↗ | Not published source ↗ | Not published source ↗ | Not published source ↗ | Not published source ↗ | Not published source ↗ |
| Idempotent sends | Yes source ↗ | Yes source ↗ | Not published source ↗ | Not published source ↗ | Not published source ↗ | Not published source ↗ | For batch transactional email source ↗ |
| Versioned templates | Yes source ↗ | Yes source ↗ | Yes source ↗ | Not published source ↗ | Yes source ↗ | Not published source ↗ | Not published source ↗ |
| Automations | Yes source ↗ | Yes source ↗ | In Marketing Campaigns, bought separately source ↗ | Not published source ↗ | Not published source ↗ | Not published source ↗ | Workflows, started by events their tracker records source ↗ |
| Rasket | Resend | SendGrid | Postmark | Mailgun | MailerSend | Brevo | |
|---|---|---|---|---|---|---|---|
| Official SDKs | Coming soon source ↗ | Node.js, PHP (and Laravel), Python, Ruby, Go, Java, Rust and .NET source ↗ | C#, Go, Java, Node.js, PHP, Python and Ruby source ↗ | Node.js and TypeScript, Python, Ruby, PHP, Java and .NET source ↗ | Ruby, PHP, Python, Java, Go and Node.js source ↗ | PHP, Laravel, Node.js, Go, Python, Ruby and Java source ↗ | Node.js, PHP, Python, Java, C#, Go and Ruby source ↗ |
| Free plan | 3,000 emails a month, 100 emails a day, 3 domains source ↗ | 3,000 emails a month, 100 emails a day, 3 domains source ↗ | No free plan — a 60-day trial of 100 emails a day source ↗ | 100 emails a month, and it does not expire source ↗ | 100 emails a day source ↗ | 500 emails a month, 1 domain, 1 template source ↗ | 300 emails a day source ↗ |
| Entry paid plan | $20 a month for 50,000 emails source ↗ | $20 a month for 50,000 emails source ↗ | $19.95 a month for 50,000 emails source ↗ | $15 a month for 10,000 emails source ↗ | $15 a month for 10,000 emails source ↗ | $7 a month for 5,000 emails source ↗ | $9 a month for 5,000 emails source ↗ |
| Extra emails, per 1,000 | $0.60 source ↗ | $0.90 source ↗ | $1.33 on Essentials 50K, $0.88 on Essentials 100K source ↗ | $1.80 source ↗ | From $1.80 on Basic source ↗ | $0.90 on Starter and Professional source ↗ | No per-1,000 rate: email volume is bought in steps source ↗ |
| Data retention | 30 days on the self-serve plans source ↗ | 30 days on the self-serve plans source ↗ | 3 days of searchable activity, 7 on Pro and Premier source ↗ | 45 days, up to 365 on Pro and above source ↗ | 1 day of logs on Free and Basic, 5 on Foundation, 30 on Scale source ↗ | 1 day on Free and Hobby, 7 on Starter, 30 on Professional source ↗ | Unlimited log retention source ↗ |
| Dedicated IP | $30 a month per address on Scale source ↗ | $30 a month on Scale, for senders above 3,000 emails a day source ↗ | One included on Pro and Premier source ↗ | $50 a month per IP, on Pro and above source ↗ | One included from Foundation 100k and on Scale, extra IPs $59 a month each source ↗ | For Enterprise accounts sending over 100,000 emails a week source ↗ | Listed on the Enterprise plan source ↗ |
| Best for (our read) | Products that send campaigns and receive replies as well as sending receipts | Teams writing their emails as React components | Teams already inside Twilio who want email on the same account | Teams who want transactional and bulk mail kept on separate streams | Teams who route inbound mail with rules and want a relay in front of it | Small projects that want the cheapest paid plan on this list | Teams who want marketing, CRM and transactional email from one vendor |
What does each cost at 5,000, 50,000, 100,000 and 1 million emails?
The assumptions: transactional email only, no marketing contacts, no add-ons, US dollars, paying monthly, and the cheapest combination of plan and per-email overage each price list allows, so a figure is often a larger tier rather than overage on a smaller one. Rasket’s row is computed by the calculator on the pricing page.
| 5,000 a month | 50,000 a month | 100,000 a month | 1,000,000 a month | |
|---|---|---|---|---|
| Rasket | $20 · Pro 50,000 | $20 · Pro 50,000 | $35 · Pro 100,000 | $600 · Scale 500,000 + 500,000 extra at $0.50 per 1,000* |
| Resend | $20 · Pro 50,000 | $20 · Pro 50,000 | $35 · Pro 100,000 | $650 · Scale 1,000,000 |
| SendGrid | $19.95 · Essentials 50K | $19.95 · Essentials 50K | $34.95 · Essentials 100K | $733 · Pro 700K ($499) + 300,000 extra at $0.78 per 1,000 |
| Postmark | $15 · Basic 10,000 | $55 · Basic 50,000 | $115 · Basic 125,000 | $775 · Basic 1,500,000 |
| Mailgun | $15 · Basic 10,000 | $35 · Foundation 50,000 | $75 · Foundation 100,000 | $700 · Scale 1,000,000 |
| MailerSend | $7 · Hobby 5,000 | $35 · Starter 50,000 | $68 · Starter 100,000 | $600 · Starter 1,000,000 |
| Brevo | $0 · Free, if no day passes 300 | $56 · Starter $9 + a $47 volume step | $82 · Starter $9 + a $73 volume step | $999 · Professional $350 + a $649 volume step |
- Under 10,000 a month, Rasket and Resend are free up to 3,000 (100 emails a day). Past that, MailerSend ($7), Brevo (free while no day passes 300, then $9 for 5,000), Postmark and Mailgun ($15) all cost less than Rasket’s $20.
- At 50,000 the range is $19.95 (SendGrid) to $56 (Brevo); at 100,000 it is $34.95 (SendGrid) to $115 (Postmark). SendGrid’s free trial sends 100 a day and ends after 60 days, so its figure is always a paid plan.
- At 1,000,000, published prices run from $600 (Rasket and MailerSend) to $999 (Brevo). Raw cloud sending services charge less per email at this volume and leave bounce handling, webhooks and templates to you; they are not compared here.
- What counts as an email differs. Resend counts each received email toward the monthly quota, and Postmark prices plans by emails sent and received. If you receive a lot of mail, add it to your volume first.
* By default a Rasket project stops sending at 10 times its plan’s monthly emails, receipts and password resets included, until you raise its cap; you are warned as it gets close. So this is the cheapest month with room to spare. The rate steps down to $0.25 as the Scale ladder climbs. The pricing calculator shows $575 on the 100,000-email plan plus overage, but 1,000,000 is exactly that plan’s default spend cap (10 times its allowance, 1,000,000), so the next email would pause sending with 429 monthly_quota_exceeded until you raised the cap.
Where does each competitor beat Rasket?
Resend is the closest match: the same free plan and entry prices, and the same answer on most product rows. It leads on client libraries, with official SDKs in eight languages, Rust and .NET among them, and on uptime, with a 99.99% SLA on Enterprise, where we print none. The difference shows when you add a mailing list. A product sending 50,000 emails a month in total, with 5,000 contacts on a newsletter list, pays $28.80 a month on Rasket (the $20 plan includes 4,500 contacts, and the rest cost one block of 1,000 at $8.80) and $60 on Resend: the $20 plan plus a $40 marketing plan for 5,000 contacts. Past the quota, extra email is $0.60 per 1,000 here against $0.90.
SendGrid includes a dedicated IP in its Pro plan at $89.95 for 100,000 emails, where Rasket’s costs $30 a month per address on Scale. It publishes seven official libraries and belongs to Twilio, which counts if you already buy SMS or voice there. The costs show up elsewhere: no free plan to stay on, three days of searchable activity on Essentials, and $1.33 per extra 1,000 on Essentials 50K ($0.88 on 100K), rates from Twilio’s plan sheet, since the pricing page prints none. The full bill, campaigns included, is in SendGrid pricing in 2026.
Postmark keeps 45 days of history by default and, on Pro and above, sells up to 365 days as an add-on, and keeps bulk mail on separate infrastructure (Message Streams), so newsletters and receipts never share a sending path. Its six official libraries include .NET and Java. It does not sign webhooks; its guide tells you to protect the URL with basic authentication and allowlist Postmark’s IP ranges. That works, but there is no signature for your code to check. At 50,000 emails it costs $55.
Mailgun has the cheapest plan on this page with a dedicated IP included: Foundation at 100,000 emails, $75 a month. Its inbound routing is rule-based, so “store mail to billing@, forward mail to support@” is configuration rather than code, and it keeps up to 40 versions of each template. The trade-off is history: one day of logs on Free and Basic, thirty only on Scale.
MailerSend is the cheapest way in, at $7 for 5,000 emails, and puts inbound routing on every plan, Free included. It publishes seven official libraries and a 99.5% uptime SLA from its Starter plan up. Its own pricing page gives two rates for extra email, $0.90 on the plan cards and $1.30 in the FAQ, so ask before you rely on either.
Brevo is a marketing suite first: campaigns, a sales CRM and live chat in one account. Its free plan allows 300 emails a day, the largest daily allowance of any free plan here, its pricing FAQ promises unlimited log retention, and it publishes seven SDKs. Its webhooks are protected by an IP allowlist, a password or a token rather than a signature, and its idempotency keys cover batch sends for 30 minutes.
Who publishes an uptime SLA, a rate limit and support terms?
This is what each vendor prints, read on 17 October 2026. An SLA (service-level agreement) is an uptime figure the vendor commits to in its contract.
| Uptime commitment | API rate limit | Over the limit | Support | |
|---|---|---|---|---|
| Rasket | None published | 10 requests a second per team, shared across its keys | 429 with a retry-after header | Email and the contact form on every plan; priority support on Scale. No response time published source ↗ |
| Resend | 99.99%, on Enterprise only | 10 requests a second per team, by default | 429 | Tickets on Free and Pro; a Slack channel and an urgent-response SLA, with no time stated, on Scale source ↗ |
| SendGrid | None on the pricing page | Set per endpoint and reported in X-RateLimit headers; no sending figure is printed | 429 | Tickets around the clock on every plan; chat on paid plans; phone callbacks from Pro. No response time published source ↗ |
| Postmark | None on the pricing page | No figure on the pricing page or in the docs index; paid plans have no daily cap | Not published | Email and business-hours chat on every plan; first replies average under three hours, not a contractual figure source ↗ |
| Mailgun | Listed in the plan table, with no percentage | No figure on the pricing page or in the docs index | Not published | Tickets around the clock on every plan; chat and phone from Scale. No response time published for self-serve plans source ↗ |
| MailerSend | 99.5%, on Starter, Professional and Enterprise | 120 requests a minute to the email endpoint, and 100 to 500,000 requests a day by plan | 429 with a retry-after value | Email and live chat on Starter; priority email and an account manager on Professional. No response time published source ↗ |
| Brevo | None on the pricing page | 1,000 requests a second to the send endpoint on every plan; up to 2,000 on Professional and 6,000 on Enterprise | 429 | Email on Starter and Standard; phone from Professional. No response time published for self-serve plans source ↗ |
For Rasket, the evidence you can check today is the live status page, which measures the API, sending, receiving, webhooks and the SMTP relay every five minutes. It shows the current state, not a history, and there is no SLA behind it. If your launch needs a contractual figure, that alone is a reason to choose Resend Enterprise or MailerSend Starter and above.
Inbox placement is not a row because no vendor here publishes placement rates measured the same way. Placement depends mostly on your domain’s reputation, your list and your complaint rate, though the quality of a provider’s shared IP pools also counts. To work on it, start with the deliverability guide.
Can you use one without a developer?
For transactional email, mostly no: a receipt is sent because your application asked for it, so someone writes that request or connects a no-code tool such as Zapier or Make that makes it. Mailgun’s pricing page says it plainly: there is no send button in Mailgun. Rasket’s connectors are listed in the integrations docs.
For campaigns, Brevo, Resend and Rasket give you a sending screen on the plan you already have. Brevo has a drag-and-drop editor, and its FAQ says no prior skills are needed. Resend sends broadcasts from its dashboard. Rasket lets you build a segment and send a campaign designed in the template editor. SendGrid sells its campaign editor as Marketing Campaigns, a separate subscription.
What does a Rasket integration look like in code?
One request sends one email. Replace the addresses with your own once your domain is verified:
curl https://api.rasket.com/emails \
-H "Authorization: Bearer $RASKET_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: shortlist-test-1" \
-H "User-Agent: acme-app/1.0" \
-d '{"from":"hello@yourdomain.com","to":"you@example.com","subject":"Shortlist test","text":"Sent through Rasket."}'A 200 means the message was accepted and recorded, not delivered; delivery comes later as an event. The body is the email’s id:
{ "id": "4ef9a417-02e9-4d39-ad75-9611e0fcc33c" }A refusal carries statusCode, name and message (a missing User-Agent adds a code), and name is the value to branch on (errors):
{
"statusCode": 422,
"name": "missing_required_field",
"message": "Missing required field: subject."
}Retry only what can change: a lost answer, a 5xx, rate_limit_exceeded after its retry-after, and concurrent_idempotent_requests (the first attempt is still running). Send the same Idempotency-Key each time; the same key with a different body is refused with 409 invalid_idempotent_request, and keys are remembered for 24 hours. A 429 named monthly_quota_exceeded or daily_quota_exceeded is a quota or the spend cap, not a rate limit, and does not clear by waiting. This loop does that, with exponential backoff and jitter; idempotent email sends explains each line:
// Node 22+. The key names the email, not the attempt: reuse it on every retry.
const RETRY = new Set(["rate_limit_exceeded", "concurrent_idempotent_requests"]);
export async function sendEmail(email, key, attempts = 5) {
for (let attempt = 1; ; attempt++) {
let res;
try {
res = await fetch("https://api.rasket.com/emails", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.RASKET_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": key,
"User-Agent": "acme-app/1.0",
},
body: JSON.stringify(email),
signal: AbortSignal.timeout(10_000),
});
} catch (error) {
// No answer (network failure or timeout): it may have been accepted, so ask again.
if (error.name !== "TypeError" && error.name !== "TimeoutError") throw error;
}
if (res?.ok) return res.json(); // { id }
if (res && res.status < 500) {
const { name = res.statusText, message = "" } = await res.json().catch(() => ({}));
// Quota 429s and every other 4xx get the same answer again: fix, don't retry.
if (!RETRY.has(name)) throw new Error(`${res.status} ${name}: ${message}`);
}
if (attempt === attempts) {
throw new Error(`Gave up on ${key} after ${attempts} tries (last: ${res?.status ?? "no answer"})`);
}
const retryAfter = Number(res?.headers.get("retry-after")); // seconds, on rate limits
const wait = retryAfter > 0 ? retryAfter * 1000 : 2 ** attempt * 250 * (1 + Math.random());
await new Promise((resolve) => setTimeout(resolve, wait));
}
}For volume, POST /emails/batch takes up to 100 messages in one request, validated all or nothing, and one Idempotency-Key covers the whole batch, so a retry with that key returns the stored response rather than sending the batch again. With 10 requests a second, that is a ceiling of 1,000 emails a second (rate limits).
Delivery, bounce and complaint events arrive as signed webhooks. Every event has the same envelope; a bounce adds a bounce object, and a complaint carries the envelope alone. Hard bounces and complaints go on your suppression list without any code from you, so a handler is for your own records, such as flagging the address on the user’s account:
{
"type": "email.bounced",
"created_at": "2026-09-09T10:16:44.902Z",
"data": {
"email_id": "4ef9a417-02e9-4d39-ad75-9611e0fcc33c",
"from": "Acme <orders@send.acme.example>",
"to": ["ronald.williams@example.com"],
"subject": "Your order has shipped",
"message_id": "<01000199a3c4d5e6-7f8a9b0c@send.acme.example>",
"created_at": "2026-09-09T10:14:02.118Z",
"tags": { "order": "1042" },
"bounce": {
"type": "Permanent",
"subType": "General",
"message": "smtp; 550 5.1.1 The email account that you tried to reach does not exist.",
"diagnosticCode": ["smtp; 550 5.1.1 user unknown"]
}
}
}Each delivery carries svix-id, svix-timestamp and svix-signature, and the scheme is Svix-compatible, so the open-source svix package verifies it. Events are tried up to ten times, hours apart, and can be replayed, so the same event can arrive twice: dedupe on svix-id, which never changes for an event (the schedule is in the webhooks reference).
// npm install svix (2.x)
import { createServer } from "node:http";
import { Webhook } from "svix";
const wh = new Webhook(process.env.RASKET_WEBHOOK_SECRET); // the whsec_ secret, shown once
const seen = new Set(); // in production: a unique svix_id column, written with the work
createServer((req, res) => {
const chunks = [];
req.on("data", (chunk) => chunks.push(chunk));
req.on("end", () => {
const raw = Buffer.concat(chunks).toString("utf8");
try {
wh.verify(raw, req.headers); // the raw body, never re-serialised JSON; throws on a mismatch
} catch {
return res.writeHead(400).end(); // bad signature, or more than five minutes old
}
const event = JSON.parse(raw);
const id = req.headers["svix-id"]; // the same on every retry and replay of this event
if (!seen.has(id)) {
if (event.type === "email.bounced" && event.data.bounce.type === "Permanent") {
console.log("stop mailing", event.data.to); // e.g. flag the address on the account
}
seen.add(id); // only after the work, so a crash mid-way is retried, not dropped
}
res.writeHead(200).end(); // any 2xx stops our retries, so a duplicate gets one too
});
}).listen(3000);Is Rasket the right pick for your launch?
Rasket is new. We publish no customer count, no sending volume and no uptime history, so you cannot judge us on track record. The others can be: Postmark says it has delivered mail since 2010, Brevo was founded in 2012, and Resend launched its sending platform in 2023. What you can check before paying is everything above: the prices, the live status page, and the API itself on the free plan.
Against Resend, the provider most like us, the choice comes down to three rows. Pick Rasket if you will send campaigns as well as receipts (one plan, one key: $28.80 against $60 in the newsletter example above) or expect to pay for overage. Pick Resend if you want an SDK in your language or a contractual SLA. Pick Postmark if a long record of transactional delivery matters more to you than price.
The row we lose
Official SDKs. Coming soon: the rasket package is not published yet. No release date is given here, so plan on the REST API: every other product in the table publishes official clients today, and we publish none. Your code calls the API over HTTPS, as in the samples above (a client can be generated from the OpenAPI document) or sends through our SMTP relay.
To limit the risk of a young provider, verify your domain with your top two at once; each signs with its own DKIM selector, so both can send. Keep the send call behind one function, like sendEmail above. Leaving then costs a key swap, new webhook secrets and deleting our DNS records (migration steps).
Pick another provider if any of these decides it for you:
- a CRM in the same account, which is Brevo’s job;
- between 3,000 and 10,000 emails a month, where MailerSend, Brevo, Postmark and Mailgun cost less;
- a dedicated IP inside the plan price, as Mailgun Foundation 100k, Mailgun Scale and SendGrid Pro include.
How do you choose, in three questions?
- Does your product read replies? Cross off any plan where inbound is not a Yes at your tier: Postmark keeps it to Pro and Platform.
- Do you send campaigns as well as receipts? Decide whether you want them on one plan and key (Rasket, Postmark’s Broadcast stream, Brevo) or as a second purchase (Resend, SendGrid).
- What is your real volume, received mail included? Read that column of the cost table, not the entry price.
Then send the same test message through your top two and compare what each can tell you about it an hour later. Rasket’s quickstart takes a new account from sign-up to that first send.
Frequently asked questions
What makes an email API transactional rather than marketing?
The trigger, not the product. A transactional message is caused by one person doing one thing, such as a purchase, a password reset or a shipping update, and goes to that person alone. Most providers here send both kinds; what differs is whether campaigns sit on the same plan and key or are a separate purchase.
Can I use two providers at the same time?
Yes. Verifying a domain with one provider does not lock out another: each publishes its own DKIM key under its own selector name, so both can sign mail for the same domain. Watch SPF, which allows at most 10 DNS lookups per check (RFC 7208); nested includes use them up quickly. A provider that bounces mail to a return-path subdomain of yours keeps its include off your root SPF record altogether.
How hard is it to switch providers later?
The domain is the slow part: you publish the new provider's DNS records and wait for verification while the old one keeps sending. The code is usually one function, the send request and its API key. Templates are rebuilt once and each webhook endpoint gets a new signing secret. Once nothing has gone out through the old provider for a few days, delete its SPF include, DKIM record and return-path record so nothing stale can still pass for your domain. Rasket's migration guide lists the steps.
Do I need a dedicated IP?
Usually not. A dedicated IP's reputation is built only by your own mail, so it helps a sender with steady high volume and hurts one with small or bursty volume, because mailbox providers see too little to trust it. Resend offers one above 3,000 emails a day and Postmark above 300,000 a month, and a new address needs weeks of warm-up.
Which DNS records will every provider ask me for?
All seven ask you to prove you own the sending domain with DNS records. DKIM publishes the key receivers check the signature against. SPF lists which servers may send for a domain, and DMARC tells receivers what to do when mail fails those checks. For SPF to count under DMARC, bounces must go to a return-path subdomain of yours; a root SPF include alone does not do it. Gmail and Yahoo require DMARC from bulk senders.
Should receipts and newsletters use different sending subdomains?
In our judgement, once campaigns pass about 1,000 emails a month on a regular schedule. The separation is partial, because mailbox providers also weigh the parent domain; our guide to marketing subdomains sets out the cut-off and the records.
Sources
- Resend pricing — Resend, read 2026-10-17
- Usage limits — Resend, read 2026-10-17
- SendGrid pricing: Email API plan comparison — Twilio, read 2026-10-17
- Rate limits — Twilio, read 2026-10-17
- Postmark pricing (plain text) — Postmark, read 2026-10-17
- Mailgun pricing — Mailgun, read 2026-10-17
- MailerSend pricing (Markdown) — MailerSend, read 2026-10-17
- API general information: rate limits — MailerSend, read 2026-10-17
- Brevo pricing (Markdown) — Brevo, read 2026-10-17
- Rate limits — Brevo, read 2026-10-17
- Resend SDKs — Resend, read 2026-10-17
- About Resend — Resend, read 2026-10-17
- Postmark: email experts — Postmark, read 2026-10-17
- Postmark home page — Postmark, read 2026-10-17
- Understanding SendGrid Support 101 — Twilio, read 2026-10-17
- Which resources do I need? — Mailgun, read 2026-10-17
- Contact the support team — Brevo, read 2026-10-17
- About Brevo — Brevo, read 2026-10-17
- Rasket docs: Billing and the spend cap — Rasket, read 2026-10-18
- Rasket docs: Webhooks — Rasket, read 2026-10-18
- Rasket docs: Idempotency — Rasket, read 2026-10-18
- Rasket docs: Errors — Rasket, read 2026-10-18
- RFC 7208: Sender Policy Framework (SPF) — IETF, read 2026-10-17
Related
- Compare — Rasket compared with Resend, SendGrid, Postmark, Mailgun, MailerSend and Brevo on the rows a developer buys on, every fact checked against their public pages.
- Alternatives — Alternatives to Resend, SendGrid, Postmark and Mailgun for developers, weighed on inbound mail, webhooks, agent tooling and what an extra thousand emails costs.
- SendGrid pricing in 2026: plans and real bills — SendGrid pricing from Twilio's pages: Email API and Marketing Campaigns tiers, overage per 1,000, dedicated IPs, and worked bills next to Rasket's.
- Email API vs SMTP: which should you use? — Use an email API when you can change the sending code, and SMTP when you can't. A decision table, one email sent both ways, and which ports get blocked.
- Why are my emails going to spam? How to fix it — Why emails land in spam or junk: read the headers to see which problem you have, then the fixes Gmail, Outlook and Yahoo document, in order.
- Email API — Send email over one REST call: idempotent sends, batches, scheduling, attachments, templates and a delivery timeline for every message.