usend

Email that just works.

The email API for developers. usend sends your app's verification codes, receipts and newsletters, brings replies back to you, and reports every delivery, bounce and open as a webhook.

Your sending, receiving
and deliverability partner

  • SDKs for Node.js and Python
  • Domains verified in one click
  • Receive mail at your domain
  • Pay in ETB or USD

Send from any stack
that speaks HTTP

Node.jsPythonGoPHPRubyRustJavacURL
$0.0004per email on Pro
3,000free emails every month
< 5 minto your first email
1 APIto send, receive and track
app.usend.et/emails

Your login code

to [email protected] · from Acme <[email protected]> · Delivered
  1. Queued
  2. Sent through Amazon SES
  3. Delivered to gmail.com
  4. Opened
  5. Clicked "Sign in"
99.2%delivered · 7d
0.3%bounced
0.01%complained

Webhook · email.delivered

{
  "type": "email.delivered",
  "created_at": "2026-10-11T09:41:04Z",
  "data": {
    "email_id": "e3b1c2…",
    "to": ["[email protected]"],
    "subject": "Your login code"
  }
}

Illustrative example.

Replace your email stack

The records, events, receiving and safeguards are built in, so email is one less thing to run.

Quick to start.
Ready to grow.

No mail servers to run, no IP warm-up and no blocklists to watch. Verify a domain and send.

Setup< 5 min

Domains verified in one click

DKIM, SPF and DMARC for every domain. On Cloudflare usend adds the records for you; anywhere else, import a zone file.

PricingETB & USD

Pay the way you can

Plans in ETB through Chapa (Telebirr, CBE Birr, M-Pesa, cards) or in USD by international card.

Developers2 SDKs

Node.js and Python

Official usend SDKs for emails, batches, scheduling, templates, domains, contacts, broadcasts and webhooks. Every other language works over plain HTTP.

Everything between your code and the inbox

Sending, receiving, events and DNS behind one API, with a dashboard that shows every message.

eventslive
Welcome to Acme 👋delivered2s ago
Your invoice #1042opened1m ago
Reset your passworddelivered4m ago
Weekly digestbounced9m ago
Events

Every event, in real time

Sent, delivered, delayed, bounced, complained, opened and clicked, per email, and pushed to your signed webhooks with retries and replay.

How webhooks work →
domainacme.com · verified
TXTrs1._domainkeyVerified
CNAMEsend-ses → rp-ses-us-east-1Verified
TXT_dmarc · v=DMARC1; p=none;Verified
MX@ → inbound-smtp.amazonaws.comVerified
Domains

DNS, done for you

Publish the records usend shows you, or let Auto-configure add them on Cloudflare. Verification takes minutes.

Verify a domain →
inboundacme.com · MX ok
Ann Kebedesupport@nowCan you send my invoice again?
Tom Bekelebilling@14mUpdated our TIN number
Priya Nairhello@1hLoved the new release
POST /webhooks/usend · email.received3 delivered
Receiving

Email that comes back to you

Add one MX record and every address at your domain can receive. Each message arrives in your dashboard and at your webhook as JSON, attachments included, ready to route into your app.

How receiving works →
// npm install @usend/node
import { Usend } from "@usend/node";

const usend = new Usend(process.env.USEND_API_KEY);

const { data, error } = await usend.emails.send({
  from: "Acme <[email protected]>",
  to: "[email protected]",
  subject: "Your login code",
  html: "<p>Your code is <b>482913</b></p>",
});
Developers

An API you already know

One REST API with official SDKs for Node.js and Python, and plain HTTP for everything else. Send your first email in a few lines.

  • Official SDKs, or any HTTP client
  • Idempotency keys, batch sending, scheduling
  • Webhooks signed per Standard Webhooks
  • Clear errors with a status, name and message
Read the docs →
routes/webhooks.jsnode
import { verifyWebhook } from "@usend/node";

app.post("/webhooks/usend", express.text({ type: "*/*" }), async (req, res) => {
  const event = await verifyWebhook({
    payload: req.body,
    headers: req.headers,
    secret: process.env.USEND_WEBHOOK_SECRET,
  });
  if (event.type === "email.bounced") markUndeliverable(event.data.to);
  res.sendStatus(200);
});
Webhooks

