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

# Amend Order (V2)

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

## Request

- Base URL: `https://external-api.kalshi.com/trade-api/v2`
- URL: `https://external-api.kalshi.com/trade-api/v2/portfolio/events/orders/{order_id}/amend`
- Auth: API key in header `KALSHI-ACCESS-KEY` and API key in header `KALSHI-ACCESS-SIGNATURE` and API key in header `KALSHI-ACCESS-TIMESTAMP`

Endpoint for amending the price, max fillable count, and/or expiration time of an existing event-market order. The request `count` is the updated total/max fillable count, equal to already filled count plus desired resting remaining count. This behavior matches the v1 amend endpoints; only the request/response shape differs.

## Path parameters

- `order_id` string, required

## Query parameters

- `subaccount` integer

## Request body

- AmendOrderV2Request
  - `ticker` string, required: Market ticker
  - `side` 'bid' | 'ask', required: Side of the book for an order or trade. For event markets, this refers to the YES leg only: `bid` means buy YES, `ask` means sell YES. (Selling YES is economically equivalent to buying NO at `1 - price`, but this endpoint quotes everything from the YES side.)
  - `price` string, required: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
  - `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.
  - `client_order_id` string: The original client-specified order ID to be amended
  - `updated_client_order_id` string: The new client-specified order ID after amendment
  - `expiration_time` integer: New Unix expiration timestamp in seconds. Omit to preserve the current expiry, or use 0 to remove it (good-till-canceled). A nonzero expiry must be in the future. Send the current price and total quantity for an expiry-only amendment; this preserves queue position.
  - `exchange_index` integer: Identifier for an exchange shard.

## Response `200`

Order amended successfully

- AmendOrderV2Response
  - `order_id` string, required
  - `client_order_id` string
  - `remaining_count` 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.
  - `fill_count` 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.
  - `average_fill_price` string: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
  - `average_fee_paid` string: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
  - `ts_ms` integer, required: Matching engine timestamp at which the amend was processed, as Unix epoch milliseconds.

## Other responses

- `400`: Bad request - invalid input
- `401`: Unauthorized - authentication required
- `403`: Forbidden - insufficient permissions
- `404`: Resource not found
- `500`: Internal server error
- `503`: Service temporarily unavailable

## Changes

- **2026-10-16** `bd0c218a65b7`: 1 warning
  - for the `query` request parameter `subaccount`, the min was set to `0.00`
- **2026-09-29** `dde105932d49`: 1 info
  - added the new optional request property `expiration_time`
- **2026-09-15** `75098a17c536`: 2 info
  - added the non-success response with the status `403`
  - added the non-success response with the status `503`
- **2026-08-20** `f2e3ba6d8ce6`: 1 info
  - the `exchange_index` request property default value `0` was removed
- **2026-07-31** `a07481be8bf9`: 4 warning
  - 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

[Operation history](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/changes/portfolio/events/orders/:order_id/amend/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.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/revisions/e6691cdd1915?raw)
