Buy Order

Method: private/buy

Parameters

Parameter Type Required Description
instrumentName string true Instrument name
quantity string false It represents the requested order size. For perpetual and inverse futures the amount is in USD units. For options and linear futures and it is the underlying base currency coin
contracts string false It represents the requested order size in contract units and can be passed instead of amount. The contracts is a mandatory parameter if amount parameter is missing. If both contracts and amount parameter are passed they must match each other otherwise error is returned.
type string false The order type, default: "limit". Allowed values: "limit", "stop_limit", "take_limit", "market", "stop_market", "take_market", "market_limit", "trailing_stop"
label string false user defined label for the order (maximum 64 characters)
price string false The order price in base currency (Only for limit and stop_limit orders). When adding an order with advanced=usd, the field price should be the option price value in USD. When adding an order with advanced=implv, the field price should be a value of implied volatility in percentages. For example, price=100, means implied volatility of 100%
timeInforce string false Specifies how long the order remains in effect. Default "good_til_cancelled". Allowed values: "good_til_cancelled" - unfilled order remains in order book until cancelled; "good_til_day" - unfilled order remains in order book till the end of the trading session; "fill_or_kill" - execute a transaction immediately and completely or not at all; "immediate_or_cancel" - execute a transaction immediately, and any portion of the order that cannot be immediately filled is cancelled
displayAmount string false Initial display amount for iceberg order. Has to be at least 100 times minimum amount for instrument and ratio of hidden part vs visible part has to be less than 100 as well.
postOnly boolean false If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below the spread. Only valid in combination with time_in_force="good_til_cancelled"
rejectPostOnly boolean false If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected. Only valid in combination with "post_only" set to true
reduceOnly boolean false If true, the order is considered reduce-only which is intended to only reduce a current position
triggerPrice string false Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)
triggerOffset string false The maximum deviation from the price peak beyond which the order will be triggered
trigger string false Defines the trigger type. Required for "Stop-Loss", "Take-Profit" and "Trailing" trigger orders
advanced string false Advanced option order type. (Only for options. Advanced USD orders are not supported for linear options.)
mmp boolean false Order MMP flag, only for order_type 'limit'
validUntil integer false Timestamp, when provided server will start processing request in Matching Engine only before given timestamp, in other cases timed_out error will be responded. Remember that the given timestamp should be consistent with the server's time, use /public/time method to obtain current server time
linkedOrderType string false The type of the linked order. Allowed values: "one_triggers_other" - Execution of primary order triggers the placement of one or more secondary orders; "one_cancels_other" - The execution of one order in a pair automatically cancels the other, typically used to set a stop-loss and take-profit simultaneously; "one_triggers_one_cancels_other" - The execution of a primary order triggers two secondary orders (a stop-loss and take-profit pair), where the execution of one secondary order cancels the other.
triggerFillCondition string false The fill condition of the linked order (Only for linked order types), default: first_hit. Allowed values: "first_hit" - any execution of the primary order will fully cancel/place all secondary orders; "complete_fill" - a complete execution (meaning the primary order no longer exists) will cancel/place the secondary orders; "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
otocoConfig array of objects false List of trades to create or cancel when this order is filled

otocoConfig Object

Parameter Type Required Description
quantity string false It represents the requested trade size. For perpetual and inverse futures the amount is in USD units. For options and linear futures and it is the underlying base currency coin
side string true Direction of trade from the maker perspective
type string false The order type. Allowed values: "limit", "stop_limit", "take_limit", "market", "stop_market", "take_market", "market_limit", "trailing_stop"
label string false user defined label for the order (maximum 64 characters)
price string false The order price in base currency (Only for limit and stop_limit orders). When adding an order with advanced=usd, the field price should be the option price value in USD. When adding an order with advanced=implv, the field price should be a value of implied volatility in percentages. For example, price=100, means implied volatility of 100%
reduceOnly boolean false If true, the order is considered reduce-only which is intended to only reduce a current position
timeInforce string false Specifies how long the order remains in effect. Default "good_til_cancelled". Allowed values: "good_til_cancelled", "good_til_day", "fill_or_kill", "immediate_or_cancel"
postOnly boolean false If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below the spread. Only valid in combination with time_in_force="good_til_cancelled"
rejectPostOnly boolean false If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected. Only valid in combination with "post_only" set to true
triggerPrice string false Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)
triggerOffset string false The maximum deviation from the price peak beyond which the order will be triggered
trigger string false Defines the trigger type. Required for "Stop-Loss", "Take-Profit" and "Trailing" trigger orders

