Email API

Email for your product, in one request.

Send receipts, password resets and notifications over HTTP or SMTP, from your own domain.
curl -X POST https://olvane.site/api/emails \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: order-1042' \
  -d '{
    "from": "Store <orders@yourcompany.com>",
    "to": ["customer@example.com"],
    "subject": "Order 1042 confirmed",
    "html": "<p>Thanks for your order.</p>"
  }'

Built for real applications

Scheduled sending

Pass a scheduled_at time and cancel any time before it goes out.

Batch sending

Submit up to 100 emails in a single request.

Idempotency keys

Retry safely after a network failure without sending twice.

Signed webhooks

Get delivered, bounced, complained and received events as they happen.

Delivery logs

See every API request, plus the response from each receiving server.

Automatic suppression

Addresses that don't exist or complained are skipped from then on.

Scoped API keys

Limit a key to sending only, or to a single domain.

Attachments

Include files directly in the API request.

Common questions

Can I use SMTP instead of the API?

Yes. Connect to ports 465 or 587 using the username olvane and an API key as the password. Anything that can send over SMTP will work.

How do I avoid sending the same email twice?

Send an Idempotency-Key header. If a request is retried with the same key, you get back the original email's ID and nothing is sent again.

How are webhooks secured?

Each webhook has its own signing secret, and every request carries a signature you can check before trusting it.

What happens when a mail server is temporarily unavailable?

Delivery is retried automatically for up to 72 hours, with growing gaps between attempts. Each attempt is recorded.

Create an API key and send your first email.

The free plan needs no card. Most of the setup is copying five DNS records.

Create your account