A Simple Transactional Email API (2026): HTTP and JSON with Rovela, No Mail Servers
What a simple transactional email API still requires (verified domain, sending_access, POST /emails) and what you can stop assembling — without inventing undocumented features.
A simple transactional email API: HTTP and JSON, no mail servers
A simple transactional email API is a service that lets you send the messages your product already owes the user — codes, receipts, resets — with one HTTPS request, without standing up MTA software, IAM graphs, or an official SDK. Rovela’s version is documented as plain HTTP and JSON at https://api.rovela.dev: no client library to install (Installation, Email API).
This post is about that simplicity as a product choice: what you still have to do, and what you can stop assembling. It is not a vendor teardown — if you are specifically leaving Amazon SES, use Amazon SES Alternative: a Simple HTTP API and Rovela vs Amazon SES rather than repeating those claims here. Self-hosting trade-offs are Self-Hosting a Mail Server. The protocol comparison is Email API vs SMTP.
Start from the Email API product page, the Quick Start, the Send Email API, and Authentication.
Related product guides in this series:
- Transactional Email API
- HTTP Email API
- Migrate SMTP to an Email API
- Email API for SaaS Apps
- Send Email with curl
- Transactional Email API + Hosted Mailboxes
- Inbound and Outbound Email API
- Email Sending API
- Email Notification API
- Email API Integration
- Batch Transactional Email API
- Transactional Email Webhooks
- Send Transactional Email from Your App
- Verified Domain Email API
What “simple” still requires
Simplicity is not “no DNS.” You still:
- Create an account (the free plan sends real mail; there is no separate sandbox key) (Quick Start).
- Verify a sending domain — SPF, DKIM, DMARC, return-path. Unverified
fromis400. - Create a
sending_accesskey and keep it on the server (Authentication). POST /emailswith JSON. Optionally addIdempotency-Key, webhooks, batch, templates.
That is the whole hot path. You do not install a Rovela SDK, run a mail daemon, or open port 25 from your VPC. Any language that can make an HTTPS request works — the product page lists curl, Python, Go, Ruby, Java, Node, and PHP as examples, not as required packages.
curl -X POST https://api.rovela.dev/emails \
-H "Authorization: Bearer re_your_sending_key" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: verify-signup-8f3a2c" \
-d '{
"from": "Acme <no-reply@yourdomain.com>",
"to": "alice@example.com",
"subject": "Your Acme code: 482913",
"html": "<p>Your verification code is</p><p style=\"font-size:28px;letter-spacing:6px\"><b>482913</b></p><p>It expires in 10 minutes.</p>",
"text": "Your verification code is 482913. It expires in 10 minutes."
}'
What you can stop assembling
Teams often end up stitching: a sending API or SES, a bounce topic, a key policy, a template store, a cron box, and a separate Workspace for support@. A simple API does not magically include every adjacent tool, but Rovela documents these as part of the same product (use them only if you need them):
- Delivery webhooks and a per-message log (Transactional Email Webhooks)
POST /emails/batchandscheduled_at(Batch Transactional Email API, Scheduled Email Sending)- Stored templates (Email Templates API Guide)
- Hosted mailboxes and webmail (Transactional Email API + Hosted Mailboxes)
- Inbound (Inbound and Outbound Email API)
Pricing is plan limits, not a contact-list surprise: the free plan includes 100 emails a month, the full API, inbound, webhooks, and five mailboxes, with no card required (pricing). We are not claiming dedicated IPs, SLAs, or an official SDK — those are not on the product pages this article relies on. Custom return path is a Pro/Enterprise feature per the pricing table.
Simple is not sloppy
- Still verify the domain and align authentication (Verified Domain Email API, DKIM Setup for Transactional Email).
- Still use idempotency on retried user actions (Idempotency Keys for Email APIs).
- Still keep keys off the client (Email API Integration).
- Still treat
200as queued, not delivered. - Still use broadcasts for marketing lists, not a tight loop of “simple” POSTs (Marketing emails).
If your app already speaks SMTP and you want this simpler HTTP path, Migrate SMTP to an Email API is the cutover guide.
FAQ
Is “no SDK” a limitation? For most backends it is a feature: one HTTP contract, no library lag. Language walk-throughs exist when you want copy-paste clients.
Can I run Rovela myself? The installation page covers hosted use and the requirements for running it yourself. This article assumes the hosted API.
Is this only for tiny projects? The same API is on every plan. Plans differ in how much you can send and store, not in whether batch, templates, or webhooks exist (pricing).
Keep the request small
Verify a domain, put sending_access on the server, and POST JSON to /emails. That is a simple transactional email API — and it is enough to run the rest of this series on.