curl "https://server.smartlead.ai/api/v1/analytics/campaign/overall-stats?api_key=YOUR_KEY&start_date=2024-01-01&end_date=2024-01-31&timezone=America%2FNew_York"
import requests
API_KEY = "YOUR_API_KEY"
response = requests.get(
"https://server.smartlead.ai/api/v1/analytics/campaign/overall-stats",
params={
"api_key": API_KEY,
"start_date": "2024-01-01",
"end_date": "2024-01-31",
"timezone": "America/New_York"
}
)
result = response.json()
print(result)
const API_KEY = 'YOUR_API_KEY';
const response = await fetch(
`https://server.smartlead.ai/api/v1/analytics/campaign/overall-stats?api_key=${API_KEY}&start_date=2024-01-01&end_date=2024-01-31&timezone=America%2FNew_York`
);
const result = await response.json();
console.log(result);
{
"ok": true,
"data": {
"campaign_wise_performance": [
{
"id": 12345,
"campaign_name": "Q1 Cold Outreach",
"sent": 500,
"opened": 250,
"replied": 45,
"bounced": 8,
"open_rate": "50%",
"reply_rate": "9%",
"bounce_rate": "1.6%",
"positive_reply_rate": "5%",
"positive_replied": 25,
"unique_lead_count": 480,
"unique_open_count": 230
}
]
}
}
{
"message": "Invalid API Key"
}
{
"error": "Resource not found"
}
{
"error": "Invalid parameters provided"
}
Global Analytics
Campaign Performance
Get performance metrics for each campaign with engagement rates and lead counts
GET
/
api
/
v1
/
analytics
/
campaign
/
overall-stats
curl "https://server.smartlead.ai/api/v1/analytics/campaign/overall-stats?api_key=YOUR_KEY&start_date=2024-01-01&end_date=2024-01-31&timezone=America%2FNew_York"
import requests
API_KEY = "YOUR_API_KEY"
response = requests.get(
"https://server.smartlead.ai/api/v1/analytics/campaign/overall-stats",
params={
"api_key": API_KEY,
"start_date": "2024-01-01",
"end_date": "2024-01-31",
"timezone": "America/New_York"
}
)
result = response.json()
print(result)
const API_KEY = 'YOUR_API_KEY';
const response = await fetch(
`https://server.smartlead.ai/api/v1/analytics/campaign/overall-stats?api_key=${API_KEY}&start_date=2024-01-01&end_date=2024-01-31&timezone=America%2FNew_York`
);
const result = await response.json();
console.log(result);
{
"ok": true,
"data": {
"campaign_wise_performance": [
{
"id": 12345,
"campaign_name": "Q1 Cold Outreach",
"sent": 500,
"opened": 250,
"replied": 45,
"bounced": 8,
"open_rate": "50%",
"reply_rate": "9%",
"bounce_rate": "1.6%",
"positive_reply_rate": "5%",
"positive_replied": 25,
"unique_lead_count": 480,
"unique_open_count": 230
}
]
}
}
{
"message": "Invalid API Key"
}
{
"error": "Resource not found"
}
{
"error": "Invalid parameters provided"
}
Path Parameters
No path parameters
Query Parameters
string
required
Your SmartLead API key
string
required
Start date in YYYY-MM-DD format
string
required
End date in YYYY-MM-DD format
string
Timezone string (e.g. “America/New_York”), optional
string
Comma-separated client IDs (optional)
string
Comma-separated campaign IDs (optional)
string
Max number of results to return (optional)
string
Pagination offset (optional)
string
Set to “true” to return full data set (optional)
Request Body
No request body required
curl "https://server.smartlead.ai/api/v1/analytics/campaign/overall-stats?api_key=YOUR_KEY&start_date=2024-01-01&end_date=2024-01-31&timezone=America%2FNew_York"
import requests
API_KEY = "YOUR_API_KEY"
response = requests.get(
"https://server.smartlead.ai/api/v1/analytics/campaign/overall-stats",
params={
"api_key": API_KEY,
"start_date": "2024-01-01",
"end_date": "2024-01-31",
"timezone": "America/New_York"
}
)
result = response.json()
print(result)
const API_KEY = 'YOUR_API_KEY';
const response = await fetch(
`https://server.smartlead.ai/api/v1/analytics/campaign/overall-stats?api_key=${API_KEY}&start_date=2024-01-01&end_date=2024-01-31&timezone=America%2FNew_York`
);
const result = await response.json();
console.log(result);
Response Codes
Success
Request successful
Bad Request
Invalid request parameters or malformed request body
Unauthorized
Invalid or missing API key. Check your authentication.
Not Found
The requested resource (campaign, lead, email account, etc.) does not exist or you don’t have access to it
Validation Error
Request validation failed. Check parameter types, required fields, and value constraints.
Rate Limit Exceeded
Too many requests. Please slow down and retry after the rate limit resets.
Internal Server Error
Server error occurred. Please try again or contact support if the issue persists.
Service Unavailable
API is temporarily unavailable or under maintenance. Please try again later.
{
"ok": true,
"data": {
"campaign_wise_performance": [
{
"id": 12345,
"campaign_name": "Q1 Cold Outreach",
"sent": 500,
"opened": 250,
"replied": 45,
"bounced": 8,
"open_rate": "50%",
"reply_rate": "9%",
"bounce_rate": "1.6%",
"positive_reply_rate": "5%",
"positive_replied": 25,
"unique_lead_count": 480,
"unique_open_count": 230
}
]
}
}
{
"message": "Invalid API Key"
}
{
"error": "Resource not found"
}
{
"error": "Invalid parameters provided"
}
How these metrics are calculated
Shared rules (inclusive date boundaries, unique vs raw counts, rate formulas) are documented once in How Analytics Metrics Are Calculated.
sent_time), inclusive on both ends; a single date returns that one full day.
| Field | How it’s calculated |
|---|---|
sent / opened / replied / bounced | Raw event counts within the range. Additive. |
positive_replied | Distinct leads tagged positive (sentiment_type = 'positive'). Note: the date attribution on this breakdown endpoint differs from the overall-stats-v2 tile (which is reply-date) — don’t assume the two match for the same window. Use overall-stats-v2 or the day-wise positive endpoints as the source of truth for positive counts. |
unique_lead_count | COUNT(DISTINCT lead) sent at least one email in the range (deduplicated per campaign by email). Not additive across days. |
unique_open_count | COUNT(DISTINCT lead) that opened in the range. Not additive across days. |
open_rate | unique_open_count / unique_lead_count |
reply_rate | replied / unique_open_count (falls back to unique_lead_count when open tracking is off, e.g. plain-text sends) |
positive_reply_rate | positive_replied / replied |
bounce_rate | bounced / unique_lead_count (per unique lead, not per email sent) |
