# Bulk Cancel Workflow Runs

> Cancel all matching workflow runs.

## Endpoint

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

## Parameters

- `workflowRunIds` (query, string[]): Optional list of specific workflow run IDs to cancel. If provided, the other filters are ignored.
- `workflowUrl` (query, string[], required): The URL of the workflow whose runs to cancel. Supports multiple values.
- `workflowUrlExactMatch` (query, boolean): workflow url is searched as a prefix by default. To make it exact match, `workflowUrlExactMatch` can be set to true.
- `fromDate` (query, number): Optional start date to filter workflow runs to cancel. Unix timestamp in milliseconds.
- `toDate` (query, number): Optional end date to filter workflow runs to cancel. Unix timestamp in milliseconds.
- `callerIp` (query, string[]): Optional caller IP address to filter workflow runs to cancel. Supports multiple values.
- `flowControlKey` (query, string[]): Optional flow control key to filter workflow runs to cancel. Supports multiple values.
- `label` (query, string[]): Optional label to filter workflow runs to cancel. Supports multiple values. You can pass multiple values to match workflow runs with any of the given labels (OR logic).

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

- `count` (query, integer): Maximum number of workflow runs to cancel. Default is 100.

## Responses

### 200 - All workflow runs cancelled successfully

- `cancelled` (integer): The number of workflow runs that were cancelled.

## cURL

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