---
title: "Load Model"
method: POST
path: "/models/load"
---

# Load Model

`POST /models/load`

## Request

- Base URL: `https://api.voicelabs.now` (the document declares no server; this is the origin it was published from)
- URL: `https://api.voicelabs.now/models/load`
- Auth: none declared

Load a model into memory.

Pass ``{"model_name": "kokoro"}`` to target any registered engine. Only an
absent ``model_name`` falls back to the default Qwen TTS backend, selected
by the ``model_size`` query parameter, which is what callers did before
``model_name`` existed. A supplied-but-empty name is a bad request, not a
request for the default — silently loading Qwen there is the very bug this
endpoint had. Either way a TTS load goes through ``load_engine_model``
(VoiceLabs: one heavy model resident at a time).

## Query parameters

- `model_size` string, nullable

## Request body

- ModelLoadRequest: Request model for loading or unloading a model by name. ``model_name`` is one of the ids returned by ``GET /models/status`` (e.g. ``"kokoro"``, ``"qwen-tts-0.6B"``, ``"whisper-turbo"``). ``model_size`` is the legacy Qwen-only selector, kept so existing ``POST /models/load?model_size=0.6B`` callers keep working.
  - `model_name` string, nullable
  - `model_size` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

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