curl -X POST "https://server.smartlead.ai/api/v1/campaigns/123/leads?api_key=YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"lead_list": [
{
"email": "john@example.com",
"first_name": "John",
"last_name": "Doe",
"company_name": "Acme Corp",
"custom_fields": {
"job_title": "CEO"
}
}
]
}'
import requests
API_KEY = "YOUR_API_KEY"
campaign_id = 123
payload = {
"lead_list": [
{
"email": "john@example.com",
"first_name": "John",
"last_name": "Doe",
"company_name": "Acme Corp",
"custom_fields": {
"job_title": "CEO"
}
}
]
}
response = requests.post(
f"https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/leads",
params={"api_key": API_KEY},
json=payload
)
result = response.json()
print(f"Added: {result.get('added_count', 0)}, Skipped: {result.get('skipped_count', 0)}")
const API_KEY = 'YOUR_API_KEY';
const campaignId = 123;
const payload = {
lead_list: [
{
email: 'john@example.com',
first_name: 'John',
last_name: 'Doe',
company_name: 'Acme Corp',
custom_fields: {
job_title: 'CEO'
}
}
]
};
const response = await fetch(
`https://server.smartlead.ai/api/v1/campaigns/${campaignId}/leads?api_key=${API_KEY}`,
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
}
);
const result = await response.json();
console.log(`Added: ${result.added_count}, Skipped: ${result.skipped_count}`);
{
"success": true,
"message": "Leads added successfully",
"added_count": 1,
"skipped_count": 0,
"skipped_leads": []
}
{
"message": "Invalid API Key"
}
{
"error": "Invalid email format for john@invalid"
}
Lead Management
Add Leads to Campaign
Add new leads to a campaign with validation and deduplication
POST
/
api
/
v1
/
campaigns
/
{campaign_id}
/
leads
curl -X POST "https://server.smartlead.ai/api/v1/campaigns/123/leads?api_key=YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"lead_list": [
{
"email": "john@example.com",
"first_name": "John",
"last_name": "Doe",
"company_name": "Acme Corp",
"custom_fields": {
"job_title": "CEO"
}
}
]
}'
import requests
API_KEY = "YOUR_API_KEY"
campaign_id = 123
payload = {
"lead_list": [
{
"email": "john@example.com",
"first_name": "John",
"last_name": "Doe",
"company_name": "Acme Corp",
"custom_fields": {
"job_title": "CEO"
}
}
]
}
response = requests.post(
f"https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/leads",
params={"api_key": API_KEY},
json=payload
)
result = response.json()
print(f"Added: {result.get('added_count', 0)}, Skipped: {result.get('skipped_count', 0)}")
const API_KEY = 'YOUR_API_KEY';
const campaignId = 123;
const payload = {
lead_list: [
{
email: 'john@example.com',
first_name: 'John',
last_name: 'Doe',
company_name: 'Acme Corp',
custom_fields: {
job_title: 'CEO'
}
}
]
};
const response = await fetch(
`https://server.smartlead.ai/api/v1/campaigns/${campaignId}/leads?api_key=${API_KEY}`,
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
}
);
const result = await response.json();
console.log(`Added: ${result.added_count}, Skipped: ${result.skipped_count}`);
{
"success": true,
"message": "Leads added successfully",
"added_count": 1,
"skipped_count": 0,
"skipped_leads": []
}
{
"message": "Invalid API Key"
}
{
"error": "Invalid email format for john@invalid"
}
Max 400 leads per request. Validates against block lists and duplicates. Returns added/skipped counts with reasons.
Path Parameters
number
required
The ID of the campaign to add leads to
Query Parameters
string
required
Your SmartLead API key
Request Body
array
required
Array of lead objects to add (maximum 400 leads per request)
Show Lead Object
Show Lead Object
object
curl -X POST "https://server.smartlead.ai/api/v1/campaigns/123/leads?api_key=YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"lead_list": [
{
"email": "john@example.com",
"first_name": "John",
"last_name": "Doe",
"company_name": "Acme Corp",
"custom_fields": {
"job_title": "CEO"
}
}
]
}'
import requests
API_KEY = "YOUR_API_KEY"
campaign_id = 123
payload = {
"lead_list": [
{
"email": "john@example.com",
"first_name": "John",
"last_name": "Doe",
"company_name": "Acme Corp",
"custom_fields": {
"job_title": "CEO"
}
}
]
}
response = requests.post(
f"https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/leads",
params={"api_key": API_KEY},
json=payload
)
result = response.json()
print(f"Added: {result.get('added_count', 0)}, Skipped: {result.get('skipped_count', 0)}")
const API_KEY = 'YOUR_API_KEY';
const campaignId = 123;
const payload = {
lead_list: [
{
email: 'john@example.com',
first_name: 'John',
last_name: 'Doe',
company_name: 'Acme Corp',
custom_fields: {
job_title: 'CEO'
}
}
]
};
const response = await fetch(
`https://server.smartlead.ai/api/v1/campaigns/${campaignId}/leads?api_key=${API_KEY}`,
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
}
);
const result = await response.json();
console.log(`Added: ${result.added_count}, Skipped: ${result.skipped_count}`);
Response Codes
Success
Leads added successfully
Bad Request
Invalid request parameters or malformed request body
Unauthorized
Invalid or missing API key
Not Found
Campaign not found or no access
Validation Error
Lead validation failed - check email format, required fields
Rate Limit Exceeded
Too many requests
Internal Server Error
Server error occurred
{
"success": true,
"message": "Leads added successfully",
"added_count": 1,
"skipped_count": 0,
"skipped_leads": []
}
{
"message": "Invalid API Key"
}
{
"error": "Invalid email format for john@invalid"
}
Related Endpoints
⌘I