Trust every event you receive

Each delivery is signed. One call checks the signature and the timestamp and hands you the event, so a forged or replayed request never reaches your code. Failed deliveries retry for a day and can be replayed from the dashboard.

Verify signatures →

Also included

Every plan includes all of it.

Reach inboxes, not spam folders

Authentication, hygiene and safeguards are on by default for every domain and every account.

signing

Your own DKIM key

Every message is signed with a key generated for your domain, so receivers see your brand, not ours.

alignment

SPF on your domain

The return path lives under your domain, so SPF, DKIM and DMARC all align.

policy

DMARC ready

Publish a DMARC record from day one and tighten it as your reports come back clean.

dns

Records watched for you

DNS is re-checked continuously, and a verified domain gets 72 hours of grace before a broken record stops it.

hygiene

Automatic suppression

Hard bounces and complaints are suppressed instantly and never mailed again.

feedback

Bounces & complaints

Provider feedback arrives as events and webhooks the moment it happens.

rfc 8058

One-click unsubscribe

Every broadcast carries List-Unsubscribe headers that Gmail and Yahoo require.

safety

Staged broadcasts

Large sends go out in waves and pause automatically if the first wave bounces or draws complaints.

infrastructure

Amazon SES underneath

Mail leaves through Amazon SES's sending network, with its reputation monitoring and feedback loops.

Simple plans, in ETB or USD

Start free. Upgrade when you outgrow it: paid plans add broadcasts and longer history. That works out from $0.0004 per email.

Free Recommended

For trying usend and small projects
$0 /month
  • 3,000 emails / month
  • 100 emails / day
  • 3 days of email history
  • Sending, receiving & webhooks
  • Broadcasts
Start free

Pro Recommended

For growing products
$20 /month
  • 50,000 emails / month
  • No daily limit
  • 30 days of email history
  • Broadcasts with one-click unsubscribe
  • Sending, receiving & webhooks
Choose Pro

Scale Recommended

For high-volume senders
$90 /month
  • 200,000 emails / month
  • No daily limit
  • 90 days of email history
  • Broadcasts with one-click unsubscribe
  • Sending, receiving & webhooks
Choose Scale

The Pro plan covers this.

Good deliverability is a shared responsibility

Every customer's mail shares the platform's reputation, so these safeguards are built in, not optional. Our Acceptable Use Policy forbids purchased lists, unsolicited bulk mail and cold outreach without opt-in.

  • Every sending domain is verified with DKIM, SPF and DMARC before it can send.
  • New accounts start in a sandbox and are reviewed by our team before production sending.
  • Bounced and complaining addresses are suppressed automatically and never emailed again.
  • Accounts with high bounce or complaint rates are paused automatically and reviewed.
  • Daily and monthly quotas, rate limits, and one-click unsubscribe on every newsletter.

Questions, answered

Something else? Write to [email protected] or read the docs.

Which languages can I use?

Any. usend has official SDKs for Node.js and Python, and a REST API that any HTTP client can call.

Who actually delivers my email?

Mail is delivered through Amazon SES, signed with your domain's own DKIM key and sent from a return-path on your domain, so SPF, DKIM and DMARC align with your brand.

Can I receive email, not just send it?

Yes. Turn on receiving for a domain and point its MX record where usend shows you. Incoming mail appears in your dashboard and is posted to your webhook as JSON with attachments.

Can I pay in ETB?

Yes. Pay in ETB through Chapa (Telebirr, CBE Birr, M-Pesa and local cards), prepaid for 1 to 12 months, or pay in USD by international card.

Why does my new account start in a sandbox?

To protect deliverability for everyone. In the sandbox you can send to your own verified team members; request production access from the dashboard and our team reviews it, usually quickly.

What can't I send with usend?

Mail to purchased, rented or scraped lists, unsolicited bulk email and cold outreach without opt-in. See the Acceptable Use Policy.

Start sending in minutes

Create a free account, verify a domain, and send in minutes.