---
title: "Batch Cancel Orders (V2)"
method: DELETE
path: "/portfolio/events/orders/batched"
tags: ["orders"]
---

# Batch Cancel Orders (V2)

`DELETE /portfolio/events/orders/batched`

Endpoint for cancelling a batch of event-market orders using the V2 response shape. The maximum batch size scales with your tier's write budget — see [Rate Limits and Tiers](/getting_started/rate_limits).

## Request body

- BatchCancelOrdersV2Request
  - `orders` object[], required — An array of orders to cancel, each optionally specifying a subaccount.
    - `order_id` string, required — Order ID to cancel.
    - `subaccount` integer — Optional subaccount number to use for this cancellation (0 for primary, 1-63 for subaccounts). Subaccount-restricted API keys must omit this field or pass their locked subaccount.
    - `exchange_index` integer — Identifier for an exchange shard.
    - `market_ticker` string — Market ticker used for auto-routing when exchange_index is omitted or -1.

## Response `200`

Batch order cancellation completed

- BatchCancelOrdersV2Response
  - `orders` object[], required
    - `order_id` string, required — The order ID identifying which order this entry corresponds to.
    - `client_order_id` string, nullable
    - `reduced_by` string, required — Fixed-point contract count string (2 decimals, e.g., "10.00"; referred to as "fp" in field names). Requests accept 0-2 decimal places (e.g., "10", "10.0", "10.00"); responses always emit 2 decimals. Fractional contract values (e.g., "2.50") are supported; the minimum granularity is 0.01 contracts.
    - `ts_ms` integer, nullable — Matching engine timestamp at which the cancellation was processed, as Unix epoch milliseconds. Absent when the cancel errored.
    - `error` ErrorResponse
      - `code` string — Error code
      - `message` string — Human-readable error message
      - `details` string — Additional details about the error, if available

## Other responses

- `400` — Bad request - invalid input
- `401` — Unauthorized - authentication required
- `403` — Forbidden - insufficient permissions
- `500` — Internal server error

---

[API](https://skmtc.net/kalshi/apis/kalshi-trade-api-manual-endpoints.md) · [All operations](https://skmtc.net/kalshi/apis/kalshi-trade-api-manual-endpoints/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kalshi/kalshi-trade-api-manual-endpoints/revisions/6aec27d55fba/schema)
