curl -X POST "https://server.smartlead.ai/api/v1/campaigns/125/duplicate?api_key=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"duplicate_sub_sequence": true,
"duplicate_client_label": true
}'
import requests
API_KEY = "YOUR_API_KEY"
CAMPAIGN_ID = 125
url = f"https://server.smartlead.ai/api/v1/campaigns/{CAMPAIGN_ID}/duplicate"
payload = {
"duplicate_sub_sequence": True,
"duplicate_client_label": True
}
response = requests.post(
url,
params={"api_key": API_KEY},
json=payload
)
result = response.json()
print(f"Duplicated campaign created with ID: {result['newCampaignId']}")
const API_KEY = 'YOUR_API_KEY';
const CAMPAIGN_ID = 125;
async function duplicateCampaign() {
const response = await fetch(
`https://server.smartlead.ai/api/v1/campaigns/${CAMPAIGN_ID}/duplicate?api_key=${API_KEY}`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
duplicate_sub_sequence: true,
duplicate_client_label: true,
}),
}
);
const data = await response.json();
console.log(`Duplicated campaign created with ID: ${data.newCampaignId}`);
return data;
}
duplicateCampaign();
{
"ok": true,
"newCampaignId": 842
}
{
"message": "Invalid campaign Id!"
}
Campaign Management
Duplicate Campaign
Creates a copy of an existing campaign including sequences, settings, and optionally sub-sequences and client labels.
POST
/
api
/
v1
/
campaigns
/
{campaign_id}
/
duplicate
curl -X POST "https://server.smartlead.ai/api/v1/campaigns/125/duplicate?api_key=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"duplicate_sub_sequence": true,
"duplicate_client_label": true
}'
import requests
API_KEY = "YOUR_API_KEY"
CAMPAIGN_ID = 125
url = f"https://server.smartlead.ai/api/v1/campaigns/{CAMPAIGN_ID}/duplicate"
payload = {
"duplicate_sub_sequence": True,
"duplicate_client_label": True
}
response = requests.post(
url,
params={"api_key": API_KEY},
json=payload
)
result = response.json()
print(f"Duplicated campaign created with ID: {result['newCampaignId']}")
const API_KEY = 'YOUR_API_KEY';
const CAMPAIGN_ID = 125;
async function duplicateCampaign() {
const response = await fetch(
`https://server.smartlead.ai/api/v1/campaigns/${CAMPAIGN_ID}/duplicate?api_key=${API_KEY}`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
duplicate_sub_sequence: true,
duplicate_client_label: true,
}),
}
);
const data = await response.json();
console.log(`Duplicated campaign created with ID: ${data.newCampaignId}`);
return data;
}
duplicateCampaign();
{
"ok": true,
"newCampaignId": 842
}
{
"message": "Invalid campaign Id!"
}
Duplicates an existing campaign with all its configuration — sequences, variants, settings, schedule, email accounts, and LinkedIn cookies. Leads are not copied.
Overview
Creates a full copy of a campaign, preserving its sequences (with variants), schedule, settings, email account mappings, and LinkedIn cookie mappings. Useful for replicating a proven campaign setup without manually recreating it. What Gets Duplicated:- Campaign settings (tracking, sending limits, stop conditions, AI categorisation, etc.)
- All email sequences with variants and A/B test settings
- Schedule and timezone configuration
- Email account associations
- LinkedIn cookie mappings
- Optionally: sub-sequences and client label
- Leads — the new campaign starts empty
- Campaign analytics and statistics
- Webhook configurations
Path Parameters
number
required
ID of the campaign to duplicate
Query Parameters
string
required
Your SmartLead API key for authentication
Request Body
boolean
Whether to also duplicate sub-sequences (conditional follow-up sequences) attached to the campaign. Defaults to
false if not provided.boolean
Whether to retain the same client association on the duplicated campaign. Useful for agency accounts that want the copy assigned to the same client. Defaults to
false if not provided.Response
boolean
Always
true for successful duplicationnumber
Unique identifier for the newly created duplicate campaign
curl -X POST "https://server.smartlead.ai/api/v1/campaigns/125/duplicate?api_key=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"duplicate_sub_sequence": true,
"duplicate_client_label": true
}'
import requests
API_KEY = "YOUR_API_KEY"
CAMPAIGN_ID = 125
url = f"https://server.smartlead.ai/api/v1/campaigns/{CAMPAIGN_ID}/duplicate"
payload = {
"duplicate_sub_sequence": True,
"duplicate_client_label": True
}
response = requests.post(
url,
params={"api_key": API_KEY},
json=payload
)
result = response.json()
print(f"Duplicated campaign created with ID: {result['newCampaignId']}")
const API_KEY = 'YOUR_API_KEY';
const CAMPAIGN_ID = 125;
async function duplicateCampaign() {
const response = await fetch(
`https://server.smartlead.ai/api/v1/campaigns/${CAMPAIGN_ID}/duplicate?api_key=${API_KEY}`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
duplicate_sub_sequence: true,
duplicate_client_label: true,
}),
}
);
const data = await response.json();
console.log(`Duplicated campaign created with ID: ${data.newCampaignId}`);
return data;
}
duplicateCampaign();
Response Codes
Success
Campaign duplicated successfully
Bad Request
Invalid request parameters or malformed request body
Unauthorized
Invalid or missing API key
Internal Server Error
Invalid campaign ID or the campaign does not belong to your account
{
"ok": true,
"newCampaignId": 842
}
{
"message": "Invalid campaign Id!"
}
The duplicated campaign is created in DRAFTED status. You will need to add leads and start it separately.
