# Bulk Cancel Messages

> Delete all pending messages

## Endpoint

`DELETE https://qstash-{region}.upstash.io/v2/messages`

## Parameters

- `messageIds` (query, string[]): A list of message IDs to delete. If provided, other filters are ignored.
- `topicName` (query, string[]): Filter messages by URL Group name. Supports multiple values.
- `queueName` (query, string[]): Filter messages by Queue name. Supports multiple values.
- `url` (query, string[]): Filter messages by destination URL. Supports multiple values.
- `host` (query, string[]): Filter messages by the host of the destination URL. Supports multiple values.
- `path` (query, string[]): Filter messages by the path of the destination URL. Supports multiple values.
- `label` (query, string[]): Filter messages by label. Supports multiple values. You can pass multiple values to match messages with any of the given labels (OR logic).

Examples:
- `label=my_label`
- `label=label_1&label=label_2`
- `label=label_1,label_2`

- `flowControlKey` (query, string[]): Filter messages by Flow Control Key. Supports multiple values.
- `fromDate` (query, integer): Filter messages created after this timestamp (Unix milli, inclusive).
- `toDate` (query, integer): Filter messages created before this timestamp (Unix milli, inclusive).
- `scheduleId` (query, string[]): Filter messages by Schedule ID. Supports multiple values.
- `callerIp` (query, string[]): Filter messages by the IP address of the publisher. Supports multiple values.
- `callerIP` (query, string[]): Deprecated. Use `callerIp` instead.
- `count` (query, integer): Maximum number of messages to delete, between 1 and 500. If not provided, all messages matching the filters will be deleted.

## Responses

### 200 - All messages deleted successfully

- `cancelled` (integer): Number of messages cancelled

## cURL

```bash
curl --request DELETE \
  --url https://qstash-{region}.upstash.io/v2/messages \
  --header 'Authorization: Bearer <token>'
```
