Skip to main content
GET
/
api
/
v1
/
campaigns
/
{campaign_id}
/
statistics
curl "https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/statistics?api_key=YOUR_KEY"
{
  "success": true,
  "data": {}
}
Retrieves detailed email-level statistics for all emails sent in a campaign Essential for detailed campaign analysis, A/B test evaluation, lead engagement scoring, and identifying best-performing sequences

Overview

Retrieves detailed email-level statistics for all emails sent in a campaign Key Features:
  • Returns individual email stats including opens, clicks, replies, bounces with precise timestamps
  • Supports comprehensive filtering by sequence number (1-20), email status (opened/clicked/replied/bounced), and date ranges
  • Includes pagination with configurable offset/limit (max 1000)

Path Parameters

campaign_id
number
required
The campaign ID

Query Parameters

api_key
string
required
Your SmartLead API key
offset
number
default:"0"
Pagination offset
limit
number
default:"100"
Number of records to return
email_sequence_number
number
Filter by sequence number (1-20)
email_status
string
Filter by status: opened, clicked, replied, unsubscribed, bounced
sent_time_start_date
string
Start date filter (ISO format)
sent_time_end_date
string
End date filter (ISO format)
curl "https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/statistics?api_key=YOUR_KEY"

Response Codes

200
Success
Request successful
400
Bad Request
Invalid request parameters or malformed request body
401
Unauthorized
Invalid or missing API key. Check your authentication.
404
Not Found
The requested resource (campaign, lead, email account, etc.) does not exist or you don’t have access to it
422
Validation Error
Request validation failed. Check parameter types, required fields, and value constraints.
429
Rate Limit Exceeded
Too many requests. Please slow down and retry after the rate limit resets.
500
Internal Server Error
Server error occurred. Please try again or contact support if the issue persists.
503
Service Unavailable
API is temporarily unavailable or under maintenance. Please try again later.
{
  "success": true,
  "data": {}
}

Statistics Fields

total_stats
string
Total number of email statistics records
data
array
Array of email statistics

Use Cases

Get All Opens

response = requests.get(
    f"{base_url}/campaigns/{campaign_id}/statistics",
    params={"api_key": API_KEY, "email_status": "opened", "limit": 1000}
)

Get Sequence 1 Performance

response = requests.get(
    f"{base_url}/campaigns/{campaign_id}/statistics",
    params={"api_key": API_KEY, "email_sequence_number": 1}
)

Get This Week’s Stats

from datetime import datetime, timedelta

end_date = datetime.now().isoformat()
start_date = (datetime.now() - timedelta(days=7)).isoformat()

response = requests.get(
    f"{base_url}/campaigns/{campaign_id}/statistics",
    params={
        "api_key": API_KEY,
        "sent_time_start_date": start_date,
        "sent_time_end_date": end_date
    }
)

Implementation Details

Returns paginated results. Use filters to narrow down large datasets. Statistics updated in real-time as events occur. Response Format: object