---
title: "Cancel a warming window"
method: DELETE
path: "/v1/email/domains/{id}/warming/batches/{batchId}"
tags: ["Email"]
---

# Cancel a warming window

`DELETE /v1/email/domains/{id}/warming/batches/{batchId}`

## Request

- Base URL: `https://api.samva.dev`
- URL: `https://api.samva.dev/v1/email/domains/{id}/warming/batches/{batchId}`
- Auth: API key in header `x-api-key`

Cancels a scheduled or open system-created warming window. Recipients a campaign run already reserved from it stay reserved; no further runs draw from it.

## Path parameters

- `id` string, required
- `batchId` string, required

## Response `200`

DomainWarming

- DomainWarming
  - `domain` DomainWarmingDomainRef, required
    - `id` string, required
    - `domain` string, required
  - `plan` DomainWarmingPlan, required
    - `id` string, required
    - `status` 'active' | 'paused' | 'completed', required
    - `identity` 'new' | 'migrating' | 'returning', required
    - `initialDailyRecipients` number, required
    - `dailyGrowthPercent` number, required
    - `targetDailyRecipients` number, required
    - `holdReason` string, nullable, required
    - `heldAt` string, nullable, required
    - `pausedAt` string, nullable, required
    - `completedAt` string, nullable, required
    - `createdAt` string, required
    - `updatedAt` string, required
  - `batches` DomainWarmingBatch[], required
    - `id` string, required
    - `sequence` number, required
    - `state` 'scheduled' | 'open' | 'closed' | 'cancelled', required
    - `startsAt` string, required
    - `endsAt` string, required
    - `allowanceRecipients` number, required
    - `dailyGrowthPercent` number, required
    - `targetDailyRecipients` number, required
    - `reservedRecipients` number, required
    - `acceptedRecipients` number, required
    - `cancelledAt` string, nullable, required
    - `createdAt` string, required
  - `decisions` DomainWarmingDecision[], required
    - `id` string, required
    - `kind` 'plan-created' | 'policy-updated' | 'window-opened' | 'window-cancelled' | 'paused' | 'resumed' | 'held' | 'completed', required
    - `batchId` string, required
    - `actor` string, required
    - `note` string, nullable, required
    - `createdAt` string, required
  - `evidence` DomainWarmingEvidence, required
    - `observedAt` string, required
    - `windowHours` number, required
    - `minimumSends` number, required
    - `sent` number, required
    - `bounced` number, required
    - `complained` number, required
    - `hourly` DomainWarmingWindowHour[], required
      - `sent` number, required
      - `bounced` number, required
      - `complained` number, required
    - `bounceThreshold` number, required
    - `complaintThreshold` number, required
    - `verdict` 'insufficient-evidence' | 'healthy' | 'over-threshold', required
    - `thresholdReason` string, nullable, required
  - `holds` DomainWarmingHolds, required
    - `workspacePausedAt` string, nullable, required
    - `workspacePauseReason` string, nullable, required
    - `sendingStatus` 'enabled' | 'disabled' | 'reinstated' | 'unknown', required

## Other responses

- `401`: UnauthorizedError
- `403`: ForbiddenError
- `404`: ResourceNotFoundError
- `409`: ConflictError
- `422`: ValidationError
- `500`: InternalError
- `504`: GatewayTimeoutError

---

[API](https://skmtc.dev/samva/apis/samva-api.md) · [All operations](https://skmtc.dev/samva/apis/samva-api/llms.txt) · [OpenAPI document](https://skmtc.dev/samva/apis/samva-api/revisions/a99408542cc3?raw)
