---
title: "Bulk Cancel Workflow Runs"
method: DELETE
path: "/v2/workflows/runs"
tags: ["Runs"]
---

# Bulk Cancel Workflow Runs

`DELETE /v2/workflows/runs`

## Request

- Base URL: `https://qstash-eu-central-1.upstash.io`
- URL: `https://qstash-eu-central-1.upstash.io/v2/workflows/runs`
- Auth: one of:
  - HTTP bearer
  - API key in query parameter `qstash_token`
- TypeScript: <https://skmtc.dev/upstash/apis/upstash-workflow-rest-api/docs/v2/workflows/runs/delete.ts> (a function with typed inputs; its response is checked against the schema)

Cancel all matching workflow runs.

## Query parameters

- `workflowRunIds` string[]
- `workflowUrl` string[]
- `workflowUrlExactMatch` boolean
- `fromDate` number
- `toDate` number
- `callerIp` string[]
- `flowControlKey` string[]
- `label` string[]
- `host` string[]
- `path` string[]
- `async` boolean
- `count` integer

## Response `200`

Workflow runs cancelled, or the bulk action is created when `async=true`.

- object
  - `cancelled` integer: When cancelling by `workflowRunIds`, the number of workflow runs cancelled. For filter-based cancels, the number of in-progress workflow runs that matched the filters when the request was accepted.
  - `actionId` string: The ID of the bulk action. Only returned for filter-based cancels with `async=true`.

## Other responses

- `400`: Bad Request
- `412`: Too many bulk actions are in progress. Up to 1000 bulk actions can be in progress at the same time.
- `429`: The bulk action did not finish within one minute. It keeps running in the background and can be tracked via `GET /v2/workflows/bulkActions`.

## Changes

- **2026-09-16** `99724af1d043`: 1 breaking, 9 info
  - for the `query` request parameter `count`, default value `100` was removed
  - added the new optional `query` request parameter `async`
  - added the new optional `query` request parameter `host`
  - added the new optional `query` request parameter `path`
  - …6 more
- **2026-06-25** `39ff727f6603`: 3 info
  - for the `query` request parameter `callerIp`, the type was generalized from `string` to `array`
  - for the `query` request parameter `flowControlKey`, the type was generalized from `string` to `array`
  - for the `query` request parameter `workflowUrl`, the type was generalized from `string` to `array`
- **2026-05-15** `4cbcb5c2eac1`: 1 info
  - for the `query` request parameter `label`, the type was generalized from `string` to `array`

[Operation history](https://skmtc.dev/upstash/apis/upstash-workflow-rest-api/changes/v2/workflows/runs/delete.md)

---

[API](https://skmtc.dev/upstash/apis/upstash-workflow-rest-api.md) - [All operations](https://skmtc.dev/upstash/apis/upstash-workflow-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/upstash/apis/upstash-workflow-rest-api/revisions/251bee05a7ec?raw)
