---
type: api
title: Clean up detection alert migrations
description: **Spaces method and path for this operation:**
url: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/kibana/v8/operation/operation-alertsmigrationcleanup
resource: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/kibana/v8/operation/operation-alertsmigrationcleanup
products:
  - Kibana
---

# Clean up detection alert migrations

deprecated

- Server: `https://{kibana_url}`

## Paths

- `DELETE` `/api/detection_engine/signals/migration`
- `DELETE` `/s/{space_id}/api/detection_engine/signals/migration`

## Description

Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.

Migrations favor data integrity over shard size. Consequently, unused or orphaned indices are artifacts of
the migration process. A successful migration will result in both the old and new indices being present.
As such, the old, orphaned index can (and likely should) be deleted.

While you can delete these indices manually,
the endpoint accomplishes this task by applying a deletion policy to the relevant index, causing it to be deleted
after 30 days. It also deletes other artifacts specific to the migration implementation.

## Authentication

- Api key: `Authorization: <value>`
  These APIs use key-based authentication. You must create an API key and use the encoded value in the request header. For example: `Authorization: ApiKey base64AccessApiKey`
- Basic: `Authorization: Basic <credentials>`

## Request body

Array of `migration_id`s to cleanup

`application/json`

- `migration_ids` (string[] · min items: 1) — required

## Responses

#### `200`

Successful response

`application/json`

Type: `object[]`

An array; each item has these fields:

- `destinationIndex` (string)
- `error` (object)
  - `message` (string)
  - `status_code` (integer)
- `id` (string)
- `sourceIndex` (string)
- `status` (enum)
  Values: `success`, `failure`, `pending`
- `updated` (string · format: date-time)
- `version` (string)
#### `400`

Invalid input data response

`application/json`

One of:
- **{ error, statusCode }**
  - `error` (string)
  - `message` (string)
  - `statusCode` (integer)
- **{ status_code }**
  - `message` (string)
  - `status_code` (integer)
#### `401`

Unsuccessful authentication response

`application/json`

- `error` (string)
- `message` (string)
- `statusCode` (integer)
#### `500`

Internal server error response

`application/json`

- `message` (string)
- `status_code` (integer)
## Code examples

#### Console

```console
DELETE kbn:/api/detection_engine/signals/migration
{
  "migration_ids": [
    "string"
  ]
}
```

#### curl

```curl
curl -X DELETE "${KIBANA_URL}/api/detection_engine/signals/migration" \
  -H "Authorization: ApiKey ${API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "migration_ids": [
      "string"
    ]
  }'
```

