---
title: Delete
description: Delete time series data from an InfluxDB OSS v2 bucket by specifying a time range and optional tag predicate.
url: https://docs.influxdata.com/influxdb/v2/api/delete/
estimated_tokens: 2049
product: InfluxDB OSS v2
version: v2
publisher: InfluxData
canonical: https://docs.influxdata.com/influxdb/v2/api/delete/
---

[Download InfluxDB API Spec](/openapi/influxdb-oss-v2-api.yml)

Delete time series data from an InfluxDB OSS v2 bucket by specifying a time range and optional tag predicate.

POST`/api/v2/delete`

### Delete data

Deletes data from a bucket.

Use this endpoint to delete points from a bucket in a specified time range.

#### InfluxDB Cloud

* Does the following when you send a delete request:

  1. Validates the request and queues the delete.
  2. If queued, responds with *success* (HTTP `2xx` status code); *error* otherwise.
  3. Handles the delete asynchronously and reaches eventual consistency.

To ensure that InfluxDB Cloud handles writes and deletes in the order you request them,
wait for a success response (HTTP `2xx` status code) before you send the next request.

Because writes and deletes are asynchronous, your change might not yet be readable
when you receive the response.

#### InfluxDB OSS v2

* Validates the request, handles the delete synchronously,
  and then responds with success or failure.

#### Required permissions

* `write-buckets` or `write-bucket BUCKET_ID`.

*`BUCKET_ID`* is the ID of the destination bucket.

#### Rate limits (with InfluxDB Cloud)

`write` rate limits apply.
For more information, see [limits and adjustable quotas](/influxdb/cloud/account-management/limits/).

#### Related guides

* [Delete data](/influxdb/v2/write-data/delete-data/)
* Learn how to use [delete predicate syntax](/influxdb/v2/reference/syntax/delete-predicate/).
* Learn how InfluxDB handles [deleted tags](/flux/v0.x/stdlib/influxdata/influxdb/schema/measurementtagkeys/)and [deleted fields](/flux/v0.x/stdlib/influxdata/influxdb/schema/measurementfieldkeys/).

#### Parameters

##### Query parameters

`org`string

An organization name or ID.

#### InfluxDB Cloud

* Doesn’t use the `org` parameter or `orgID` parameter.
* Deletes data from the bucket in the organization
  associated with the authorization (API token).

#### InfluxDB OSS v2

* Requires either the `org` parameter or the `orgID` parameter.
* Deletes data from the bucket in the specified organization.
* If you pass both `orgID` and `org`, they must both be valid.

`bucket`string

A bucket name or ID.
Specifies the bucket to delete data from.
If you pass both `bucket` and `bucketID`, `bucketID` takes precedence.

`orgID`string

An organization ID.

#### InfluxDB Cloud

* Doesn’t use the `org` parameter or `orgID` parameter.
* Deletes data from the bucket in the organization
  associated with the authorization (API token).

#### InfluxDB OSS v2

* Requires either the `org` parameter or the `orgID` parameter.
* Deletes data from the bucket in the specified organization.
* If you pass both `orgID` and `org`, they must both be valid.

`bucketID`string

A bucket ID.
Specifies the bucket to delete data from.
If you pass both `bucket` and `bucketID`, `bucketID` takes precedence.

##### Header parameters

`Zap-Trace-Span`string

OpenTracing span context

#### Request bodyrequired

Time range parameters and an optional **delete predicate expression**.

To select points to delete within the specified time range, pass a**delete predicate expression** in the `predicate` property of the request body.
If you don’t pass a `predicate`, InfluxDB deletes all data with timestamps
in the specified time range.

#### Related guides

* [Delete data](/influxdb/v2/write-data/delete-data/)
* Learn how to use [delete predicate syntax](/influxdb/v2/reference/syntax/delete-predicate/).

Content-Type:`application/json`

`predicate`string

An expression in [delete predicate syntax](/influxdb/v2/reference/syntax/delete-predicate/).

Example:`"tag1=\"value1\" and (tag2=\"value2\" and tag3!=\"value3\")"`

`start`requiredstring \<date-time\>

