IP warmup
A brand-new IP address has no sending history, and mailbox providers treat mail from an unknown IP with suspicion: sudden volume from a cold IP looks exactly like a spammer spinning up infrastructure, so Gmail, Outlook, and the rest throttle or junk it. Warmup earns the address a reputation gradually, starting small and ramping up over weeks so providers learn to trust it. Every dedicated IP you buy goes through it before it can handle your full volume.
The ramp
You do not manage warmup yourself. Every newly purchased dedicated IP starts in the warming status, and we warm it up automatically over roughly 30 days. The ramp is a fixed series of stages: at each stage the new IP takes a larger share of your traffic, and anything beyond what it can safely handle overflows through the shared pool. Your mail keeps flowing at full volume the entire time; only the split between the new IP and the shared infrastructure changes as the ramp progresses.
Three facts define the ramp:
- warmup_progress is the completed fraction of the ramp, 0 to 100. It advances steadily as stages complete; expect increments, not jumps.
- Progress syncs hourly. We check every warming IP against the sending infrastructure once an hour, so a change can take up to an hour to appear. Polling more often than that gains nothing.
- Completion flips the status to active. When the final stage is reached, warmup_progress reads 100, warmup_completed_at is set, and the IP handles whatever volume its pool sends, with no overflow to the shared infrastructure.
The full set of statuses a dedicated IP can report, including cancellation, lives in Dedicated IPs & pools.
Monitoring warmup
Watch status and progress on the Dedicated IPs page (Email → IP Pools → Dedicated IPs), or read the IP resource with the CLI:

Code example
bird email dedicated-ips get dip_6jeq30c6f79n9st5z6002c349rCode example
{
"address": "198.51.100.22",
"created_at": "2026-06-29T13:56:39Z",
"hostname": "mta2.send.goldcrest.dev",
"id": "dip_6jeq30c6f79n9st5z6002c349r",
"ip_pool_id": "ipp_1btmn1nnkd8y6a4jckbkvvt9eh",
"organization_id": "org_01ky7m235keybaf72b0fdgfwj4",
"purchased_at": "2026-06-29T13:56:39Z",
"status": "warming",
"updated_at": "2026-07-23T13:56:39Z",
"warmup_progress": 45,
"warmup_started_at": "2026-06-29T13:56:39Z"
}The warmup fields:
- warmup_progress: how much of the ramp is complete, 0 to 100.
- warmup_started_at: when the ramp began, which is the moment of purchase.
- warmup_completed_at: appears once warmup finishes and the IP transitions to active. Absent while the IP is still warming.
When to flip your default
The ramp protects you from the volume curve, but two decisions stay in your hands:
- The shared pool stays your default until you change it. Buying a dedicated IP never reroutes your traffic: sends that do not name a pool keep riding the shared pool, which is already warmed up, and traffic is never forced onto a cold IP. When you are ready, make your dedicated pool the default; the rules are in Dedicated IPs & pools.
- Wait for active before flipping. You can point traffic at a pool whose IPs are still warming, and overflow routing means the mail still delivers, but the cleanest pattern is to leave the shared pool as default until warmup_completed_at is set, then switch. Never plan around dumping your full volume on a freshly purchased IP; the reputation you build during warmup is the whole point.
If you run multiple pools, treat each new IP the same way: purchase it into its pool, watch warmup_progress, and route dedicated traffic deliberately once the IP is active.
Next steps
- Dedicated IPs & pools: purchasing IPs, organizing pools, and default-pool rules
- Deliverability · Email: where warmup fits in the reputation model