Skip to main content
GET

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
Set to “true” to filter for agency accounts (optional)
string
Set to “true” to return full data set (optional)

Request Body

No request body required

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.

How these metrics are calculated

The rules below (inclusive date boundaries, unique vs raw counts, the rate formulas, and how positive replies are counted) are shared across every Global Analytics endpoint. See How Analytics Metrics Are Calculated for the full explanation.
The fields in overall_stats are not all the same kind of number. Some are raw event counts and some are unique (deduplicated) counts, and this affects how they behave across date ranges.

Field definitions

number
Total emails sent in the range. Raw event count.
number
Total open events in the range. Raw event count (a single lead opening twice counts twice).
number
Total reply events in the range. Raw event count.
number
Total bounce events in the range. Raw event count.
number
Count of distinct leads that were sent at least one email in the range, deduplicated per campaign by email address. This is COUNT(DISTINCT lead) across the whole range, not a sum of per-day values.
number
Count of distinct leads that opened at least one email in the range. Like unique_lead_count, this is deduplicated across the whole range.
number
Count of distinct leads tagged as positive (sentiment_type = 'positive') that sent a genuine reply (replied, not ignored, not bounced), attributed to the date the reply was received, within the range. Because it’s a distinct-lead count deduplicated across the range, it is not additive — summing per-day calls over-counts. The lead category is mutable, so re-categorising a lead changes historical counts.

Rates

All rates are computed against the unique counts above, not against raw sends:
bounce_rate is reported per unique lead (bounced / unique_lead_count), not per email sent. If you need the deliverability-style figure (bounced / sent), both bounced and sent are in the response and you can compute it yourself.

Date range behaviour (important)

start_date and end_date are inclusive on both ends (from 00:00:00 to 23:59:59 in the requested timezone), and they filter on the time the email was sent. Because the unique counts are deduplicated across the entire requested range, you cannot reconstruct a multi-day range by summing per-day responses:
  • sent, opened, replied and bounced are additive — summing three single-day responses equals the 3-day range response.
  • unique_lead_count and unique_open_count are not additive. A lead emailed on two different days counts once in a range query, but once in each single-day query — so summing days inflates the unique totals (and every rate derived from them).
For an accurate figure over any period, query that period directly rather than summing individual days.