Skip to main content
cURL
curl --request GET \
  --url https://test.deribit.com/api/v2/private/sell \
  --header 'Content-Type: application/json' \
  --data '
{
  "jsonrpc": "2.0",
  "id": 2148,
  "method": "private/sell",
  "params": {
    "instrument_name": "ETH-PERPETUAL",
    "amount": 123,
    "type": "stop_limit",
    "price": 145.61,
    "trigger_price": 145,
    "trigger": "last_price"
  }
}
'
{
  "jsonrpc": "2.0",
  "id": 6130,
  "result": {
    "trades": [
      {
        "trade_seq": 1966068,
        "trade_id": "ETH-2696097",
        "timestamp": 1590486335742,
        "tick_direction": 0,
        "state": "filled",
        "reduce_only": true,
        "price": 202.8,
        "post_only": false,
        "order_type": "limit",
        "order_id": "ETH-584864807",
        "matching_id": null,
        "mark_price": 202.79,
        "liquidity": "T",
        "instrument_name": "ETH-PERPETUAL",
        "index_price": 202.86,
        "fee_currency": "ETH",
        "fee": 0.00007766,
        "direction": "sell",
        "amount": 21
      }
    ],
    "order": {
      "web": false,
      "time_in_force": "good_til_cancelled",
      "replaced": false,
      "reduce_only": true,
      "price": 198.75,
      "post_only": false,
      "order_type": "limit",
      "order_state": "filled",
      "order_id": "ETH-584864807",
      "max_show": 21,
      "last_update_timestamp": 1590486335742,
      "label": "",
      "is_rebalance": false,
      "is_liquidation": false,
      "instrument_name": "ETH-PERPETUAL",
      "filled_amount": 21,
      "direction": "sell",
      "creation_timestamp": 1590486335742,
      "average_price": 202.8,
      "api": true,
      "amount": 21
    }
  }
}

Query Parameters

instrument_name
string
required

Instrument name Unique instrument identifier

Example:

"BTC-PERPETUAL"

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. The amount is a mandatory parameter if contracts parameter is missing. If both contracts and amount parameter are passed they must match each other otherwise error is returned.

contracts
number

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
enum<string>

The order type, default: "limit"

Available options:
limit,
stop_limit,
take_limit,
market,
stop_market,
take_market,
market_limit,
trailing_stop
label
string

user defined label for the order (maximum 64 characters)

price
number

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%

time_in_force
enum<string>
default:good_til_cancelled

Specifies how long the order remains in effect. Default "good_til_cancelled"

  • "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
Available options:
good_til_cancelled,
good_til_day,
fill_or_kill,
immediate_or_cancel
display_amount
number
default:1

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.

post_only
boolean
default:true

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 above the spread.

Only valid in combination with time_in_force="good_til_cancelled"

reject_post_only
boolean
default: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

reduce_only
boolean
default:false

If true, the order is considered reduce-only which is intended to only reduce a current position

trigger_price
number

Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)

trigger_offset
number

The maximum deviation from the price peak beyond which the order will be triggered

trigger
enum<string>

Defines the trigger type. Required for "Stop-Loss", "Take-Profit" and "Trailing" trigger orders Trigger type (only for trigger orders). Allowed values: "index_price", "mark_price", "last_price".

Available options:
index_price,
mark_price,
last_price
advanced
enum<string>

Advanced option order type. (Only for options. Advanced USD orders are not supported for linear options.) advanced type: "usd" or "implv" (Only for options; field is omitted if not applicable).

Available options:
usd,
implv
mmp
boolean
default:false

Order MMP flag, only for order_type 'limit'

valid_until
integer

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.

linked_order_type
enum<string>

The type of the linked order.

  • "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.
Available options:
one_triggers_other,
one_cancels_other,
one_triggers_one_cancels_other
trigger_fill_condition
enum<string>
default:first_hit

The fill condition of the linked order (Only for linked order types), default: first_hit.

  • "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.
Available options:
first_hit,
complete_fill,
incremental
otoco_config
string

List of trades to create or cancel when this order is filled. JSON string containing array of objects

Response

200 - application/json

Success response

jsonrpc
enum<string>
required

The JSON-RPC version (2.0)

Available options:
2.0
result
object
required
id
integer

The id that was sent in the request