---
title: "Modify order"
method: PUT
path: "/orders/{order_id}"
tags: ["Orders"]
---

# Modify order

`PUT /orders/{order_id}`

Modify an existing open limit order or TPSL order by changing its
`price`, `size`, and/or `trigger_price`.

For untriggered TPSL orders, you can modify `trigger_price`,
`price` (limit orders only), and `size`.
Once a TPSL limit order triggers you can modify its `price` and `size`
just like a regular limit order,
but the `trigger_price` is no longer modifiable.

TPSL market orders execute immediately when triggered and
cannot be modified afterwards.

The modified order maintains its original order ID.

## Path parameters

- `order_id` string, required

## Request body

- RequestsModifyOrderRequest
  - `id` string, required — Order ID to be modified
  - `market` string, required — Market for which order is modified
  - `on_behalf_of_account` string — ID corresponding to the configured isolated margin account. Only for isolated margin orders
  - `price` string, required — Existing or modified price of the order
  - `side` string, required — Existing side of the order
  - `signature` string, required — Order signature in as a string "[r,s]" signed by account's paradex private key
  - `signature_timestamp` integer, required — Unix timestamp in milliseconds of order creation, used for signature verification
  - `size` string, required — Existing or modified size of the order
  - `trigger_price` string — Existing or modified trigger price of a TPSL order
  - `type` string, required — Existing type of the order

## Response `200`

OK

- ResponsesOrderResp
  - `account` string — Paradex Account
  - `avg_fill_price` string — Average fill price of the order
  - `cancel_reason` string — Reason for order cancellation if it was closed by cancel
  - `client_id` string — Client order id provided by the client at order creation
  - `created_at` integer — Order creation time
  - `flags` ResponsesOrderFlag[] — Order flags, allow flag: REDUCE_ONLY
  - `id` string — Unique order identifier generated by Paradex
  - `instruction` 'GTC' | 'POST_ONLY' | 'IOC' | 'RPI'
  - `last_updated_at` integer — Order last update time. No changes once status=CLOSED
  - `market` string — Market
  - `price` string — Order price. 0 for MARKET orders
  - `published_at` integer — Timestamp in milliseconds when order was sent to the client
  - `received_at` integer — Timestamp in milliseconds when order was received by API service
  - `remaining_size` string — Remaining size of the order
  - `request_info` ResponsesRequestInfo
    - `id` string — Request id
    - `message` string — Error message for failed requests
    - `request_type` string — Type of request (MODIFY_ORDER)
    - `status` string — Status of modify order request
  - `seq_no` integer — Unique increasing number (non-sequential) that is assigned to this order update and changes on every order update. Can be used to deduplicate multiple feeds. WebSocket and REST responses use independently generated seq_no per event.
  - `side` 'BUY' | 'SELL'
  - `size` string — Order size
  - `status` 'NEW' | 'UNTRIGGERED' | 'OPEN' | 'CLOSED'
  - `stp` 'EXPIRE_MAKER' | 'EXPIRE_TAKER' | 'EXPIRE_BOTH'
  - `timestamp` integer — Order signature timestamp
  - `trigger_price` string — Trigger price for stop order
  - `type` 'MARKET' | 'LIMIT' | 'STOP_LIMIT' | 'STOP_MARKET' | 'TAKE_PROFIT_LIMIT' | 'TAKE_PROFIT_MARKET' | 'STOP_LOSS_MARKET' | 'STOP_LOSS_LIMIT'

## Other responses

- `400` — Bad Request

---

[API](https://skmtc.net/tradeparadex/apis/paradex-rest-api-2.md) · [All operations](https://skmtc.net/tradeparadex/apis/paradex-rest-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tradeparadex/paradex-rest-api-2/versions/6a76453d754c/schema)
