---
title: "GET /private/edit_by_label"
method: GET
path: "/private/edit_by_label"
tags: ["Trading", "Matching Engine", "Private"]
---

# GET /private/edit_by_label

`GET /private/edit_by_label`

Modifies an order identified by its label. This method works only when there is exactly one open order with the specified label.

You can change the order's price, amount, and/or other properties such as time-in-force, post-only, reduce-only, trigger conditions, or advanced order type. Changes take effect immediately.

**Scope:** `trade:read_write`

[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fedit_by_label)

## Query parameters

- `label` string
- `instrument_name` string, required — Unique instrument identifier
- `amount` number
- `contracts` number
- `price` number
- `post_only` boolean
- `reduce_only` boolean
- `reject_post_only` boolean
- `advanced` 'usd' | 'implv' — advanced type: `"usd"` or `"implv"` (Only for options; field is omitted if not applicable).
- `trigger_price` number
- `mmp` boolean
- `valid_until` integer

## Response `200`

Success response

- PrivateEditResponse
  - `jsonrpc` '2.0', required — The JSON-RPC version (2.0)
  - `id` integer — The id that was sent in the request
  - `result` object, required
    - `order` Order, required
      - `order_id` string, required — Unique order identifier
      - `order_state` 'open' | 'filled' | 'rejected' | 'cancelled' | 'untriggered' | 'triggered', required — Order state: `"open"`, `"filled"`, `"rejected"`, `"cancelled"`, `"untriggered"`
      - `order_type` 'market' | 'limit' | 'stop_market' | 'stop_limit' | 'take_market' | 'take_limit' | 'trailing_stop', required — Order type: `"limit"`, `"market"`, `"stop_limit"`, `"stop_market"`, `"take_limit"`, `"take_market"`, `"trailing_stop"`
      - `original_order_type` 'market' | 'market_limit' — Original API order type when an order is represented internally as a limit order. For example, Starbase market orders use `"limit"` as `order_type` with `"market"` in this optional field.
      - `time_in_force` 'good_til_cancelled' | 'good_til_day' | 'fill_or_kill' | 'immediate_or_cancel', required — Order time in force: `"good_til_cancelled"`, `"good_til_day"`, `"fill_or_kill"` or `"immediate_or_cancel"`
      - `is_rebalance` boolean — Optional (only for spot). `true` if order was automatically created during cross-collateral balance restoration
      - `is_liquidation` boolean — Optional (not added for spot). `true` if order was automatically created during liquidation
      - `instrument_name` string, required — Unique instrument identifier
      - `creation_timestamp` integer, required — The timestamp (milliseconds since the Unix epoch)
      - `last_update_timestamp` integer, required — The timestamp (milliseconds since the Unix epoch)
      - `starbase_last_update_timestamp` integer — The Starbase causal timestamp (nanoseconds since the Unix epoch) of the last book update that affected this order. Present only for orders placed in Starbase, including combo leg order updates; not always available for direct access orders
      - `starbase_client_order_id` string — Client order id of an order submitted directly to [Starbase](https://docs.deribit.com/starbase/overview) via direct access; not returned for orders placed through the Deribit API (combo legs inherit the parent combo order's client order id)
      - `direction` 'buy' | 'sell', required — Direction: `buy`, or `sell`
      - `price` union, required — Price in base currency or "market_price" in case of open trigger market orders
        - number
        - 'market_price'
      - `label` string, required — User defined label (up to 64 characters)
      - `post_only` boolean, required — `true` for post-only orders only
      - `reject_post_only` boolean — `true` if order has `reject_post_only` flag (field is present only when `post_only` is `true`)
      - `reduce_only` boolean — Optional (not added for spot). '`true` for reduce-only orders only'
      - `api` boolean, required — `true` if created with API
      - `web` boolean — `true` if created via Deribit frontend (optional)
      - `mobile` boolean — Optional field with value `true` added only when created with Mobile Application
      - `refresh_amount` number — The initial display amount of iceberg order. Iceberg order display amount will be refreshed to that value after match consuming actual display amount. Absent for other types of orders
      - `display_amount` number — The actual display amount of iceberg order. Absent for other types of orders.
      - `amount` number — It represents the requested order size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin.
      - `contracts` number — It represents the order size in contract units. (Optional, may be absent in historical data).
      - `filled_amount` number — Filled amount of the order. For perpetual and futures the filled_amount is in USD units, for options - in units or corresponding cryptocurrency contracts, e.g., BTC or ETH.
      - `average_price` number — Average fill price of the order
      - `advanced` 'usd' | 'implv' — advanced type: `"usd"` or `"implv"` (Only for options; field is omitted if not applicable).
      - `implv` number — Implied volatility in percent. (Only if `advanced="implv"`)
      - `usd` number — Option price in USD (Only if `advanced="usd"`)
      - `triggered` boolean — Whether the trigger order has been triggered
      - `trigger` 'index_price' | 'mark_price' | 'last_price' — Trigger type (only for trigger orders). Allowed values: `"index_price"`, `"mark_price"`, `"last_price"`.
      - `trigger_price` number — Trigger price (Only for future trigger orders)
      - `trigger_offset` number — The maximum deviation from the price peak beyond which the order will be triggered (Only for trailing trigger orders)
      - `trigger_reference_price` number — The price of the given trigger at the time when the order was placed (Only for trailing trigger orders)
      - `block_trade` boolean — `true` if order made from block_trade trade, added only in that case.
      - `mmp` boolean — `true` if the order is a MMP order, otherwise `false`.
      - `risk_reducing` boolean — `true` if the order is marked by the platform as a risk reducing order (can apply only to orders placed by PM users), otherwise `false`.
      - `replaced` boolean — `true` if the order was edited (by user or - in case of advanced options orders - by pricing engine), otherwise `false`.
      - `auto_replaced` boolean — Options, advanced orders only - `true` if last modification of the order was performed by the pricing engine, otherwise `false`.
      - `quote` boolean — If order is a quote. Present only if true.
      - `mmp_group` string — Name of the MMP group supplied in the `private/mass_quote` request. Only present for quote orders.
      - `quote_set_id` string — Identifier of the QuoteSet supplied in the `private/mass_quote` request. Only present for quote orders.
      - `quote_id` string — The same QuoteID as supplied in the `private/mass_quote` request. Only present for quote orders.
      - `trigger_order_id` string — Id of the trigger order that created the order (Only for orders that were created by triggered orders).
      - `combo_order_id` string — Id of the combo order that created this order (only present for orders that were created as legs of a combo order).
      - `starbase_order_id` integer — Raw Starbase order id, in Starbase's own (non currency-prefixed) id namespace. Only present for orders placed in Starbase. Combo leg orders expose the parent combo order's Starbase order id.
      - `app_name` string — The name of the application that placed the order on behalf of the user (optional).
      - `mmp_cancelled` boolean — `true` if order was cancelled by mmp trigger (optional)
      - `cancel_reason` 'user_request' | 'autoliquidation' | 'cancel_on_disconnect' | 'risk_mitigation' | 'pme_risk_reduction' | 'pme_account_locked' | 'position_locked' | 'mmp_trigger' | 'mmp_config_curtailment' | 'edit_post_only_reject' | 'oco_other_closed' | 'oto_primary_closed' | 'settlement' — Enumerated reason behind cancel `"user_request"`, `"autoliquidation"`, `"cancel_on_disconnect"`, `"risk_mitigation"`, `"pme_risk_reduction"` (portfolio margining risk reduction), `"pme_account_locked"` (portfolio margining account locked per currency), `"position_locked"`, `"mmp_trigger"` (market maker protection), `"mmp_config_curtailment"` (market maker configured quantity decreased), `"edit_post_only_reject"` (cancelled on edit because of `reject_post_only` setting), `"oco_other_closed"` (the oco order linked to this order was closed), `"oto_primary_closed"` (the oto primary order that was going to trigger this order was cancelled), `"settlement"` (closed because of a settlement event, e.g. good-til-day orders are cancelled when an instrument enters the daily settlement). Note: orders cancelled because an instrument expired (delivery) currently do not include a `cancel_reason` field.
      - `oto_order_ids` OrderId[] — The Ids of the orders that will be triggered if the order is filled
      - `trigger_fill_condition` 'first_hit' | 'complete_fill' | 'incremental' — <p>The fill condition of the linked order (Only for linked order types), default: `first_hit`.</p> <ul> <li>`"first_hit"` - any execution of the primary order will fully cancel/place all secondary orders.</li> <li>`"complete_fill"` - a complete execution (meaning the primary order no longer exists) will cancel/place the secondary orders.</li> <li>`"incremental"` - any fill of the primary order will cause proportional partial cancellation/placement of the secondary order. The amount that will be subtracted/added to the secondary order will be rounded down to the contract size.</li> </ul>
      - `oco_ref` string — Unique reference that identifies a one_cancels_others (OCO) pair.
      - `primary_order_id` string — Unique order identifier
      - `is_secondary_oto` boolean — `true` if the order is an order that can be triggered by another order, otherwise not present.
      - `is_primary_otoco` boolean — `true` if the order is an order that can trigger an OCO pair, otherwise not present.
    - `trades` UserTrade[], required
      - `trade_id` string, required — Unique (per currency) trade identifier
      - `trade_seq` integer, required — The sequence number of the trade within instrument
      - `instrument_name` string, required — Unique instrument identifier
      - `timestamp` integer, required — The timestamp of the trade (milliseconds since the UNIX epoch)
      - `starbase_timestamp` integer — The Starbase causal timestamp of the trade (nanoseconds since the Unix epoch)
      - `starbase_order_id` integer — Raw Starbase order id of the user's order, in Starbase's own (non currency-prefixed) id namespace (present only for trades matched in Starbase)
      - `starbase_client_order_id` string — Client order id of the user's own order (maker or taker side) submitted directly to [Starbase](https://docs.deribit.com/starbase/overview) via direct access; not returned for orders placed through the Deribit API; for self-trades this is the taker order's client order id
      - `order_type` 'limit' | 'market' | 'liquidation' — Order type: `"limit`, `"market"`, or `"liquidation"`
      - `original_order_type` 'market' | 'market_limit' — Original API order type when an order is represented internally as a limit order. For example, Starbase market orders use `"limit"` as `order_type` with `"market"` in this optional field.
      - `advanced` 'usd' | 'implv' — Advanced type of user order: `"usd"` or `"implv"` (only for options; omitted if not applicable)
      - `order_id` string, required — Id of the user order (maker or taker), i.e. subscriber's order id that took part in the trade
      - `matching_id` string, required — Always `null`
      - `direction` 'buy' | 'sell', required — Direction: `buy`, or `sell`
      - `tick_direction` 0 | 1 | 2 | 3, required — Direction of the "tick" (`0` = Plus Tick, `1` = Zero-Plus Tick, `2` = Minus Tick, `3` = Zero-Minus Tick).
      - `index_price` number, required — Index Price at the moment of trade
      - `price` number, required — Price in base currency
      - `amount` number, required — Trade amount. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin.
      - `contracts` number — Trade size in contract units (optional, may be absent in historical trades)
      - `iv` number — Option implied volatility for the price (Option only)
      - `underlying_price` number — Underlying price for implied volatility calculations (Options only)
      - `liquidation` 'M' | 'T' | 'MT' — Optional field (only for trades caused by liquidation): `"M"` when maker side of trade was under liquidation, `"T"` when taker side was under liquidation, `"MT"` when both sides of trade were under liquidation
      - `liquidity` 'M' | 'T' — Describes what was role of users order: `"M"` when it was maker order, `"T"` when it was taker order
      - `fee` number, required — User's fee in units of the specified `fee_currency`
      - `fee_currency` 'BTC' | 'ETH' | 'USDC' | 'USDT' | 'EURR', required — Currency, i.e `"BTC"`, `"ETH"`, `"USDC"`
      - `label` string — User defined label (presented only when previously set for order by user)
      - `state` 'open' | 'filled' | 'rejected' | 'cancelled' | 'untriggered' | 'archive', required — Order state: `"open"`, `"filled"`, `"rejected"`, `"cancelled"`, `"untriggered"` or `"archive"` (if order was archived)
      - `block_trade_id` string — Block trade id - when trade was part of a block trade
      - `block_trade_leg_count` integer — Block trade leg count - when trade was part of a block trade
      - `block_rfq_id` integer — ID of the Block RFQ - when trade was part of the Block RFQ
      - `block_rfq_quote_id` integer — ID of the Block RFQ quote - when trade was part of the Block RFQ
      - `reduce_only` string — `true` if user order is reduce-only
      - `post_only` string — `true` if user order is post-only
      - `mmp` boolean — `true` if user order is MMP
      - `risk_reducing` boolean — `true` if user order is marked by the platform as a risk reducing order (can apply only to orders placed by PM users)
      - `api` boolean — `true` if user order was created with API
      - `profit_loss` number — Profit and loss in base currency.
      - `mark_price` number, required — Mark Price at the moment of trade
      - `legs` unknown[] — Optional field containing leg trades if trade is a combo trade (present when querying for **only** combo trades and in `combo_trades` events). Each leg trade has the same fields as a top-level user trade, including `starbase_match_id`, `starbase_order_id`, and `starbase_timestamp` when matched in Starbase, and `starbase_client_order_id` for orders submitted via [Starbase](https://docs.deribit.com/starbase/overview) direct access.
        - unknown
      - `combo_id` string — Optional field containing combo instrument name if the trade is a combo trade
      - `combo_trade_id` string — Optional field containing combo trade identifier if the trade is a combo trade
      - `starbase_match_id` integer — Optional field containing the Starbase match identifier (present only for trades matched via Starbase)
      - `quote_set_id` string — QuoteSet of the user order (optional, present only for orders placed with `private/mass_quote`)
      - `quote_id` string — QuoteID of the user order (optional, present only for orders placed with `private/mass_quote`)
      - `trade_allocations` object[] — List of allocations for Block RFQ pre-allocation. Each allocation specifies `user_id`, `amount`, and `fee` for the allocated part of the trade. For broker client allocations, a `client_info` object will be included.
        - `user_id` integer — User ID to which part of the trade is allocated. For brokers the User ID is obstructed.
        - `amount` number, required — Amount allocated to this user.
        - `fee` number, required — Fee for the allocated part of the trade.
        - `client_info` object — Optional client allocation info for brokers.
          - `client_id` integer — ID of a client; available to broker. Represents a group of users under a common name.
          - `client_link_id` integer — ID assigned to a single user in a client; available to broker.
          - `name` string — Name of the linked user within the client; available to broker.

---

[API](https://skmtc.net/deribit/apis/deribit-api.md) · [All operations](https://skmtc.net/deribit/apis/deribit-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/deribit/deribit-api/versions/78a0783dbfcc/schema)