A timestamp ([RFC3339 date/time format](/influxdb/v2/reference/glossary/#rfc3339-timestamp)).
The earliest time to delete from.

`stop`requiredstring \<date-time\>

A timestamp ([RFC3339 date/time format](/influxdb/v2/reference/glossary/#rfc3339-timestamp)).
The latest time to delete from.

Example request[Ask AI about this](#)

```sh
curl --request POST \
  "http://localhost:8086/api/v2/delete" \
  --header "Authorization: Bearer INFLUX_TOKEN" \
  --header "Content-Type: application/json" \
  --data-raw '{
  "predicate": "tag1=\"value1\" and (tag2=\"value2\" and tag3!=\"value3\")",
  "start": "START",
  "stop": "STOP"
}'
```

#### Responses

204

Success.

#### InfluxDB Cloud

* Validated and queued the request.
* Handles the delete asynchronously - the deletion might not have completed yet.

An HTTP `2xx` status code acknowledges that the write or delete is queued.
To ensure that InfluxDB Cloud handles writes and deletes in the order you request them,
wait for a response before you send the next request.

Because writes are asynchronous, data might not yet be written
when you receive the response.

#### InfluxDB OSS v2

* Deleted the data.

400

Bad request.
The response body contains detail about the error.

#### InfluxDB OSS v2

* Returns this error if the `org` parameter or `orgID` parameter doesn’t match an organization.

`code`requiredstring

code is the machine-readable error code.

Allowed:`internal error`, `not implemented`, `not found`, `conflict`, `invalid`, `unprocessable entity`, `empty value`, `unavailable`, `forbidden`, `too many requests`, `unauthorized`, `method not allowed`, `request too large`, `unsupported media type`

`err`string

Stack of errors that occurred during processing of the request. Useful for debugging.

`message`string

Human-readable message.

`op`string

Describes the logical code operation when the error occurred. Useful for debugging.

401

Unauthorized. The error may indicate one of the following:

* The `Authorization: Token` header is missing or malformed.
* The API token value is missing from the header.
* The token doesn’t have sufficient permissions to write to this organization and bucket.

`code`string

The HTTP status code description. Default is `unauthorized`.

Allowed:`unauthorized`

`message`string

A human-readable message that may contain detail about the error.

404

Not found.
A requested resource was not found.
The response body contains the requested resource type and the name value
(if you passed it)–for example:

* `"organization name \"my-org\" not found"`
* `"organization not found"`: indicates you passed an ID that did not match
  an organization.

`code`requiredstring

code is the machine-readable error code.

Allowed:`internal error`, `not implemented`, `not found`, `conflict`, `invalid`, `unprocessable entity`, `empty value`, `unavailable`, `forbidden`, `too many requests`, `unauthorized`, `method not allowed`, `request too large`, `unsupported media type`

`err`string

Stack of errors that occurred during processing of the request. Useful for debugging.

`message`string

Human-readable message.

`op`string

Describes the logical code operation when the error occurred. Useful for debugging.

500Internal server error.
The server encountered an unexpected situation.

`code`requiredstring

code is the machine-readable error code.

Allowed:`internal error`, `not implemented`, `not found`, `conflict`, `invalid`, `unprocessable entity`, `empty value`, `unavailable`, `forbidden`, `too many requests`, `unauthorized`, `method not allowed`, `request too large`, `unsupported media type`

`err`string

Stack of errors that occurred during processing of the request. Useful for debugging.

`message`string

Human-readable message.

`op`string

Describes the logical code operation when the error occurred. Useful for debugging.

defaultNon 2XX error response from server.

`code`requiredstring

code is the machine-readable error code.

Allowed:`internal error`, `not implemented`, `not found`, `conflict`, `invalid`, `unprocessable entity`, `empty value`, `unavailable`, `forbidden`, `too many requests`, `unauthorized`, `method not allowed`, `request too large`, `unsupported media type`

`err`string

Stack of errors that occurred during processing of the request. Useful for debugging.

`message`string

Human-readable message.

`op`string

Describes the logical code operation when the error occurred. Useful for debugging.
