-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathstats.py
More file actions
67 lines (49 loc) · 2.44 KB
/
stats.py
File metadata and controls
67 lines (49 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import mailtrap as mt
from mailtrap.models.stats import SendingStatGroup
from mailtrap.models.stats import SendingStats
from mailtrap.models.stats import StatsFilterParams
API_TOKEN = "YOUR_API_TOKEN"
ACCOUNT_ID = "YOUR_ACCOUNT_ID"
client = mt.MailtrapClient(token=API_TOKEN)
stats_api = client.stats_api
def get_stats(account_id: int) -> SendingStats:
params = StatsFilterParams(start_date="2026-01-01", end_date="2026-01-31")
return stats_api.get(account_id=account_id, params=params)
def get_stats_by_domain(account_id: int) -> list[SendingStatGroup]:
params = StatsFilterParams(start_date="2026-01-01", end_date="2026-01-31")
return stats_api.by_domain(account_id=account_id, params=params)
def get_stats_by_category(account_id: int) -> list[SendingStatGroup]:
params = StatsFilterParams(start_date="2026-01-01", end_date="2026-01-31")
return stats_api.by_category(account_id=account_id, params=params)
def get_stats_by_email_service_provider(account_id: int) -> list[SendingStatGroup]:
params = StatsFilterParams(start_date="2026-01-01", end_date="2026-01-31")
return stats_api.by_email_service_provider(account_id=account_id, params=params)
def get_stats_by_date(account_id: int) -> list[SendingStatGroup]:
params = StatsFilterParams(start_date="2026-01-01", end_date="2026-01-31")
return stats_api.by_date(account_id=account_id, params=params)
def get_stats_with_filters(account_id: int) -> SendingStats:
params = StatsFilterParams(
start_date="2026-01-01",
end_date="2026-01-31",
sending_domain_ids=[1, 2],
sending_streams=["transactional"],
categories=["Welcome email", "Marketing"],
email_service_providers=["Gmail", "Yahoo"],
)
return stats_api.get(account_id=account_id, params=params)
def get_stats_by_domain_with_filters(account_id: int) -> list[SendingStatGroup]:
params = StatsFilterParams(
start_date="2026-01-01",
end_date="2026-01-31",
sending_streams=["transactional"],
categories=["Welcome email"],
)
return stats_api.by_domain(account_id=account_id, params=params)
if __name__ == "__main__":
print(get_stats(ACCOUNT_ID))
print(get_stats_by_domain(ACCOUNT_ID))
print(get_stats_by_category(ACCOUNT_ID))
print(get_stats_by_email_service_provider(ACCOUNT_ID))
print(get_stats_by_date(ACCOUNT_ID))
print(get_stats_with_filters(ACCOUNT_ID))
print(get_stats_by_domain_with_filters(ACCOUNT_ID))