---
title: "Delete Optimizer"
method: DELETE
path: "/v1/optimizers/{optimizer}"
tags: ["Optimizers"]
---

# Delete Optimizer

`DELETE /v1/optimizers/{optimizer}`

## Request

- Base URL: `https://api.ensemble.markets` (the document declares no server; this is the origin it was published from)
- URL: `https://api.ensemble.markets/v1/optimizers/{optimizer}`
- Auth: HTTP bearer

Delete an optimizer. Refused while stored scripts still name it.

## Path parameters

- `optimizer` string, required: Optimizer ID (`optimizer_...` or legacy `o-...`) or class name (`MaxSharpeOpt`)

## Response `200`

Successful Response

- Deleted: The confirmation every DELETE returns. A silent 204 cannot be told from a swallowed error at the end of a pipeline; this can, and names what went.
  - `id` string, required: The deleted record's id (a backfill's symbol)
  - `kind` 'model' | 'run' | 'backfill' | 'optimizer' | 'webhook', required
  - `deleted` true

## Other responses

- `4XX`: The request was refused; `error.type` says why
- `5XX`: The server failed; quote `X-Request-Id` when reporting it

---

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