---
title: "Pause warmup"
method: POST
path: "/email/dedicated_ips/{id}/actions/pause_warmup"
tags: ["Dedicated IPs"]
---

# Pause warmup

`POST /email/dedicated_ips/{id}/actions/pause_warmup`

## Request

- Base URL: `https://api.telnyx.com/v2`
- URL: `https://api.telnyx.com/v2/email/dedicated_ips/{id}/actions/pause_warmup`
- Auth: HTTP bearer

Pause the warm-up ramp at its current stage. While paused, the IP releases no first-attempt sends from hold and the ramp does not advance. Only a `warming_up` IP can be paused; pausing an already paused IP refreshes `paused_at`.

## Path parameters

- `id` string, uuid, required

## Response `200`

Dedicated IP

- DedicatedIpShowResponse
  - `data` DedicatedIp, required: A dedicated sending IP address owned by the account.
    - `id` string, uuid
    - `record_type` 'dedicated_ip'
    - `ip_address` string: The allocated IPv4/IPv6 address.
    - `ip_version` 'ipv4' | 'ipv6'
    - `pool_id` string, uuid, nullable
    - `region` string: Region label of the allocated IP (for example, `ewr-nj1`).
    - `status` 'provisioning' | 'warming_up' | 'active' | 'suspended' | 'released': Lifecycle status. `provisioning`: purchased and billed, carries no mail until `start_warmup`. `warming_up`: warm-up ramp in progress. `active`: ramp complete. `suspended`: suspended by Telnyx; carries no mail and is still billed. `released`: returned to Telnyx; carries no mail.
    - `warmup` DedicatedIpWarmup: Warmup ramp state for a dedicated IP.
      - `started_at` string, date-time, nullable: When `start_warmup` was called. Null before warm-up starts and after release.
      - `progress` integer: Ramp progress (0-100): the share of the 28 send-day schedule completed. Only UTC days on which the IP sent mail count. Set to 100 when the ramp completes, automatically or through `complete_warmup`. On an `active` IP this value is informational and can keep an earlier value after a suspension is lifted.
      - `daily_cap` integer, nullable: Daily cap of the current ramp stage. Null until the scheduler arms the first stage, and cleared when the ramp completes, automatically or through `complete_warmup`. On an `active` IP this value is informational and can keep an earlier stage cap after a suspension is lifted; it does not limit sending.
      - `paused` boolean: True while the ramp is paused.
      - `paused_at` string, date-time, nullable: When the ramp was paused. Null when not paused.
      - `today` object, nullable: Today's warmup allowance report card (current UTC day). Null outside the warmup window (before start_warmup, after release/suspension). `active` IPs report the ramp-complete allowance, except as described for `cap`.
        - `day` string, date: The UTC day this snapshot describes (warmup caps reset at UTC midnight).
        - `cap` integer, nullable: The day's allowance cap. Null when the ramp has not opened yet (day 0: the scheduler has not armed a stage cap) — distinct from a spent day, which reports the cap with remaining 0. `active` IPs report `100000000`, the ramp-complete cap; `complete_warmup` applies it to the current day immediately. A day's allowance created before the IP became `active` can keep its stored `cap` and `remaining` until the next first-attempt send refreshes them.
        - `granted` integer: First-attempt sends released from warmup hold so far today. Delivery retries never lease allowance and are not counted.
        - `remaining` integer, nullable: Headroom left today. A queued send held by the daily cap is explained by remaining == 0; null mirrors cap (ramp not open yet). On an `active` IP whose `cap` is below `100000000`, remaining == 0 is a stored allowance and does not block the next eligible first-attempt send.
    - `billing` DedicatedIpBilling: Monthly recurring charge (MRC) state for the IP's current allocation.
      - `status` 'not_started' | 'pending' | 'in_progress' | 'active' | 'stopping' | 'stopped' | 'stop_failed' | 'failed': `not_started`: no charge recorded for the current allocation. `pending`: the charge is queued. `in_progress`: the charge is being created. `active`: the MRC is active. `stopping`: release requested; the MRC stop is being processed. `stopped`: the MRC has stopped. `stop_failed`: the MRC stop failed and the charge remains. `failed`: the charge could not be created.
      - `charged` boolean: True when `status` is `active`, `stopping`, or `stop_failed`. An IP carries mail only after its charge has been created.
    - `provisioning_status` 'not_applicable' | 'pending_ptr' | 'pending_dns' | 'dns_confirmed' | 'dns_lost': Same value as `provisioning.dns_status`.
    - `provisioning` DedicatedIpProvisioning: Read-only status of the Telnyx-managed PTR record. No customer action is required to complete it.
      - `dns_status` 'not_applicable' | 'pending_ptr' | 'pending_dns' | 'dns_confirmed' | 'dns_lost': `dns_confirmed`: the PTR is forward-confirmed and `dns_confirmed_at` is set. `pending_ptr`: the PTR record is not yet in place. `pending_dns`: the PTR record is waiting for forward confirmation. `dns_lost`: a previously confirmed PTR no longer confirms, or the PTR request was abandoned before it ever confirmed (`ptr_request_state` is `abandoned`); the IP carries no mail until DNS is confirmed. `not_applicable`: the IP is released or has no PTR record on file.
      - `ptr_request_state` 'pending' | 'pr_open' | 'merged' | 'confirmed' | 'failed' | 'abandoned' | 'null', nullable: State of the Telnyx PTR change: `pending`, `pr_open`, `merged`, `confirmed`, `failed`, or `abandoned`. Informational.
      - `ptr_request_pr_url` string, nullable: Reference to the Telnyx PTR change request, when one exists. Informational.
      - `checklist` object: Informational progress flags for the Telnyx-managed PTR. They do not gate `start_warmup`; use `dns_status` to check whether the IP can carry mail.
        - `ptr_requested` boolean
        - `ptr_authored` boolean
        - `ptr_merged` boolean
        - `forward_confirmed` boolean
    - `ptr_hostname` string, nullable: Telnyx-managed reverse DNS (PTR) hostname of the IP, in the form `mta-<a-b-c-d>.msgtelnyx.com`. Also used as the EHLO hostname when sending from the IP. Managed by Telnyx and cannot be changed through the API.
    - `dns_confirmed_at` string, date-time, nullable: When the PTR hostname was forward-confirmed (PTR → hostname → A record → this IP). The IP carries mail only while this is set.
    - `quarantine_until` string, date-time, nullable: Set on release to 30 days after `released_at`. The address is not returned to stock before this time.
    - `released_at` string, date-time, nullable: When the IP was released. Null until release.
    - `suspension_reason` string, nullable: Reason Telnyx recorded when suspending the IP. Null unless `status` is `suspended`.
    - `created_at` string, date-time
    - `updated_at` string, date-time

## Other responses

- `400`: Malformed request
- `401`: Unauthorized
- `404`: Not found
- `409`: The IP is not in `warming_up` status.

## Changes

> 152 revisions in range; 1 not diffed.

- **2026-10-22** `8b7c33b1ee45`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/changes/email/dedicated_ips/:id/actions/pause_warmup/post.md)

---

[API](https://skmtc.dev/team-telnyx/apis/telnyx-api-2.md) - [All operations](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/llms.txt) - [OpenAPI document](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/revisions/f82938f53ff4?raw)
