Skip to main content
GET
/
api
/
v1
/
contact-lists
/
{id}
/
stats
Get List Stats
curl --request GET \
  --url https://api.example.com/api/v1/contact-lists/{id}/stats
import 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

id
string
required
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

totalContacts
integer
Total number of contacts in the list.
activeContacts
integer
Contacts eligible to receive emails.
suppressedContacts
integer
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

StateDescriptionReceives Email?
ActiveEligible to receive emailsYes
SuppressedOn suppression list (bounced, complained, unsubscribed)No
totalContacts = activeContacts + suppressedContacts

Errors

CodeHTTP StatusDescription
NOT_FOUND404List with this ID doesn’t exist