---
title: "Delete a preset"
method: DELETE
path: "/api/v1/presets/{slug}"
tags: ["Preset Management"]
---

# Delete a preset

`DELETE /api/v1/presets/{slug}`

## Request

- Base URL: `https://api.imagestep.dev`
- URL: `https://api.imagestep.dev/api/v1/presets/{slug}`
- Auth: API key in header `Authorization`

Deletes the preset and every version of it; every `slug@N` a caller holds answers `404 preset_not_found` from then on. A job that already ran keeps its own copy of what it ran. Built-ins are 403.

## Path parameters

- `slug` string, required

## Headers

- `Idempotency-Key` string

## Response `204`

Deleted; no body

## Other responses

- `400`: `invalid_param` on `slug` — the path names one version (`slug@N`); that is DELETE /api/v1/presets/{slug}/versions/{version}
- `403`: `forbidden` — a built-in preset
- `404`: `preset_not_found` — no such preset, or it is not yours
- `409`: Conflict — `error.code` is `idempotency_key_reuse` (the key already means a different request) or `request_in_progress` (the first request under this key has not settled yet; retryable).
- `429`: Rate limited — `error.code` is `rate_limited` and `retryable` is true. `Retry-After` says how many seconds to wait.

---

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