Skip to content

Transactional email

Your transactional email, sent from Canada.

Duva sends your application's emails through an API: one key per domain, your own DKIM signature, and tracking of every delivery, recipient by recipient.

What Duva handles

  • One key per domain

    Each API key opens a single domain and can be revoked at any time. An unusable key always gives the same response, without revealing why.

  • Your identity, not ours

    The sender, the bounce return path, the DKIM signature and the message identifier all carry your domain name. Duva generates the DKIM key and tells you which records to publish.

  • One copy per recipient

    Each recipient receives their own copy and has their own status: queued, sent, delivered, bounced, suppressed.

  • Events and webhooks

    Deliveries, bounces, complaints and deferrals are available through the API and sent to the address of your choice, with a verifiable signature.

  • Suppression lists

    An address that bounces permanently or complains is no longer contacted. You can also manage it yourself.

  • Privacy by default

    Open and click tracking is off until you ask for it, and the content of emails is deleted after 30 days.

How it works

  1. Add your domain

    From the dashboard, then create an API key for that domain.

  2. Publish two DNS records

    The DKIM key and a CNAME for the bounce return path; SPF is recommended but not required. Duva checks them automatically.

  3. Send

    One request is enough. The response is immediate, delivery is asynchronous and followed through events.

curl -X POST https://api.duva.ca/v1/exemple.ca/messages \
  -H "Authorization: Bearer dv_..." \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Example <[email protected]>",
    "to": ["[email protected]"],
    "subject": "Your order",
    "text": "Thank you for your order."
  }'

See the full API reference