---
type: api
title: Delete snapshots
description: ## Required authorization
url: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/elasticsearch/v9/operation/operation-snapshot-delete
resource: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/elasticsearch/v9/operation/operation-snapshot-delete
products:
  - Elasticsearch
---

# Delete snapshots

## Paths

- `DELETE` `/_snapshot/{repository}/{snapshot}`

#### Path parameters

- `repository` (string) — required
  The name of the repository to delete a snapshot from.
- `snapshot` (union string | string[]) — required
  A comma-separated list of snapshot names to delete.
It also accepts wildcards (`*`).

## Required authorization

- Cluster privileges: `manage`

## Authentication

- Api key: `Authorization: <value>`
  Elasticsearch APIs support key-based authentication.
  You must create an API key and use the encoded value in the request header.
  For example:
  
  
  ```
  curl -X GET "${ES_URL}/_cat/indices?v=true" \
    -H "Authorization: ApiKey ${API_KEY}"
  ```
  
  To get API keys, use the `/_security/api_key` APIs.
- Basic: `Authorization: Basic <credentials>`
- Bearer: `Authorization: Bearer <token>`
  Elasticsearch APIs support the use of bearer tokens in the `Authorization` HTTP header to authenticate with the API.
  For examples, refer to [Token-based authentication services](https://www.elastic.co/docs/deploy-manage/users-roles/cluster-or-deployment-auth/token-based-authentication-services)

## Query string parameters

- `master_timeout` (string · default: 30s) — optional
  The period to wait for the master node.
If the master node is not available before the timeout expires, the request fails and returns an error.
To indicate that the request should never timeout, set it to `-1`.
- `wait_for_completion` (boolean · default: true) — optional
  If `true`, the request returns a response when the matching snapshots are all deleted.
If `false`, the request returns a response as soon as the deletes are scheduled.

## Response

`application/json`

- `acknowledged` (boolean)
  For a successful response, this value is always true. On failure, an exception is returned instead.
## Code examples

#### Console

```console
DELETE /_snapshot/my_repository/snapshot_2,snapshot_3
```

#### JavaScript

```javascript
const response = await client.snapshot.delete({
  repository: "my_repository",
  snapshot: "snapshot_2,snapshot_3",
});
```

#### Python

```python
resp = client.snapshot.delete(
    repository="my_repository",
    snapshot="snapshot_2,snapshot_3",
)
```

#### curl

```curl
curl -X DELETE "$ELASTICSEARCH_URL/_snapshot/my_repository/snapshot_2,snapshot_3" \
  -H "Authorization: ApiKey $ELASTIC_API_KEY"
```

#### Java

```java
client.snapshot().delete(d -> d
    .repository("my_repository")
    .snapshot(List.of("snapshot_2","snapshot_3"))
);
```

#### C#

```c#
var response = await client.Snapshot.DeleteAsync(repository: "my_repository", snapshot: new[] { "snapshot_2", "snapshot_3" });
```

#### PHP

```php
$resp = $client->snapshot()->delete([
    "repository" => "my_repository",
    "snapshot" => "snapshot_2,snapshot_3",
]);
```

#### Ruby

```ruby
response = client.snapshot.delete(
  repository: "my_repository",
  snapshot: "snapshot_2,snapshot_3"
)
```

## Response examples

#### Snapshot delete response example1

A successful response from `DELETE /_snapshot/my_repository/snapshot_2,snapshot_3`. The request deletes `snapshot_2` and `snapshot_3` from the repository named `my_repository`.

```json
{
  "acknowledged" : true
}
```

