---
title: Delete
description: Delete time series data from an InfluxDB Cloud bucket by specifying a time range and optional tag predicate.
url: https://docs.influxdata.com/influxdb/cloud/api/delete/
estimated_tokens: 5526
product: InfluxDB Cloud (TSM)
version: cloud
---

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

Delete time series data from an InfluxDB Cloud 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/cloud/write-data/delete-data/)
-   Learn how to use [delete predicate syntax](/influxdb/cloud/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 body required

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/cloud/write-data/delete-data/)
-   Learn how to use [delete predicate syntax](/influxdb/cloud/reference/syntax/delete-predicate/).

Content-Type: `application/json`

`predicate` string

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

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

`start` required string <date-time>

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

`stop` required string <date-time>

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

Example request [Ask AI about this](#)

```sh
curl --request POST \
  "https://us-east-1-1.aws.cloud2.influxdata.com/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` required string

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` required string

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.

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

`code` required string

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.

default Non 2XX error response from server.

`code` required string

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.
