---
title: "Enable warming (async)"
method: POST
path: "/v1/warming/enable-async"
tags: ["Warming"]
---

# Enable warming (async)

`POST /v1/warming/enable-async`

## Request

- Base URL: `https://api.winnr.app`
- URL: `https://api.winnr.app/v1/warming/enable-async`
- Auth: HTTP bearer

Asynchronously enable warming for email users. Creates a background job
that processes mailboxes via SQS. Each mailbox is enabled independently
with automatic retries on failure. Track progress via the returned job_id
using GET /v1/jobs/{job_id} or a Firestore listener on the job document.
Warming is billed at enable time, before the job is created (see
/v1/warming/enable); a payment failure returns 402 and no job is created.

## Request body

- object
  - `user_ids` string[], required
  - `settings` object
    - `emails_per_day` integer
    - `rampup_speed` 'slow' | 'normal' | 'fast'

## Response `200`

Job created and mailboxes queued for processing

- object
  - `meta` Meta
    - `request_id` string
    - `timestamp` string, date-time
  - `data` object
    - `job_id` string, nullable: Job ID for progress tracking, null if no eligible mailboxes
    - `status` 'processing' | 'completed'
    - `total` integer: Number of eligible mailboxes queued
    - `queued` integer: Number of SQS messages successfully sent
    - `skipped` integer: Number of mailboxes skipped (already warming, inactive, etc.)

---

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