---
title: "Decrease Order (V2)"
method: POST
path: "/portfolio/events/orders/{order_id}/decrease"
tags: ["orders"]
---

# Decrease Order (V2)

`POST /portfolio/events/orders/{order_id}/decrease`

Endpoint for decreasing the remaining count of an existing event-market order using the V2 request/response shape. Exactly one of `reduce_by` or `reduce_to` must be provided.

## Path parameters

- `order_id` string, required

## Query parameters

- `subaccount` integer

## Request body

- DecreaseOrderV2Request
  - `reduce_by` string — 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.
  - `reduce_to` string — 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.
  - `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`

Order decreased successfully

- DecreaseOrderV2Response
  - `order_id` string, required
  - `client_order_id` string
  - `remaining_count` 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, required — Matching engine timestamp at which the decrease was processed, as Unix epoch milliseconds.

## Other responses

- `400` — Bad request - invalid input
- `401` — Unauthorized - authentication required
- `404` — Resource not found
- `500` — Internal server error

## Changes

> 16 revisions in range; 1 could not be searched.

- **2026-08-20** `f2e3ba6d8ce6` — 1 info
  - the `exchange_index` request property default value `0` was removed
- **2026-07-31** `a07481be8bf9` — 4 warning, 1 info
  - removed the optional property `service` from the response with the `400` status
  - removed the optional property `service` from the response with the `401` status
  - removed the optional property `service` from the response with the `404` status
  - removed the optional property `service` from the response with the `500` status
  - …1 more

[Change history](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/changes/portfolio/events/orders/:order_id/decrease/post.md)

---

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