Skip to main content

Smart Warmup

Monitor your email warmup campaigns with detailed analytics on pool health, deliverability, conversation stats, and subscription status.

API Playground

tip

Try this endpoint live in the API Playground.

Get Warmup Analytics

Retrieve comprehensive warmup analytics including pool stats, AI generation costs, provider-level deliverability, conversation metrics, and subscription health.

Endpoint

GET /v1/send-accounts/smart-warmup/analytics

Headers

HeaderValue
AuthorizationBearer cdb_your_api_key

Query Parameters

ParameterTypeRequiredDescription
daysintegerNoLookback period in days (default: 30, max: 90)
providerstringNoFilter by email provider (e.g., gmail, outlook, yahoo)

Example Request

curl -X GET \
-H "Authorization: Bearer cdb_your_api_key_here" \
"https://api.crondb.com/v1/send-accounts/smart-warmup/analytics?days=30"

Python

import requests

response = requests.get(
"https://api.crondb.com/v1/send-accounts/smart-warmup/analytics",
headers={"Authorization": "Bearer cdb_your_api_key_here"},
params={"days": 30},
)

data = response.json()
print(f"Pool size: {data['pool_stats']['total_accounts']}")
print(f"Avg deliverability: {data['pool_stats']['avg_deliverability']}%")

Node.js

const response = await fetch(
"https://api.crondb.com/v1/send-accounts/smart-warmup/analytics?days=30",
{ headers: { Authorization: "Bearer cdb_your_api_key_here" } }
);

const data = await response.json();
console.log(`Pool size: ${data.pool_stats.total_accounts}`);
console.log(`Avg deliverability: ${data.pool_stats.avg_deliverability}%`);

Response

{
"pool_stats": {
"total_accounts": 12,
"active_accounts": 10,
"paused_accounts": 2,
"avg_deliverability": 94.5,
"avg_warmup_progress": 72
},
"generation_costs": {
"total_emails_generated": 3200,
"ai_tokens_used": 1850000,
"estimated_cost_usd": 2.45,
"period_start": "2026-02-20",
"period_end": "2026-03-22"
},
"provider_deliverability": [
{
"provider": "gmail",
"sent": 1450,
"delivered": 1420,
"bounced": 12,
"spam_rate": 1.2,
"deliverability_pct": 97.9
},
{
"provider": "outlook",
"sent": 980,
"delivered": 940,
"bounced": 18,
"spam_rate": 2.2,
"deliverability_pct": 95.9
},
{
"provider": "yahoo",
"sent": 420,
"delivered": 395,
"bounced": 8,
"spam_rate": 4.0,
"deliverability_pct": 94.0
}
],
"conversation_stats": {
"total_conversations": 1580,
"avg_replies_per_thread": 3.2,
"avg_thread_length_days": 4.5,
"positive_engagement_rate": 88.5
},
"subscription_health": {
"active_subscriptions": 45,
"newsletters_received": 320,
"unsubscribe_rate": 2.1,
"engagement_rate": 65.0
}
}

Response Fields

FieldTypeDescription
pool_statsobjectOverview of warmup pool accounts and progress
pool_stats.avg_warmup_progressnumberAverage warmup completion percentage (0-100)
generation_costsobjectAI email generation token usage and estimated cost
provider_deliverabilityarrayPer-provider delivery, bounce, and spam metrics
conversation_statsobjectWarmup conversation thread metrics
subscription_healthobjectNewsletter subscription engagement metrics

Get Account Warmup Status

Check the warmup status of a specific send account, including pool count, persona details, and subscription info.

Endpoint

GET /v1/send-accounts/{id}/smart-warmup/status

Headers

HeaderValue
AuthorizationBearer cdb_your_api_key

Path Parameters

ParameterTypeRequiredDescription
idstringYesSend account ID

Example Request

curl -X GET \
-H "Authorization: Bearer cdb_your_api_key_here" \
"https://api.crondb.com/v1/send-accounts/sa_abc123/smart-warmup/status"

Python

import requests

account_id = "sa_abc123"
response = requests.get(
f"https://api.crondb.com/v1/send-accounts/{account_id}/smart-warmup/status",
headers={"Authorization": "Bearer cdb_your_api_key_here"},
)

data = response.json()
print(f"Status: {data['warmup_status']}")
print(f"Daily volume: {data['current_daily_volume']}/{data['target_daily_volume']}")

Response

{
"account_id": "sa_abc123",
"email": "sales@yourcompany.com",
"warmup_status": "active",
"warmup_started_at": "2026-02-15T10:00:00Z",
"warmup_progress_pct": 68,
"current_daily_volume": 34,
"target_daily_volume": 50,
"pool_count": 85,
"persona": {
"name": "Alex from YourCompany",
"tone": "professional",
"industry_context": "B2B SaaS"
},
"subscriptions": {
"active": 12,
"newsletters": ["TechCrunch", "Morning Brew", "Product Hunt"],
"engagement_rate": 72.0
},
"deliverability": {
"inbox_rate": 96.2,
"spam_rate": 1.8,
"bounce_rate": 0.5
},
"next_ramp_up_at": "2026-03-25T00:00:00Z"
}

Response Fields

FieldTypeDescription
warmup_statusstringCurrent status: active, paused, completed, failed
warmup_progress_pctnumberOverall warmup completion (0-100)
current_daily_volumeintegerEmails sent per day currently
target_daily_volumeintegerTarget daily volume at full warmup
pool_countintegerNumber of warmup peers in the pool
personaobjectAI persona used for warmup conversations
subscriptionsobjectNewsletter subscriptions for inbox activity
deliverabilityobjectCurrent inbox, spam, and bounce rates
next_ramp_up_atstringWhen daily volume will next increase

Get Warmup Pool Stats

Retrieve network-wide warmup pool statistics showing aggregate health across all CronDB warmup participants.

Endpoint

GET /v1/send-accounts/warmup-pool/stats

Headers

HeaderValue
AuthorizationBearer cdb_your_api_key

Example Request

curl -X GET \
-H "Authorization: Bearer cdb_your_api_key_here" \
"https://api.crondb.com/v1/send-accounts/warmup-pool/stats"

Response

{
"pool_size": 2450,
"active_participants": 1890,
"daily_emails_exchanged": 45000,
"avg_inbox_rate": 95.8,
"avg_reply_rate": 42.5,
"provider_distribution": {
"gmail": 45,
"outlook": 30,
"yahoo": 10,
"other": 15
},
"your_accounts_in_pool": 10,
"your_pool_rank_pct": 82
}

Response Fields

FieldTypeDescription
pool_sizeintegerTotal accounts in the warmup network
active_participantsintegerAccounts actively sending warmup emails
daily_emails_exchangedintegerNetwork-wide daily warmup email volume
avg_inbox_ratenumberNetwork average inbox placement rate (%)
avg_reply_ratenumberNetwork average reply rate (%)
provider_distributionobjectPercentage split by email provider
your_accounts_in_poolintegerHow many of your accounts are in the pool
your_pool_rank_pctnumberYour accounts' performance percentile

Notes

  • Smart Warmup endpoints require the Starter plan or higher
  • Warmup analytics are updated every 15 minutes
  • Pool statistics are aggregated across all CronDB users (no individual data is exposed)
  • AI-generated warmup emails use DeepSeek for cost-efficient content generation

Next Steps