# Delete Viz

```
DELETE 
/v1/viz/:viz_id
```

Delete a viz and everything scheduled against it.

Irreversible, and it takes more than the dashboard: every **alert** and every **dashboard subscription** bound to this viz is deleted with it (a subscription's scheduled task too), along with the git repo, both branch bundles and the screenshot.

Those deliveries used to SURVIVE the dashboard — they carry no foreign key to `viz`, so nothing removed them — leaving a watch that could no longer be listed or stopped through the API, still scheduled against a real inbox. They cannot be re-pointed at another dashboard (neither update model accepts a `vizId`), so there is nothing to preserve and no 409 to raise: read them with `GET /v1/alerts?vizId=` and `GET /v1/viz/{viz_id}/subscriptions` BEFORE deleting if you need the recipients or the condition.

The response is 204 with no body (API shape rule S1). The MCP `delete_viz` tool counts both lists first and reports `alertsRemoved` / `subscriptionsRemoved`.

## Request[​](#request "Direkter Link zur request")

## Responses[​](#responses "Direkter Link zur Responses")

* 204
* 404
* 422

Successful Response

Not found

Validation Error