Request Example

{
  "rid": 20002,
  "method": "private/buy",
  "params": {
    "instrumentName": "BTC-PERPETUAL",
    "quantity": "10",
    "contracts": null,
    "type": "limit",
    "label": "test-limit-buy",
    "price": "50000",
    "timeInforce": "good_til_cancelled",
    "displayAmount": null,
    "postOnly": null,
    "rejectPostOnly": null,
    "reduceOnly": null,
    "triggerPrice": null,
    "triggerOffset": null,
    "trigger": null,
    "advanced": null,
    "mmp": null,
    "validUntil": null,
    "linkedOrderType": null,
    "triggerFillCondition": null,
    "otocoConfig": null
  }
}

Response

order Object

Name Type Description
quote boolean if order is a quote. Present only if true.
triggered boolean Whether the trigger order has been triggered
mobile boolean optional field with value true added only when created with Mobile Application
implv string Implied volatility in percent. (Only if advanced="implv")
refreshAmount string 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
usd string Option price in USD (Only if advanced="usd")
otoOrderIds array of string The Ids of the orders that will be triggered if the order is filled
api boolean true if created with API
averagePrice string Average fill price of the order
advanced string advanced type: "usd" or "implv" (Only for options; field is omitted if not applicable)
orderId string Unique order identifier
postOnly boolean true for post-only orders only
filledQuantity string 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.
trigger string Trigger type (only for trigger orders). Allowed values: "index_price", "mark_price", "last_price".
triggerOrderId string Id of the trigger order that created the order (Only for orders that were created by triggered orders)
side string Direction: buy, or sell
contracts string It represents the order size in contract units. (Optional, may be absent in historical data)
isSecondaryOto boolean true if the order is an order that can be triggered by another order, otherwise not present.
replaced boolean true if the order was edited (by user or - in case of advanced options orders - by pricing engine), otherwise false.
mmpGroup string Name of the MMP group supplied in the private/mass_quote request. Only present for quote orders.
mmp boolean true if the order is a MMP order, otherwise false
lastUpdatedAt long The timestamp (milliseconds since the Unix epoch)
createdAt long The timestamp (milliseconds since the Unix epoch)
cancelReason string Enumerated reason behind cancel
mmpCancelled boolean true if order was cancelled by mmp trigger (optional)
quoteId string The same QuoteID as supplied in the private/mass_quote request. Only present for quote orders
orderState string Order state: "open", "filled", "rejected", "cancelled", "untriggered"
isRebalance boolean Optional (only for spot). true if order was automatically created during cross-collateral balance restoration
rejectPostOnly boolean If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected. Only valid in combination with "post_only" set to true
label string User defined label
isLiquidation boolean Optional (not added for spot). true if order was automatically created during liquidation
price string Price in base currency or "market_price" in case of open trigger market orders
web boolean true if created via Deribit frontend (optional)
timeInforce string Order time in force: "good_til_cancelled", "good_til_day", "fill_or_kill" or "immediate_or_cancel"
triggerReferencePrice string The price of the given trigger at the time when the order was placed (Only for trailing trigger orders)
displayAmount string The actual display amount of iceberg order. Absent for other types of orders.
orderType string Order type: "limit", "market", "stop_limit", "stop_market"
isPrimaryOtoco boolean true if the order is an order that can trigger an OCO pair, otherwise not present.
originalOrderType string Original order type. Optional field
blockTrade boolean true if order made from block_trade trade, added only in that case.
triggerPrice string Trigger price (Only for future trigger orders)
ocoRef string Unique reference that identifies a one_cancels_others (OCO) pair.
triggerOffset string The maximum deviation from the price peak beyond which the order will be triggered (Only for trailing trigger orders)
quoteSetId string Identifier of the QuoteSet supplied in the private/mass_quote request. Only present for quote orders.
autoReplaced boolean Options, advanced orders only - true if last modification of the order was performed by the pricing engine, otherwise false
reduceOnly boolean Optional (not added for spot). 'true for reduce-only orders only'
quantity string It represents the requested order size. For perpetual and inverse futures the amount is in USD units. For options and linear futures and it is the underlying base currency coin.
riskReducing 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
instrumentName string Unique instrument identifier
triggerFillCondition string The fill condition of the linked order (Only for linked order types), default: first_hit.
primaryOrderId string Unique order identifier

