---
title: "Bulk-update warmup settings (async)"
method: POST
path: "/warmup/bulk-update"
tags: ["Warmup"]
---

# Bulk-update warmup settings (async)

`POST /warmup/bulk-update`

## Request

- Base URL: `https://warmysender.com/api/v1`
- URL: `https://warmysender.com/api/v1/warmup/bulk-update`
- Auth: HTTP bearer

Applies the same warmup changes to many mailboxes at once. Returns 202 with a job id immediately — poll GET /jobs/{id} for progress. Mailboxes that can't be enabled (not connected) are recorded as per-item errors on the job. A strategy change updates both `warmup_type` and `warmup_mode` (the field the ramp reads) on every mailbox in the batch.

Required scope: `warmup:write`.

Requires a unique `Idempotency-Key` request header so retries never duplicate.

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `mailbox_ids` string[], required: Mailbox ids to update (1–500).
  - `updates` object, required: A warmup settings object — same fields as Update warmup settings (warmup_enabled, warmup_type, warmup_target_daily_volume, language). At least one field required.

## Response `202`

Success

## Other responses

- `400`: `validation_error` — Body failed validation or no update fields given.
- `401`: `unauthorized` — Missing or invalid API key.
- `403`: `insufficient_scope` — The API key lacks the scope this endpoint requires.
- `404`: `mailboxes_not_found` — One or more mailbox ids don't exist (details.missing_mailbox_ids).
- `429`: `rate_limited` — Too many requests — slow down and retry after the Retry-After delay.

---

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