Email you can stop thinking about.

Add a domain, POST to one endpoint, and get back to your product. Every send is logged, every bounce reaches your app the moment it happens, and every feature is included from the first email.

  • Everything included
  • No monthly minimum
  • $0.30 per 1,000
A developer at a laptop while an email sends itself

Everything included. Nothing to unlock.

The parts other providers put behind a higher plan, or leave you to build yourself.

Lands in the inbox

Your domain is signed with DKIM and lined up with SPF and DMARC, and sends from your own address. Receiving servers can tell the mail really came from you, so it goes to the inbox instead of the spam folder.

Bad addresses stop costing you

A hard bounce or a complaint goes straight onto your suppression list and we never try that address again. Take one off yourself the day it is fixed.

Bounces reach your code

Deliveries, bounces and complaints arrive at your server the moment they happen. They are signed, so you know they came from us, and retried if you are down. Nothing to poll.

Templates live with your keys

Save a template once and send it by name, with {{variables}} filled in per person. It belongs to your workspace, so nobody else can read it, list it or send with it.

Attachments in the same request

Send the invoice with the invoice email. Attach the file in the same POST, up to 10 MB a message. No second service, no upload step, no signed URLs.

Retries that can't double-send

Add an idempotency key and a request that times out is safe to send again. The duplicate receipt your customer would have received never goes out.

Publishing the records that verify a sending domain

Your first email goes out today

Add your domain and we hand you exactly what to paste, then watch for it ourselves. Sending unlocks the moment it lands, usually in minutes rather than an afternoon of support tickets.

After that it is one POST. Nothing to install, nothing to keep up to date, nothing that breaks the week we ship.

One message fanning out to many personalised copies

One message, your whole list

Send one template to fifty people in a single call, each with their own variables. The subject personalises too, because the subject is part of the template.

Every recipient gets their own record, their own status and their own webhook, and a campaign already in flight never slows your receipts down.

Searching a list of sent messages and their delivery status

Never guess what happened to a message

A 200 means we accepted it, not that it arrived, so we keep going. Poll any message for its status, or let a signed webhook tell you the moment it changes.

Fifteen days of every message exactly as it went out, and ninety days of delivery and bounce rates, so a question about last week has an answer rather than a shrug.

Several separate workspaces managed from one account

Built for people running more than one thing

Agencies, studios, anyone with a second product: separate workspaces, separate domains, separate suppression lists, separate reputations. A problem in one never reaches another.

Invite your team with roles that decide who can touch keys and billing. Revoke a key and it stops working everywhere, immediately.

The whole API, on one screen

Eight endpoints. Read them in a minute, integrate in an afternoon.

  • POST /v1/emails Send one message
  • POST /v1/emails/batch Up to 500 independent messages in one request
  • GET /v1/emails Search your sending history
  • GET /v1/emails/{id} Everything about one message
  • POST /v1/templates Store a template, send it by name
  • GET /v1/suppressions Your bounce and complaint list
  • POST /v1/webhooks Subscribe to delivery events
  • GET /v1/account Quota, verified domains, limits
send a receipt
curl -X POST https://api.sendili.com/v1/emails \
  -H "Authorization: Bearer sk_live_..." \
  -H "Idempotency-Key: order-1041-receipt" \
  -d '{
    "from": "receipts@yourdomain.com",
    "to": ["ada@example.com"],
    "subject": "Your receipt",
    "html": "<p>Thanks for your order.</p>"
  }'
200 OK
{ "message_id": "msg_4f9c2ae10b7d...", "recipients": 1 }

Same job. A fraction of the bill.

We are not trying to out-feature companies with a thousand staff. We cover what a product actually needs to send email, and we do not charge you a subscription for the privilege of having it.

  Sendili Postmark Mailgun
Price per 10,000 emails $3.00 $15.00 $15.00
Monthly minimum None, pay per email $15/mo $15/mo
Message logs kept 15 days 45 days 1 day
Sending domains Unlimited Up to 5 1
Webhooks Included Included Included
Features held back for a bigger plan None Inbound, longer retention Retention, domains, dedicated IP

One price. No plans to outgrow.

You pay for email you actually send. There is no monthly minimum, no per-seat charge, and no feature that arrives only on a bigger plan.

$0.30 per 1,000 ยท USD

Pre-paid credits, from $10. Credits do not expire monthly.

Get early access

Included at every volume

  • Unlimited sending domains
  • Unlimited API keys and webhooks
  • 15-day searchable message logs
  • 90 days of delivery metrics
  • Stored templates with per-recipient variables
  • Per-workspace suppression list
  • Team members with roles
  • Idempotency keys on every send

Questions, answered straight

If something below is not covered, email hello@sendili.com and it reaches a person who knows the answer.

Two people talking through a question

What is Sendili?

One HTTP endpoint for every email your product sends, transactional and bulk. Domain setup, delivery logs, signed webhooks, templates and suppression come with it. We run on AWS SES, so you get its deliverability without an AWS account, an IAM policy or a console to learn.

How do I verify my sending domain?

Add three DNS records we generate for you: a DKIM TXT record at sendili._domainkey, plus an MX and an SPF record on a send. subdomain for a custom MAIL FROM. We check them for you and unlock sending the moment they resolve. DNS can take up to 72 hours to propagate, though it is usually minutes.

How is my sending reputation protected?

Every workspace gets its own isolated suppression list, so another customer's bounces can never suppress your recipients, or the reverse. Bounces and complaints are processed in real time and fed back into your own list automatically.

Do you block throwaway addresses?

Not yet. Today your suppression list does the heavy lifting: anything that hard bounces or complains is never tried again, so a bad address costs you once and never twice. Turning away known throwaway domains before the first send is next, using the public disposable-email-domains list.

What about email templates?

Store a template and reference it by name from a send. Values are substituted per recipient with {{variable}} placeholders, and because the subject is part of the template it personalises too. You can keep up to 1,000 of them at no extra cost.

Send your first email today.

Add a domain, create a key, and POST. Early access is open now. Tell us what you plan to send and we will get you set up.

  • $0.30 per 1,000 emails

  • No SDK, no AWS account, no console

  • Every feature included from day one