Get List Stats
curl --request GET \
--url https://api.example.com/api/v1/contact-lists/{id}/statsimport requests
url = "https://api.example.com/api/v1/contact-lists/{id}/stats"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v1/contact-lists/{id}/stats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/contact-lists/{id}/stats",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/contact-lists/{id}/stats"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/v1/contact-lists/{id}/stats")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/contact-lists/{id}/stats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"totalContacts": 123,
"activeContacts": 123,
"suppressedContacts": 123
}Lists
Get List Stats
Retrieve statistics for a contact list
GET
/
api
/
v1
/
contact-lists
/
{id}
/
stats
Get List Stats
curl --request GET \
--url https://api.example.com/api/v1/contact-lists/{id}/statsimport requests
url = "https://api.example.com/api/v1/contact-lists/{id}/stats"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v1/contact-lists/{id}/stats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/contact-lists/{id}/stats",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/contact-lists/{id}/stats"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/v1/contact-lists/{id}/stats")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/contact-lists/{id}/stats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"totalContacts": 123,
"activeContacts": 123,
"suppressedContacts": 123
}Get aggregate statistics for a contact list including contact counts and engagement metrics.
Path Parameters
The unique list ID (e.g.,
lst_abc123).Examples
import { MailBreeze } from "mailbreeze";
const mailbreeze = new MailBreeze({ apiKey: "sk_live_xxx" });
const stats = await mailbreeze.lists.stats("lst_abc123");
console.log(`Total contacts: ${stats.totalContacts}`);
console.log(`Active: ${stats.activeContacts}`);
console.log(`Unsubscribed: ${stats.unsubscribedContacts}`);
console.log(`Bounced: ${stats.bouncedContacts}`);
from mailbreeze import MailBreeze
client = MailBreeze(api_key="sk_live_xxx")
stats = await client.lists.stats("lst_abc123")
print(f"Total contacts: {stats.total_contacts}")
print(f"Active: {stats.active_contacts}")
print(f"Unsubscribed: {stats.unsubscribed_contacts}")
print(f"Bounced: {stats.bounced_contacts}")
client := mailbreeze.NewClient("sk_live_xxx")
stats, err := client.Lists.Stats(ctx, "lst_abc123")
if err != nil {
log.Fatal(err)
}
fmt.Printf("Total contacts: %d\n", stats.TotalContacts)
fmt.Printf("Active: %d\n", stats.ActiveContacts)
fmt.Printf("Unsubscribed: %d\n", stats.UnsubscribedContacts)
fmt.Printf("Bounced: %d\n", stats.BouncedContacts)
$mailbreeze = new MailBreeze('sk_live_xxx');
$response = $mailbreeze->lists->stats('lst_abc123');
$stats = $response['data'];
echo "Total contacts: " . $stats['totalContacts'] . "\n";
echo "Active: " . $stats['activeContacts'] . "\n";
echo "Suppressed: " . $stats['suppressedContacts'] . "\n";
let client = Client::new("sk_live_xxx");
let stats = client.lists().stats("lst_abc123").await?;
println!("Total contacts: {}", stats.total_contacts);
println!("Active: {}", stats.active_contacts);
println!("Unsubscribed: {}", stats.unsubscribed_contacts);
println!("Bounced: {}", stats.bounced_contacts);
curl "https://api.mailbreeze.com/api/v1/contact-lists/lst_abc123/stats" \
-H "Authorization: Bearer sk_live_xxx"
Response
Total number of contacts in the list.
Contacts eligible to receive emails.
Contacts on the suppression list (bounced, complained, unsubscribed, etc.).
Example Response
{
"success": true,
"data": {
"totalContacts": 1523,
"activeContacts": 1520,
"suppressedContacts": 3
},
"meta": {
"timestamp": "2025-12-27T13:47:56.974Z",
"requestId": "afa9e391-43d4-4594-820f-cc5e6b3b0c22",
"path": "/api/v1/contact-lists/694fc1669e63563857ae8d72/stats"
}
}
Understanding Contact States
| State | Description | Receives Email? |
|---|---|---|
| Active | Eligible to receive emails | Yes |
| Suppressed | On suppression list (bounced, complained, unsubscribed) | No |
totalContacts = activeContacts + suppressedContactsErrors
| Code | HTTP Status | Description |
|---|---|---|
NOT_FOUND | 404 | List with this ID doesn’t exist |
⌘I