Skip to content

Transactional email

Your transactional email, sent from Canada.

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

Fixed prices, in Canadian dollars

  • Sandbox

    Free

    • 100 emails per month
  • Junco

    $19 per month CAD, taxes extra

    • 10,000 emails per month
  • Ibis

    $59 per month CAD, taxes extra

    • 50,000 emails per month
  • Condor

    $149 per month CAD, taxes extra

    • 250,000 emails per month

What Duva handles

  • API or SMTP, your choice

    Integrate Duva through its API, or plug it into the SMTP that your application, framework or authentication service already knows how to use. Same account, same rules, same tracking.

  • 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."
  }'

Prefer SMTP? Configure your application like this, with no Duva-specific code:

Server      smtp.duva.ca
Port          587 (STARTTLS) or 465 (TLS)
Username   exemple.ca
Password  dv_...

See the SMTP setup in detail · See the full API reference