curl "https://server.smartlead.ai/api/v1/email-accounts/?api_key=YOUR_KEY&limit=50&emailWarmupStatus=ACTIVE&isSmtpSuccess=true"
import requests
API_KEY = "YOUR_API_KEY"
response = requests.get(
"https://server.smartlead.ai/api/v1/email-accounts/",
params={
"api_key": API_KEY,
"limit": 50,
"offset": 0,
"emailWarmupStatus": "ACTIVE",
"isSmtpSuccess": "true",
"esp": "GMAIL"
}
)
accounts = response.json()
print(f"Total accounts: {len(accounts)}")
# Display account details
for account in accounts:
print(f"{account['from_email']} - Warmup: {account['warmup_details']['status'] if account['warmup_details'] else 'None'}")
const API_KEY = 'YOUR_API_KEY';
const params = new URLSearchParams({
api_key: API_KEY,
limit: 50,
offset: 0,
emailWarmupStatus: 'ACTIVE',
isSmtpSuccess: 'true',
esp: 'GMAIL'
});
const response = await fetch(
`https://server.smartlead.ai/api/v1/email-accounts/?${params}`
);
const accounts = await response.json();
console.log(`Total accounts: ${accounts.length}`);
// Display account details
accounts.forEach(account => {
const warmupStatus = account.warmup_details?.status || 'None';
console.log(`${account.from_email} - Warmup: ${warmupStatus}`);
});
[
{
"id": 123,
"created_at": "2025-01-15T10:30:00.000Z",
"updated_at": "2025-11-26T08:00:00.000Z",
"user_id": 456,
"from_name": "John Doe",
"from_email": "john@example.com",
"minTimeToWaitInMins": 5,
"username": "john@example.com",
"password": "encrypted_password",
"smtp_host": "smtp.gmail.com",
"smtp_port": 587,
"smtp_port_type": "TLS",
"message_per_day": 50,
"different_reply_to_address": null,
"is_different_imap_account": false,
"imap_username": "john@example.com",
"imap_password": "encrypted_password",
"imap_host": "imap.gmail.com",
"imap_port": 993,
"imap_port_type": "SSL",
"signature": "<p>Best regards,<br>John</p>",
"custom_tracking_domain": null,
"bcc_email": null,
"is_smtp_success": true,
"is_imap_success": true,
"smtp_failure_error": null,
"imap_failure_error": null,
"type": "GMAIL",
"daily_sent_count": 25,
"client_id": null,
"campaign_count": 3,
"tags": [
{
"tag_id": 10,
"tag_name": "Winners",
"tag_color": "#B1FCCF"
},
{
"tag_id": 15,
"tag_name": "Webinar Emails",
"tag_color": "#F5B1FC"
}
],
"warmup_details": {
"status": "ACTIVE",
"total_sent_count": 450,
"total_spam_count": 2,
"warmup_reputation": "95%",
"warmup_key_id": 789,
"warmup_created_at": "2025-01-15T10:30:00.000Z",
"reply_rate": 15,
"blocked_reason": null
},
"campaign_ids": [101, 102, 103]
}
]
{
"message": "Invalid API Key"
}
{
"error": "limit must be less than or equal to 100"
}
Email Account Management
Get All Email Accounts
Retrieve all email accounts with advanced filtering and pagination options
GET
/
api
/
v1
/
email-accounts
/
curl "https://server.smartlead.ai/api/v1/email-accounts/?api_key=YOUR_KEY&limit=50&emailWarmupStatus=ACTIVE&isSmtpSuccess=true"
import requests
API_KEY = "YOUR_API_KEY"
response = requests.get(
"https://server.smartlead.ai/api/v1/email-accounts/",
params={
"api_key": API_KEY,
"limit": 50,
"offset": 0,
"emailWarmupStatus": "ACTIVE",
"isSmtpSuccess": "true",
"esp": "GMAIL"
}
)
accounts = response.json()
print(f"Total accounts: {len(accounts)}")
# Display account details
for account in accounts:
print(f"{account['from_email']} - Warmup: {account['warmup_details']['status'] if account['warmup_details'] else 'None'}")
const API_KEY = 'YOUR_API_KEY';
const params = new URLSearchParams({
api_key: API_KEY,
limit: 50,
offset: 0,
emailWarmupStatus: 'ACTIVE',
isSmtpSuccess: 'true',
esp: 'GMAIL'
});
const response = await fetch(
`https://server.smartlead.ai/api/v1/email-accounts/?${params}`
);
const accounts = await response.json();
console.log(`Total accounts: ${accounts.length}`);
// Display account details
accounts.forEach(account => {
const warmupStatus = account.warmup_details?.status || 'None';
console.log(`${account.from_email} - Warmup: ${warmupStatus}`);
});
[
{
"id": 123,
"created_at": "2025-01-15T10:30:00.000Z",
"updated_at": "2025-11-26T08:00:00.000Z",
"user_id": 456,
"from_name": "John Doe",
"from_email": "john@example.com",
"minTimeToWaitInMins": 5,
"username": "john@example.com",
"password": "encrypted_password",
"smtp_host": "smtp.gmail.com",
"smtp_port": 587,
"smtp_port_type": "TLS",
"message_per_day": 50,
"different_reply_to_address": null,
"is_different_imap_account": false,
"imap_username": "john@example.com",
"imap_password": "encrypted_password",
"imap_host": "imap.gmail.com",
"imap_port": 993,
"imap_port_type": "SSL",
"signature": "<p>Best regards,<br>John</p>",
"custom_tracking_domain": null,
"bcc_email": null,
"is_smtp_success": true,
"is_imap_success": true,
"smtp_failure_error": null,
"imap_failure_error": null,
"type": "GMAIL",
"daily_sent_count": 25,
"client_id": null,
"campaign_count": 3,
"tags": [
{
"tag_id": 10,
"tag_name": "Winners",
"tag_color": "#B1FCCF"
},
{
"tag_id": 15,
"tag_name": "Webinar Emails",
"tag_color": "#F5B1FC"
}
],
"warmup_details": {
"status": "ACTIVE",
"total_sent_count": 450,
"total_spam_count": 2,
"warmup_reputation": "95%",
"warmup_key_id": 789,
"warmup_created_at": "2025-01-15T10:30:00.000Z",
"reply_rate": 15,
"blocked_reason": null
},
"campaign_ids": [101, 102, 103]
}
]
{
"message": "Invalid API Key"
}
{
"error": "limit must be less than or equal to 100"
}
Returns email accounts with SMTP/IMAP credentials, warmup status, and campaign associations. Supports filtering by connection status, warmup state, email provider, and usage status.
Query Parameters
string
required
Your SmartLead API key
number
default:"0"
Pagination offset (minimum: 0)
number
default:"100"
Number of accounts to return per page (minimum: 1, maximum: 100)
string
Filter by usage status. Valid values:
true (used in campaigns), false (not used in campaigns)string
Filter by warmup status. Valid values:
ACTIVE, INACTIVEstring
Filter by SMTP connection status. Valid values:
true (connected), false (failed)string
Filter by warmup blocked status. Valid values:
true (blocked), false (not blocked)string
Filter by email service provider. Valid values:
GMAIL, OUTLOOK, SMTPstring
Filter by email username (partial match supported)
number
Filter by client ID (for multi-tenant accounts)
string
If
true, includes an array of campaign IDs for each email account. Returns a campaign_ids field on each account object.curl "https://server.smartlead.ai/api/v1/email-accounts/?api_key=YOUR_KEY&limit=50&emailWarmupStatus=ACTIVE&isSmtpSuccess=true"
import requests
API_KEY = "YOUR_API_KEY"
response = requests.get(
"https://server.smartlead.ai/api/v1/email-accounts/",
params={
"api_key": API_KEY,
"limit": 50,
"offset": 0,
"emailWarmupStatus": "ACTIVE",
"isSmtpSuccess": "true",
"esp": "GMAIL"
}
)
accounts = response.json()
print(f"Total accounts: {len(accounts)}")
# Display account details
for account in accounts:
print(f"{account['from_email']} - Warmup: {account['warmup_details']['status'] if account['warmup_details'] else 'None'}")
const API_KEY = 'YOUR_API_KEY';
const params = new URLSearchParams({
api_key: API_KEY,
limit: 50,
offset: 0,
emailWarmupStatus: 'ACTIVE',
isSmtpSuccess: 'true',
esp: 'GMAIL'
});
const response = await fetch(
`https://server.smartlead.ai/api/v1/email-accounts/?${params}`
);
const accounts = await response.json();
console.log(`Total accounts: ${accounts.length}`);
// Display account details
accounts.forEach(account => {
const warmupStatus = account.warmup_details?.status || 'None';
console.log(`${account.from_email} - Warmup: ${warmupStatus}`);
});
Response Fields
The response is an array of email account objects, each containing:Account Information
Account Information
number
Unique email account identifier
string
Display name for outgoing emails
string
Email address
string
Email account username
string
Account type:
GMAIL, OUTLOOK, or SMTPnumber | null
Associated client ID
number
Number of campaigns using this email account
timestamp
When the account was added
timestamp
When the account was last updated
SMTP Configuration
SMTP Configuration
IMAP Configuration
IMAP Configuration
Sending Configuration
Sending Configuration
Warmup Details
Warmup Details
object | null
Email warmup status and metrics
Show Warmup properties
Show Warmup properties
string
Warmup status:
ACTIVE, INACTIVE, PAUSEDnumber
Total emails sent during warmup
number
Total emails marked as spam
string
Warmup reputation percentage (e.g., “95%”)
number
Warmup service key identifier
timestamp
When warmup was started
number
Warmup reply rate percentage
string | null
Reason if warmup is blocked
Tags
Tags
Campaign IDs (Optional)
Campaign IDs (Optional)
array
Array of campaign IDs using this email account. Only included when
fetch_campaigns=true is passed as a query parameter.Response Codes
Success
Email accounts retrieved successfully
Unauthorized
Invalid or missing API key
Validation Error
Invalid query parameters (check limit range and filter values)
Internal Server Error
Server error occurred
[
{
"id": 123,
"created_at": "2025-01-15T10:30:00.000Z",
"updated_at": "2025-11-26T08:00:00.000Z",
"user_id": 456,
"from_name": "John Doe",
"from_email": "john@example.com",
"minTimeToWaitInMins": 5,
"username": "john@example.com",
"password": "encrypted_password",
"smtp_host": "smtp.gmail.com",
"smtp_port": 587,
"smtp_port_type": "TLS",
"message_per_day": 50,
"different_reply_to_address": null,
"is_different_imap_account": false,
"imap_username": "john@example.com",
"imap_password": "encrypted_password",
"imap_host": "imap.gmail.com",
"imap_port": 993,
"imap_port_type": "SSL",
"signature": "<p>Best regards,<br>John</p>",
"custom_tracking_domain": null,
"bcc_email": null,
"is_smtp_success": true,
"is_imap_success": true,
"smtp_failure_error": null,
"imap_failure_error": null,
"type": "GMAIL",
"daily_sent_count": 25,
"client_id": null,
"campaign_count": 3,
"tags": [
{
"tag_id": 10,
"tag_name": "Winners",
"tag_color": "#B1FCCF"
},
{
"tag_id": 15,
"tag_name": "Webinar Emails",
"tag_color": "#F5B1FC"
}
],
"warmup_details": {
"status": "ACTIVE",
"total_sent_count": 450,
"total_spam_count": 2,
"warmup_reputation": "95%",
"warmup_key_id": 789,
"warmup_created_at": "2025-01-15T10:30:00.000Z",
"reply_rate": 15,
"blocked_reason": null
},
"campaign_ids": [101, 102, 103]
}
]
{
"message": "Invalid API Key"
}
{
"error": "limit must be less than or equal to 100"
}
Usage Notes
The
tags array is always included in the response. The campaign_ids array is only included when fetch_campaigns=true is passed as a query parameter.Passwords are base64 encoded in the response for security. Decode them before use in your SMTP/IMAP clients.
Use filters to find specific accounts:
- Filter by
isSmtpSuccess=falseto find accounts with connection issues - Filter by
isInUse=falseto find unused accounts - Filter by
emailWarmupStatus=ACTIVEto find accounts currently warming up
