---
title: "Undeploy a model (clears inference URL and marks DELETED; weights preserved)"
method: POST
path: "/api/deployed-models/{id}/undeploy/"
tags: ["deployed-models"]
---

# Undeploy a model (clears inference URL and marks DELETED; weights preserved)

`POST /api/deployed-models/{id}/undeploy/`

## Request

- Base URL: `https://api.overmindlab.ai`
- URL: `https://api.overmindlab.ai/api/deployed-models/{id}/undeploy/`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`
  - API key in cookie `sessionid`
  - API key in header `X-Api-Key`
  - HTTP bearer

Clear the inference URL so no new requests are routed here.

The GPU pool scales to zero on its own once idle. Weights are preserved —
use deploy/retry to bring it back.

## Path parameters

- `id` string, uuid, required

## Response `200`

- DeployedModel
  - `id` string, uuid, required
  - `project` string, uuid, required
  - `model_id` string, required
  - `deployment_progress` DeploymentProgress, required
    - `stage` string, required
    - `label` string, required
    - `attempt` integer, required
    - `retry_at` string, date-time, nullable, required
    - `deadline` string, date-time, nullable, required
    - `last_error` string, nullable, required
  - `inference_contract` 'chat' | 'decision', required: * `chat` - Chat * `decision` - Decision
  - `status` 'queued' | 'quantizing' | 'deploying' | 'warming' | 'ready' | 'failed' | 'deleting' | 'deleted', required: * `queued` - Queued * `quantizing` - Quantizing * `deploying` - Deploying * `warming` - Warming * `ready` - Ready * `failed` - Failed * `deleting` - Deleting * `deleted` - Deleted
  - `quantization` 'fp8' | 'bf16', required: * `fp8` - FP8 * `bf16` - BF16
  - `base_model_id` string, required: Base model ID used for the fine-tuning job.
  - `gpu_type` string, required: Modal GPU type: 'L4' or 'L40S'.
  - `is_lora` boolean, required
  - `lora_rank` integer, required: LoRA rank; 0 for full models.
  - `weights_path` string, required: Path inside the Modal overmind-weights Volume.
  - `checkpoint_hash` string, required: Content hash of the quantized weights directory.
  - `max_model_len` integer, required: Maximum context length passed to vLLM --max-model-len.
  - `num_parameters` integer, required
  - `sla_tier` string, required: 'hot' keeps a warm container alive; 'standard' scales to zero.
  - `inference_url` string, required: Modal web endpoint URL for the model's vLLM container pool.
  - `error_message` string, required
  - `created_at` string, date-time, required
  - `deployed_at` string, date-time, nullable, required
  - `finetuning_job_id` string, uuid, required
  - `finetuning_job_name` string, nullable, required
  - `capability_id` string, nullable, required
  - `capability_name` string, nullable, required
  - `request_count` integer, required
  - `last_active_at` string, date-time, nullable, required
  - `total_tokens` integer, nullable, required
  - `avg_tokens_per_second` number, double, nullable, required
  - `avg_latency_ms` number, double, nullable, required
  - `cost_total` number, double, nullable, required
  - `cost_this_month` number, double, nullable, required

---

[API](https://skmtc.dev/overmindlab/apis/overmind-api.md) - [All operations](https://skmtc.dev/overmindlab/apis/overmind-api/llms.txt) - [OpenAPI document](https://skmtc.dev/overmindlab/apis/overmind-api/revisions/0ecfd39e80c6?raw)