trades Array

Name Type Description
tradeId string Unique (per currency) trade identifier
tickDirection integer Direction of the "tick" (0 = Plus Tick, 1 = Zero-Plus Tick, 2 = Minus Tick, 3 = Zero-Minus Tick).
feeCurrency string Currency, i.e "BTC", "ETH", "USDC"
api boolean true if user order was created with API
advanced string Advanced type of user order: "usd" or "implv" (only for options; omitted if not applicable)
orderId string Id of the user order (maker or taker), i.e. subscriber's order id that took part in the trade
liquidity string Describes what was role of users order: "M" when it was maker order, "T" when it was taker order
postOnly boolean true if user order is post-only
side string Direction: buy, or sell
contracts string Trade size in contract units (optional, may be absent in historical trades)
mmp boolean true if user order is MMP
indexPrice string Index Price at the moment of trade
label string User defined label (presented only when previously set for order by user)
blockTradeId string Block trade id - when trade was part of a block trade
price string Price in base currency
comboId string Optional field containing combo instrument name if the trade is a combo trade
matchingId string Always null
orderType string Order type: "limit", "market", or "liquidation"
tradeAllocations array of object List of allocations for Block RFQ pre-allocation
profitLoss string Profit and loss in base currency.
timestamp long The timestamp of the trade (milliseconds since the UNIX epoch)
iv string Option implied volatility for the price (Option only)
state string Order state: "open", "filled", "rejected", "cancelled", "untriggered" or "archive" (if order was archived)
underlyingPrice string Underlying price for implied volatility calculations (Options only)
blockRfqQuoteId string ID of the Block RFQ quote - when trade was part of the Block RFQ
quoteSetId string QuoteSet of the user order (optional, present only for orders placed with private/mass_quote)
markPrice string Mark Price at the moment of trade
blockRfqId string ID of the Block RFQ - when trade was part of the Block RFQ
comboTradeId string Optional field containing combo trade identifier if the trade is a combo trade
reduceOnly boolean true if user order is reduce-only
quantity string Trade amount. For perpetual and inverse futures the amount is in USD units. For options and linear futures and it is the underlying base currency coin
liquidation string 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
tradeSeq integer The sequence number of the trade within instrument
riskReducing boolean true if user order is marked by the platform as a risk reducing order (can apply only to orders placed by PM users)
instrumentName string Unique instrument identifier
legs array Optional field containing leg trades if trade is a combo trade (present when querying for only combo trades and in combo_trades events)

Response Example

{
  "rid": 20002,
  "result": {
    "order": {
      "api": true,
      "averagePrice": "0.0",
      "orderId": "66538663841",
      "postOnly": false,
      "filledQuantity": "0.0",
      "side": "buy",
      "contracts": "1.0",
      "replaced": false,
      "mmp": false,
      "lastUpdatedAt": 1760338245356,
      "createdAt": 1760338245356,
      "orderState": "Open",
      "label": "test-limit-buy",
      "isLiquidation": false,
      "price": "50000",
      "web": false,
      "timeInForce": "good_til_cancelled",
      "orderType": "limit",
      "reduceOnly": false,
      "quantity": "10.0",
      "riskReducing": false,
      "instrumentName": "BTC-PERPETUAL"
    },
    "trades": []
  }
}

results matching ""

    No results matching ""