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
| Item | Mailumi |
|---|---|
| Endpoint | POST /api/v1/emails |
| Authentication | Bearer API key with the email:send permission |
| Required fields | from, to, subject, and html or text |
| Optional fields | cc, bcc, reply_to, attachments, headers, tags, scheduled_at |
| Batch sending | POST /api/v1/emails/batch with up to 100 emails per request |
| Recipients | Up to 50 per email; each recipient counts as one email |
| Attachments | Up to 20 files, 10 MB in total |
| Rate limit | 120 requests per minute per API key |
| Free plan | 3,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.