---
title: "Delete a VM"
method: DELETE
path: "/agent/compute/vms/{id}"
tags: ["Compute"]
---

# Delete a VM

`DELETE /agent/compute/vms/{id}`

## Request

- Base URL: `https://edge.network`
- URL: `https://edge.network/agent/compute/vms/{id}`
- Auth: HTTP bearer

Permanently deletes one VM and its disk, releases its IP, and removes it from any project. Requires the "delete" permission and the X-Confirm: delete header. Without the header the response is 400 CONFIRMATION_REQUIRED with a summary of what would be deleted. Update any DNS records pointing at the VM afterwards.

## Path parameters

- `id` string, required

## Headers

- `X-Confirm` 'delete', required
- `X-Dry-Run` 'true' | 'false'
- `Idempotency-Key` string

## Response `200`

Success.

- TellUserEnvelope: Standard success envelope. Endpoint-specific fields ride alongside tell_user.
  - `tell_user` string, required: Human-readable summary of what happened, for the agent to relay to its operator.

## Other responses

- `400`: Validation error — the response body explains what to fix.
- `401`: Missing or invalid agent access code. The body includes self-signup pointers.
- `429`: Rate limited. Honour Retry-After and the RateLimit-* headers before retrying.

---

[API](https://skmtc.dev/edge/apis/edge-network-agent-api.md) · [All operations](https://skmtc.dev/edge/apis/edge-network-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/edge/apis/edge-network-agent-api/revisions/49b5f2adf020?raw)
