Opens breakdown by domains

We want to know which domains are opening our emails. The only way I can see to do this is to download the CSV of « Opens breakdown by domains » for each campaign, one at a time, aggregate and then query that table. Does anyone know of a more efficient way to do this? I am not a developer, but all ideas welcome.

Yes, the answer is: The excellent Brevo API delivers it.

This ‹ endpoint › delivers all the stats:

GET ``https://api.brevo.com/v3/emailCampaigns?status=sent&statistics=statsByDomain&excludeHtmlContent=true&limit=100&offset=0

It goes only back 6 months though. Going back further may work through this, have not tried it yet:

GET https://api.brevo.com/v3/emailCampaigns/{campaignId}?statistics=statsByDomain&excludeHtmlContent=true

Being neck deep into the API these days anyways I just ran the code on one of my available accounts:

2026-06-05 09:11:36,330 INFO [main] 35 sent campaigns to aggregate
2026-06-05 09:11:36,330 INFO [main] campaigns=35 range=2025-12-28..2026-06-02 total_sent=24111 avg_sent=688.9
2026-06-05 10:40:47,069 INFO [main] aggregated 20 domains — 17543 unique opens across 34380 delivered
2026-06-05 10:40:47,070 INFO [write_csv] wrote 20 domains to /Users/bremer/Workspace/probauherr/probauherr-app/data/brevo_opens_by_domain.csv

Campaign set:
  campaigns:   35
  date range:  2025-12-28  ..  2026-06-02
  total sent:  33967
  avg / camp:  970.5

Top domains by unique opens:
domain           delivered   del%   uOpens  view%  open%
--------------------------------------------------------
other                10324   30.0     5628   32.1   54.5
gmail.com             7573   22.0     4248   24.2   56.1
gmx.de                4947   14.4     2309   13.2   46.7
web.de                4915   14.3     1897   10.8   38.6
t-online.de           1715    5.0      819    4.7   47.8
googlemail.com        1263    3.7      720    4.1   57.0
icloud.com             807    2.3      711    4.1   88.1
yahoo.de               968    2.8      509    2.9   52.6
gmx.net                877    2.6      329    1.9   37.5
hotmail.de             458    1.3      161    0.9   35.2
outlook.de             417    1.2      150    0.9   36.0
me.com                  23    0.1       22    0.1   95.7

(other does not come from the same API but can be calculated from general stats.)

Notice that all these stats today are significantly skewed by which events are blocked or not. So use with care. In the case above, Brevo seems to do a decent job in getting them anyways. Does not seem too far off.

If it has any value to you, I can publish a quick helper page for you to run it on your own data.

Turns out, the answer is quite relevant for me as well. So, I added it just as a public helper for myself and, if you care to safely put in an API key, you as well, no strings attached:

Sample results:

Screenshot 2026-06-05 at 17.53.34