---
title: "Prewarm Web Voice"
method: POST
path: "/v1/teams/{team_id}/web-voice/prewarm"
tags: ["web voice"]
---

# Prewarm Web Voice

`POST /v1/teams/{team_id}/web-voice/prewarm`

WARM THE VOICE LANE WHILE THE PERSON IS STILL DECIDING.

Owner, 2026-09-10, of the install screen's pick between talking and
typing: "while the user picks, warm up." Until now the browser lane's
container was parked only from `/realtime/session` — i.e. once the call
had already begun — so the first spoken turn paid the cold boot the pool
exists to hide (`boot_ms` 1630-3040 cold, 12-35 warm, measured on this
box). This is the same kick, one press earlier, and it starts no call.

Owners and admins only, like the session-bound prewarm it mirrors: a
guest's press warms nothing it could not have warmed by starting a call.

## Path parameters

- `team_id` string, uuid, required

## Headers

- `authorization` string, nullable
- `x-darwin-token` string, nullable

## Request body

- WebVoicePrewarmRequest — The conversation the call will join, if the page already opened one.
  - `session_id` string, uuid, nullable

## Response `202`

Successful Response

- object

## Other responses

- `422` — Validation Error

## Changes

> 33 revisions in range; 1 not diffed.

- **2026-09-11** `79b0c0f35170` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/stormy/apis/stormy-control-plane/changes/v1/teams/:team_id/web-voice/prewarm/post.md)

---

[API](https://skmtc.dev/stormy/apis/stormy-control-plane.md) · [All operations](https://skmtc.dev/stormy/apis/stormy-control-plane/llms.txt) · [OpenAPI document](https://skmtc.dev/stormy/apis/stormy-control-plane/revisions/52151384d62a?raw)
