Skip to main content

Sequence Warmup

Sequence-level warmup controls the ramp curve a sequence follows when it first goes live. Distinct from per-account Smart Warmup (which warms a mailbox by exchanging emails with peer accounts), sequence warmup throttles real outbound to your prospect list — start at a low daily volume and step up over days/weeks so ESPs don't see a sudden cold blast and tank your reputation.

tip

Sequence warmup endpoints require the Starter plan or higher. They configure ramp behavior on a single sequence; the warmup schedule is enforced by the sequence worker every time it picks the next batch to send.

When to use which

ScenarioEndpoint family
Brand-new mailbox with no sending historySmart Warmup — peer-to-peer warmup pool, AI-generated content.
Established mailbox, new prospect sequence at 200/dayThis page — start at 10, ramp to 200 over ~2 weeks.
BothRun them concurrently. The smart-warmup pool consumes warmup quota; the sequence worker respects sequence-level ramp on top.

Get Warmup Dashboard

The complete view of where this sequence sits on its ramp curve plus reputation estimate, recent volume chart, and 30-day funnel rollups.

Endpoint

GET /v1/sequence-warmup/{sequence_id}/dashboard

Path Parameters

ParameterTypeRequiredDescription
sequence_idintegerYesTarget sequence.

Example Request

curl -X GET \
-H "Authorization: Bearer cdb_your_api_key_here" \
"https://api.crondb.com/v1/sequence-warmup/41/dashboard"

Response

{
"warmup_enabled": true,
"warmup_started_at": "2026-04-22T08:00:00Z",
"warmup_paused_at": null,
"warmup_start_volume": 10,
"warmup_increment": 5,
"daily_send_limit": 80,
"current_effective_limit": 75,
"days_since_start": 13,
"days_until_full_volume": 1,
"warmup_phase": "ramping",
"warmup_preset": "moderate",
"warmup_progress_pct": 93,
"reputation_estimate": 96,
"estimated_inbox_rate": 91,
"delivered_count_30d": 1042,
"opened_count_30d": 488,
"daily_volume_chart": [
{ "date": "2026-05-05", "sent_count": 75, "bounce_count": 1, "complaint_count": 0, "effective_limit": 75 },
{ "date": "2026-05-04", "sent_count": 70, "bounce_count": 0, "complaint_count": 0, "effective_limit": 70 }
]
}

Response Fields

FieldDescription
warmup_enabledWhether the ramp is active on this sequence.
warmup_phasenot_started, ramping, at_limit, or paused.
current_effective_limitThe cap the worker uses today (min(daily_send_limit, start_volume + days × increment)).
days_until_full_volumeAt the current increment, how many more days until daily_send_limit is reached.
reputation_estimate0–100 score derived from recent bounce + complaint rates (100 − bounce_rate × 5 − complaint_rate × 20).
estimated_inbox_rateBest-guess inbox placement rate based on the reputation estimate. null until the sequence has sent something.
daily_volume_chartOne entry per day (last 30) — chart-ready time series.

Apply a Preset

Three baked-in ramp curves, plus custom to free the parameters.

Endpoint

POST /v1/sequence-warmup/{sequence_id}/preset

Body Parameters

ParameterTypeRequiredDescription
presetstringYesconservative, moderate, aggressive, or custom.

Preset values

Presetstart_volumeincrementdaily_limitReaches limit in
conservative52 / day30~13 days
moderate105 / day50~8 days
aggressive2510 / day200~18 days
customUse /adjust.

Example Request

curl -X POST \
-H "Authorization: Bearer cdb_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"preset": "moderate"}' \
"https://api.crondb.com/v1/sequence-warmup/41/preset"

Response

{
"message": "Warmup preset 'moderate' applied",
"warmup_start_volume": 10,
"warmup_increment": 5,
"daily_send_limit": 50,
"warmup_preset": "moderate"
}

Adjust Parameters

Override the start volume, increment, or daily cap independently. Sets the preset to custom automatically.

Endpoint

POST /v1/sequence-warmup/{sequence_id}/adjust

Body Parameters

ParameterTypeRangeDescription
start_volumeinteger1–1000Day-1 ceiling.
incrementinteger1–100Sends added to the cap each day.
daily_limitinteger1–10000The post-ramp steady-state cap.

All three fields are optional; pass only what you want to change.

curl -X POST \
-H "Authorization: Bearer cdb_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"increment": 8}' \
"https://api.crondb.com/v1/sequence-warmup/41/adjust"

Pause / Resume / Reset

MethodPathEffect
POST/v1/sequence-warmup/{id}/pauseSets warmup_enabled=false, stamps warmup_paused_at. The sequence keeps sending at the current effective limit, but the ramp stops climbing.
POST/v1/sequence-warmup/{id}/resumeRe-enables and shifts warmup_started_at forward by the pause duration so the curve picks up where it left off (vs. counting paused days).
POST/v1/sequence-warmup/{id}/resetWipes warmup_started_at and the warmup log table. Use after fixing reputation issues to start the ramp over from day 1.

pause returns 400 if warmup is already inactive; resume returns 400 if warmup was never started (use the create/update sequence flow instead).


Domain Health Check

A quick yes/no on whether the sequence's from_email domain is properly configured for cold outreach.

Endpoint

GET /v1/sequence-warmup/{sequence_id}/health

Returns SPF, DKIM, and DMARC presence + records, plus a recommendation. The DKIM check probes a list of common selectors (default, google, selector1, mandrill, k1, mail, etc.) — a false result doesn't guarantee no DKIM, just that none of the well-known selectors are publishing.


Blacklist Check

Check the sender domain against a curated list of DNSBLs (Spamhaus, SpamCop, SORBS, Barracuda, Composite, Invaluement). Cached for 24 hours per domain to avoid hammering the providers.

Endpoint

GET /v1/sequence-warmup/{sequence_id}/blacklist

Response

{
"domain": "yourcompany.com",
"ip": null,
"cached": false,
"results": [
{ "list": "Spamhaus ZEN", "listed": false },
{ "list": "SpamCop", "listed": false },
{ "list": "SORBS", "listed": false }
],
"listed_count": 0,
"total_checked": 6,
"checked_at": "2026-05-05T08:14:02Z"
}

cached: true indicates the result was served from today's earlier check.


DNS Setup Guide

Returns a tailored guide for setting up SPF / DKIM / DMARC for the sequence's from_email domain — including the exact records to add at your registrar, given the detected provider (Google Workspace, Microsoft 365, Resend, generic SMTP).

GET /v1/sequence-warmup/{sequence_id}/dns-guide

Useful for showing prospects "fix these three DNS records before sending" inline in your dashboard, instead of pointing them at provider-specific docs.


Deliverability Snapshot

Combined report: domain health + blacklist + 30-day delivery stats + recent reputation trend. The "show me one number that says how my sequence is doing" endpoint.

GET /v1/sequence-warmup/{sequence_id}/deliverability

The response merges the contents of /health, /blacklist, and /dashboard into a single payload, plus surfaces actionable recommendations (e.g. "DMARC missing — add a p=none record to start collecting reports").


Notes

  • Sequence warmup operates at the sequence level. If a sequence rotates across multiple mailboxes via Mailbox Pool, the effective daily cap is divided round-robin across the pool.
  • Reputation estimates are heuristics, not measurements. The reputation_score returned by Send Account Reputation History uses real send-side data — prefer it when you need a hard number.
  • Blacklist checks run a TXT lookup per list; transient DNS failures show up as listed: false (not an error). Re-check tomorrow if a result looks suspicious.
  • The DNS-guide endpoint is read-only — it doesn't create records, only generates the snippets you need to add.

Next Steps