curl -X POST "https://server.smartlead.ai/api/v1/campaigns/123/leads/456/resume?api_key=YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"resume_lead_with_delay_days": 3}'
import requests
API_KEY = "YOUR_API_KEY"
campaign_id = 123
lead_id = 456
# Resume with custom delay
payload = {
"resume_lead_with_delay_days": 3
}
response = requests.post(
f"https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/leads/{lead_id}/resume",
params={"api_key": API_KEY},
json=payload
)
result = response.json()
if result.get('ok'):
print(f"Lead {lead_id} resumed with {payload['resume_lead_with_delay_days']} day delay")
# Or resume with default delay
response = requests.post(
f"https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/leads/{lead_id}/resume",
params={"api_key": API_KEY},
json={}
)
const API_KEY = 'YOUR_API_KEY';
const campaignId = 123;
const leadId = 456;
// Resume with custom delay
const payload = {
resume_lead_with_delay_days: 3
};
const response = await fetch(
`https://server.smartlead.ai/api/v1/campaigns/${campaignId}/leads/${leadId}/resume?api_key=${API_KEY}`,
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
}
);
const result = await response.json();
if (result.ok) {
console.log(`Lead ${leadId} resumed with ${payload.resume_lead_with_delay_days} day delay`);
}
{
"ok": true,
"data": "success"
}
{
"message": "Invalid API Key"
}
{
"error": "Campaign not found - Invalid campaign_id."
}
{
"error": "This is the last sequence. You cannot resume this lead."
}
{
"error": "Invalid lead id"
}
Lead Management
Resume Lead
Resume email sending for a paused lead with optional custom delay
POST
/
api
/
v1
/
campaigns
/
{campaign_id}
/
leads
/
{lead_id}
/
resume
curl -X POST "https://server.smartlead.ai/api/v1/campaigns/123/leads/456/resume?api_key=YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"resume_lead_with_delay_days": 3}'
import requests
API_KEY = "YOUR_API_KEY"
campaign_id = 123
lead_id = 456
# Resume with custom delay
payload = {
"resume_lead_with_delay_days": 3
}
response = requests.post(
f"https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/leads/{lead_id}/resume",
params={"api_key": API_KEY},
json=payload
)
result = response.json()
if result.get('ok'):
print(f"Lead {lead_id} resumed with {payload['resume_lead_with_delay_days']} day delay")
# Or resume with default delay
response = requests.post(
f"https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/leads/{lead_id}/resume",
params={"api_key": API_KEY},
json={}
)
const API_KEY = 'YOUR_API_KEY';
const campaignId = 123;
const leadId = 456;
// Resume with custom delay
const payload = {
resume_lead_with_delay_days: 3
};
const response = await fetch(
`https://server.smartlead.ai/api/v1/campaigns/${campaignId}/leads/${leadId}/resume?api_key=${API_KEY}`,
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
}
);
const result = await response.json();
if (result.ok) {
console.log(`Lead ${leadId} resumed with ${payload.resume_lead_with_delay_days} day delay`);
}
{
"ok": true,
"data": "success"
}
{
"message": "Invalid API Key"
}
{
"error": "Campaign not found - Invalid campaign_id."
}
{
"error": "This is the last sequence. You cannot resume this lead."
}
{
"error": "Invalid lead id"
}
Resuming a lead changes its status to
INPROGRESS and schedules the next email based on the delay specified. If no delay is provided, the sequence’s default delay is used.Path Parameters
number
required
The campaign ID containing the lead
number
required
The lead ID to resume
Query Parameters
string
required
Your SmartLead API key
Request Body
number
Number of days to wait before sending the next email. If not provided, uses the default delay from the sequence configuration. The next email timestamp is calculated as
last_sent_time + delay_days.curl -X POST "https://server.smartlead.ai/api/v1/campaigns/123/leads/456/resume?api_key=YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"resume_lead_with_delay_days": 3}'
import requests
API_KEY = "YOUR_API_KEY"
campaign_id = 123
lead_id = 456
# Resume with custom delay
payload = {
"resume_lead_with_delay_days": 3
}
response = requests.post(
f"https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/leads/{lead_id}/resume",
params={"api_key": API_KEY},
json=payload
)
result = response.json()
if result.get('ok'):
print(f"Lead {lead_id} resumed with {payload['resume_lead_with_delay_days']} day delay")
# Or resume with default delay
response = requests.post(
f"https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/leads/{lead_id}/resume",
params={"api_key": API_KEY},
json={}
)
const API_KEY = 'YOUR_API_KEY';
const campaignId = 123;
const leadId = 456;
// Resume with custom delay
const payload = {
resume_lead_with_delay_days: 3
};
const response = await fetch(
`https://server.smartlead.ai/api/v1/campaigns/${campaignId}/leads/${leadId}/resume?api_key=${API_KEY}`,
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
}
);
const result = await response.json();
if (result.ok) {
console.log(`Lead ${leadId} resumed with ${payload.resume_lead_with_delay_days} day delay`);
}
Response Codes
Success
Lead resumed successfully
Unauthorized
Invalid or missing API key
Not Found
Campaign not found or you don’t have access to it
Internal Server Error
Server error occurred (e.g., lead is at the last sequence and cannot be resumed)
{
"ok": true,
"data": "success"
}
{
"message": "Invalid API Key"
}
{
"error": "Campaign not found - Invalid campaign_id."
}
{
"error": "This is the last sequence. You cannot resume this lead."
}
{
"error": "Invalid lead id"
}
Behavior Notes
When a lead is resumed:
- Lead status changes from
PAUSEDtoINPROGRESS - The next sequence is determined automatically
- The
next_timestamp_to_reachis calculated based on:- If
resume_lead_with_delay_daysis provided:last_sent_time + specified_days - If not provided: Uses the default delay from the sequence configuration
- If no
last_sent_timeexists: Scheduled immediately (NOW)
- If
- Drafted emails are marked as
DRAFTEDand ready to send
You cannot resume a lead that is already on the last sequence of the campaign. Attempting to do so will return an error.
