curl "https://server.smartlead.ai/api/v1/campaigns/all-leads-activities?api_key=YOUR_KEY&limit=50&event_time_from=2025-11-01&event_time_to=2025-11-30"
import requests
from datetime import datetime, timedelta
API_KEY = "YOUR_API_KEY"
# Get activities from the last 7 days
event_time_from = (datetime.now() - timedelta(days=7)).isoformat()
event_time_to = datetime.now().isoformat()
response = requests.get(
"https://server.smartlead.ai/api/v1/campaigns/all-leads-activities",
params={
"api_key": API_KEY,
"limit": 50,
"offset": 0,
"event_time_from": event_time_from,
"event_time_to": event_time_to
}
)
result = response.json()
print(f"Total activities: {len(result['data'])}")
print(f"Has more: {result['hasMore']}")
# Process activities
for activity in result['data']:
print(f"Lead {activity['lead_id']} in campaign {activity['campaign_name']}")
print(f" Activities: {len(activity['activities'])}")
const API_KEY = 'YOUR_API_KEY';
// Get activities from the last 7 days
const eventTimeFrom = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString();
const eventTimeTo = new Date().toISOString();
const params = new URLSearchParams({
api_key: API_KEY,
limit: 50,
offset: 0,
event_time_from: eventTimeFrom,
event_time_to: eventTimeTo
});
const response = await fetch(
`https://server.smartlead.ai/api/v1/campaigns/all-leads-activities?${params}`
);
const result = await response.json();
console.log(`Total activities: ${result.data.length}`);
console.log(`Has more: ${result.hasMore}`);
// Process activities
result.data.forEach(activity => {
console.log(`Lead ${activity.lead_id} in campaign ${activity.campaign_name}`);
console.log(` Activities: ${activity.activities.length}`);
});
{
"data": [
{
"lead_id": 2995276770,
"email_lead_map_id": 2433664091,
"campaign_id": 123,
"campaign_name": "Q4 Outreach",
"campaign_status": "ACTIVE",
"status": "INPROGRESS",
"current_seq_num": 2,
"created_at": "2025-11-25T12:54:54.000Z",
"activities": [
{
"stats_id": 12345,
"message_id": "<abc123@mail.example.com>",
"subject": "Quick question about your workflow",
"email_body": "Hi John, I wanted to reach out...",
"sent_time": "2025-11-26T10:00:00.000Z",
"from_email": "sender@company.com",
"to_email": "john@example.com",
"email_seq_number": 1,
"open_count": 3,
"click_count": 1,
"click_details": {},
"reply_details": {
"time": "2025-11-26T14:30:00.000Z",
"reply_email_body": "Thanks for reaching out...",
"message_id": "<reply123@example.com>"
},
"thread_replies": []
}
]
}
],
"hasMore": true
}
{
"error": "Invalid event_time_from format. Use YYYY-MM-DD or ISO 8601 format.",
"status": "error"
}
{
"message": "Invalid API Key"
}
Lead Management
Get All Leads Activities
Retrieve comprehensive activity timeline for all leads across all campaigns with email interactions
GET
/
api
/
v1
/
campaigns
/
all-leads-activities
curl "https://server.smartlead.ai/api/v1/campaigns/all-leads-activities?api_key=YOUR_KEY&limit=50&event_time_from=2025-11-01&event_time_to=2025-11-30"
import requests
from datetime import datetime, timedelta
API_KEY = "YOUR_API_KEY"
# Get activities from the last 7 days
event_time_from = (datetime.now() - timedelta(days=7)).isoformat()
event_time_to = datetime.now().isoformat()
response = requests.get(
"https://server.smartlead.ai/api/v1/campaigns/all-leads-activities",
params={
"api_key": API_KEY,
"limit": 50,
"offset": 0,
"event_time_from": event_time_from,
"event_time_to": event_time_to
}
)
result = response.json()
print(f"Total activities: {len(result['data'])}")
print(f"Has more: {result['hasMore']}")
# Process activities
for activity in result['data']:
print(f"Lead {activity['lead_id']} in campaign {activity['campaign_name']}")
print(f" Activities: {len(activity['activities'])}")
const API_KEY = 'YOUR_API_KEY';
// Get activities from the last 7 days
const eventTimeFrom = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString();
const eventTimeTo = new Date().toISOString();
const params = new URLSearchParams({
api_key: API_KEY,
limit: 50,
offset: 0,
event_time_from: eventTimeFrom,
event_time_to: eventTimeTo
});
const response = await fetch(
`https://server.smartlead.ai/api/v1/campaigns/all-leads-activities?${params}`
);
const result = await response.json();
console.log(`Total activities: ${result.data.length}`);
console.log(`Has more: ${result.hasMore}`);
// Process activities
result.data.forEach(activity => {
console.log(`Lead ${activity.lead_id} in campaign ${activity.campaign_name}`);
console.log(` Activities: ${activity.activities.length}`);
});
{
"data": [
{
"lead_id": 2995276770,
"email_lead_map_id": 2433664091,
"campaign_id": 123,
"campaign_name": "Q4 Outreach",
"campaign_status": "ACTIVE",
"status": "INPROGRESS",
"current_seq_num": 2,
"created_at": "2025-11-25T12:54:54.000Z",
"activities": [
{
"stats_id": 12345,
"message_id": "<abc123@mail.example.com>",
"subject": "Quick question about your workflow",
"email_body": "Hi John, I wanted to reach out...",
"sent_time": "2025-11-26T10:00:00.000Z",
"from_email": "sender@company.com",
"to_email": "john@example.com",
"email_seq_number": 1,
"open_count": 3,
"click_count": 1,
"click_details": {},
"reply_details": {
"time": "2025-11-26T14:30:00.000Z",
"reply_email_body": "Thanks for reaching out...",
"message_id": "<reply123@example.com>"
},
"thread_replies": []
}
]
}
],
"hasMore": true
}
{
"error": "Invalid event_time_from format. Use YYYY-MM-DD or ISO 8601 format.",
"status": "error"
}
{
"message": "Invalid API Key"
}
Returns detailed activity data including sent emails, opens, clicks, replies, and thread conversations for leads across all campaigns. Useful for building activity feeds and tracking engagement.
Query Parameters
string
required
Your SmartLead API key
number
default:"0"
Pagination offset (minimum: 0)
number
default:"100"
Number of lead activities to return (minimum: 1, maximum: 1000)
string
Filter activities from this date/time. Accepts ISO 8601 format (e.g.,
2025-11-25T00:00:00.000Z) or YYYY-MM-DD formatstring
Filter activities until this date/time. Accepts ISO 8601 format or
YYYY-MM-DD format. Must be used with event_time_fromcurl "https://server.smartlead.ai/api/v1/campaigns/all-leads-activities?api_key=YOUR_KEY&limit=50&event_time_from=2025-11-01&event_time_to=2025-11-30"
import requests
from datetime import datetime, timedelta
API_KEY = "YOUR_API_KEY"
# Get activities from the last 7 days
event_time_from = (datetime.now() - timedelta(days=7)).isoformat()
event_time_to = datetime.now().isoformat()
response = requests.get(
"https://server.smartlead.ai/api/v1/campaigns/all-leads-activities",
params={
"api_key": API_KEY,
"limit": 50,
"offset": 0,
"event_time_from": event_time_from,
"event_time_to": event_time_to
}
)
result = response.json()
print(f"Total activities: {len(result['data'])}")
print(f"Has more: {result['hasMore']}")
# Process activities
for activity in result['data']:
print(f"Lead {activity['lead_id']} in campaign {activity['campaign_name']}")
print(f" Activities: {len(activity['activities'])}")
const API_KEY = 'YOUR_API_KEY';
// Get activities from the last 7 days
const eventTimeFrom = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString();
const eventTimeTo = new Date().toISOString();
const params = new URLSearchParams({
api_key: API_KEY,
limit: 50,
offset: 0,
event_time_from: eventTimeFrom,
event_time_to: eventTimeTo
});
const response = await fetch(
`https://server.smartlead.ai/api/v1/campaigns/all-leads-activities?${params}`
);
const result = await response.json();
console.log(`Total activities: ${result.data.length}`);
console.log(`Has more: ${result.hasMore}`);
// Process activities
result.data.forEach(activity => {
console.log(`Lead ${activity.lead_id} in campaign ${activity.campaign_name}`);
console.log(` Activities: ${activity.activities.length}`);
});
Response Fields
array
Array of lead activity objects
Show Lead activity properties
Show Lead activity properties
number
Unique lead identifier
number
Campaign-lead mapping identifier
number
Campaign ID
string
Campaign name
string
Campaign status
string
Lead status in the campaign
number
Current sequence number for the lead
timestamp
When the lead was added to the campaign
array
Array of email activity objects
Show Activity properties
Show Activity properties
number
Email statistics ID
string
Email message ID
string
Email subject line
string
Email body content
timestamp
When the email was sent
string
Sender email address
string
Recipient email address
number
Sequence number of the email
number
Number of times the email was opened
number
Number of times links were clicked
object
Details about link clicks
object | null
array
Array of thread replies (back-and-forth conversation)
boolean
Whether there are more results available for pagination
Response Codes
Success
Activities retrieved successfully
Bad Request
Invalid date format for event_time_from or event_time_to
Unauthorized
Invalid or missing API key
Validation Error
Invalid query parameters (check limit and offset ranges)
Internal Server Error
Server error occurred
{
"data": [
{
"lead_id": 2995276770,
"email_lead_map_id": 2433664091,
"campaign_id": 123,
"campaign_name": "Q4 Outreach",
"campaign_status": "ACTIVE",
"status": "INPROGRESS",
"current_seq_num": 2,
"created_at": "2025-11-25T12:54:54.000Z",
"activities": [
{
"stats_id": 12345,
"message_id": "<abc123@mail.example.com>",
"subject": "Quick question about your workflow",
"email_body": "Hi John, I wanted to reach out...",
"sent_time": "2025-11-26T10:00:00.000Z",
"from_email": "sender@company.com",
"to_email": "john@example.com",
"email_seq_number": 1,
"open_count": 3,
"click_count": 1,
"click_details": {},
"reply_details": {
"time": "2025-11-26T14:30:00.000Z",
"reply_email_body": "Thanks for reaching out...",
"message_id": "<reply123@example.com>"
},
"thread_replies": []
}
]
}
],
"hasMore": true
}
{
"error": "Invalid event_time_from format. Use YYYY-MM-DD or ISO 8601 format.",
"status": "error"
}
{
"message": "Invalid API Key"
}
Usage Notes
This endpoint is optimized for retrieving activity timelines. Use the
event_time_from and event_time_to parameters to filter by date range for better performance.The
hasMore field indicates if there are additional results. Use the offset parameter to paginate through results.Related Endpoints
⌘I
