Transactional email API

The transactional email API for your product.

A transactional email API lets your application send one-to-one emails, such as password resets, receipts and sign-up confirmations, with an HTTP request. Mailumi sends them from your verified domain, tracks every recipient and is free for 3,000 emails a month.

Your backend calls POST /api/v1/emails with a sender, recipients, a subject and HTML or text. Mailumi signs the message with your domain’s DKIM key, delivers it and records the outcome in your dashboard.

Free plan with 3,000 emails a month. No credit card required.

Send when something happens in your product.

A user signs up, a payment succeeds or a report is ready. Your application decides that an email is needed and sends one JSON request to Mailumi. Provide HTML, plain text or both, add a reply-to address and attach files such as invoices.

The API is plain HTTPS and JSON, so it works from any language or framework: Node.js, Python, PHP, Ruby, Go, Java, or any automation tool that can make an HTTP request. JavaScript and TypeScript projects can use the official mailumi package; other languages need nothing installed.

Send from your own domain, safely.

Add your domain once and publish the DNS records Mailumi shows you: an ownership TXT record and three DKIM CNAME records. On Cloudflare, Mailumi adds them for you. Once verified, every email is signed with your domain’s 2048-bit DKIM key.

API keys are scoped. Give a key only the permissions it needs, limit it to one domain and set an expiry. Keys are stored as hashes and shown once, and you can revoke one instantly without touching DNS.

Retry without sending twice.

Network timeouts happen. Add an optional Idempotency-Key header and retry the same request safely: Mailumi returns the original result instead of sending a duplicate. The same key with different content returns a 409 conflict, so mistakes are caught early.

Each response includes a message ID. Store it next to the event in your own database, then follow the delivery status of every recipient in Email activity or through the API.

The sending API at a glance

ItemMailumi
EndpointPOST /api/v1/emails
AuthenticationBearer API key with the email:send permission
Required fieldsfrom, to, subject, and html or text
Optional fieldscc, bcc, reply_to, attachments, headers, tags, scheduled_at
Batch sendingPOST /api/v1/emails/batch with up to 100 emails per request
RecipientsUp to 50 per email; each recipient counts as one email
AttachmentsUp to 20 files, 10 MB in total
Rate limit120 requests per minute per API key
Free plan3,000 emails per month, up to 100 per day

Transactional email API: common questions

What is the difference between transactional and marketing email?
Transactional emails are triggered by something one person did, such as signing up, resetting a password or placing an order. Marketing emails go to many subscribers at once. Mailumi sends transactional email through the API and marketing email through Campaigns.
Which programming languages can I use?
Any language that can send an HTTPS request with a JSON body. JavaScript and TypeScript have an official SDK and CLI (npm install mailumi), and the documentation includes copy-paste examples for cURL, Python, PHP and Go.
Can I call the API from a browser or mobile app?
No. Your API key is a secret, so call Mailumi from your backend or a serverless function. Never put the key in frontend JavaScript or a mobile app.
How much does the email API cost?
Free includes 3,000 emails per month. Pro is $20 per month for 50,000 emails and Scale is $80 per month for 250,000 emails. Extra emails cost $1.00 per 1,000 on Pro and $0.80 per 1,000 on Scale.

Get your API key.

Create a free accountTalk to us

3,000 free emails every month. No credit card required.