One endpoint. Any language.
One POST request with an API key. Add your sending domain’s DNS records once, and every request after that is signed and sent from it.
curl -X POST https://api.rovela.dev/emails \
-H "Authorization: Bearer re_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"from": "hello@yourdomain.com",
"to": "user@example.com",
"subject": "Your verification code",
"html": "<p>Your code is <strong>482931</strong>. It expires in 10 minutes.</p>"
}'Everything delivery needs
Queued, not blocking
The API answers as soon as the message is queued. Delivery runs in the background, so your request never waits on the receiving server.
Any language
Plain HTTP and JSON, so curl or any HTTP client in any language works. There is no SDK to install.
API key auth
Each key belongs to one organization. Create a key per app and revoke any of them from the dashboard without touching your DNS.
Idempotency keys
Send an Idempotency-Key header and a retry within 24 hours returns the original response instead of sending a second email.
Delivery webhooks
Delivered, bounced, complained, opened and clicked events are signed and pushed to your endpoint, with retries, so your app can react.
Full message log
Every send is kept with its status timeline and any bounce reason, so you can see what happened to a message without guessing.