Deribit · Schema

User Trade

DerivativesCryptocurrencyBitcoinEthereumOptionsFuturesPerpetualsTradingMarket DataBlock TradingWebSocketFinancial

Properties

Name Type Description
trade_id object
trade_seq object
instrument_name object
timestamp object
order_type string Order type: `"limit`, `"market"`, or `"liquidation"`
advanced string Advanced type of user order: `"usd"` or `"implv"` (only for options; omitted if not applicable)
order_id string Id of the user order (maker or taker), i.e. subscriber's order id that took part in the trade
matching_id string Always `null`
direction object Trade direction of the taker
tick_direction object
index_price number Index Price at the moment of trade
price object The price of the trade
amount number 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 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 li
liquidity string Describes what was role of users order: `"M"` when it was maker order, `"T"` when it was taker order
fee number User's fee in units of the specified `fee_currency`
fee_currency object
label object
state object
block_trade_id object
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 object
mark_price number Mark Price at the moment of trade
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)
combo_id string Optional field containing combo instrument name if the trade is a combo trade
combo_trade_id number Optional field containing combo trade identifier if the trade is a combo trade
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 array 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 wi
View JSON Schema on GitHub

JSON Schema

user_trade.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.github.io/deribit/json-schema/user_trade.json",
  "title": "User Trade",
  "properties": {
    "trade_id": {
      "$ref": "#/components/schemas/trade_id"
    },
    "trade_seq": {
      "$ref": "#/components/schemas/trade_seq"
    },
    "instrument_name": {
      "$ref": "#/components/schemas/instrument_name"
    },
    "timestamp": {
      "$ref": "#/components/schemas/trade_timestamp"
    },
    "order_type": {
      "type": "string",
      "enum": [
        "limit",
        "market",
        "liquidation"
      ],
      "description": "Order type: `\"limit`, `\"market\"`, or `\"liquidation\"`"
    },
    "advanced": {
      "type": "string",
      "enum": [
        "usd",
        "implv"
      ],
      "description": "Advanced type of user order: `\"usd\"` or `\"implv\"` (only for options; omitted if not applicable)"
    },
    "order_id": {
      "type": "string",
      "description": "Id of the user order (maker or taker), i.e. subscriber's order id that took part in the trade"
    },
    "matching_id": {
      "type": "string",
      "description": "Always `null`"
    },
    "direction": {
      "$ref": "#/components/schemas/direction",
      "description": "Trade direction of the taker"
    },
    "tick_direction": {
      "$ref": "#/components/schemas/tick_direction"
    },
    "index_price": {
      "type": "number",
      "description": "Index Price at the moment of trade"
    },
    "price": {
      "$ref": "#/components/schemas/price",
      "description": "The price of the trade"
    },
    "amount": {
      "type": "number",
      "description": "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": {
      "type": "number",
      "description": "Trade size in contract units (optional, may be absent in historical trades)"
    },
    "iv": {
      "type": "number",
      "description": "Option implied volatility for the price (Option only)"
    },
    "underlying_price": {
      "type": "number",
      "description": "Underlying price for implied volatility calculations (Options only)"
    },
    "liquidation": {
      "type": "string",
      "enum": [
        "M",
        "T",
        "MT"
      ],
      "description": "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": {
      "type": "string",
      "enum": [
        "M",
        "T"
      ],
      "description": "Describes what was role of users order: `\"M\"` when it was maker order, `\"T\"` when it was taker order"
    },
    "fee": {
      "type": "number",
      "description": "User's fee in units of the specified `fee_currency`"
    },
    "fee_currency": {
      "$ref": "#/components/schemas/currency"
    },
    "label": {
      "$ref": "#/components/schemas/label_presentation"
    },
    "state": {
      "$ref": "#/components/schemas/order_state_in_user_trade"
    },
    "block_trade_id": {
      "$ref": "#/components/schemas/block_trade_id_in_result"
    },
    "block_rfq_id": {
      "type": "integer",
      "description": "ID of the Block RFQ - when trade was part of the Block RFQ"
    },
    "block_rfq_quote_id": {
      "type": "integer",
      "description": "ID of the Block RFQ quote - when trade was part of the Block RFQ"
    },
    "reduce_only": {
      "type": "string",
      "description": "`true` if user order is reduce-only"
    },
    "post_only": {
      "type": "string",
      "description": "`true` if user order is post-only"
    },
    "mmp": {
      "type": "boolean",
      "description": "`true` if user order is MMP"
    },
    "risk_reducing": {
      "type": "boolean",
      "description": "`true` if user order is marked by the platform as a risk reducing order (can apply only to orders placed by PM users)"
    },
    "api": {
      "type": "boolean",
      "description": "`true` if user order was created with API"
    },
    "profit_loss": {
      "$ref": "#/components/schemas/profit_loss"
    },
    "mark_price": {
      "type": "number",
      "description": "Mark Price at the moment of trade"
    },
    "legs": {
      "type": "array",
      "description": "Optional field containing leg trades if trade is a combo trade (present when querying for **only** combo trades and in `combo_trades` events)"
    },
    "combo_id": {
      "type": "string",
      "description": "Optional field containing combo instrument name if the trade is a combo trade"
    },
    "combo_trade_id": {
      "type": "number",
      "description": "Optional field containing combo trade identifier if the trade is a combo trade"
    },
    "quote_set_id": {
      "type": "string",
      "description": "QuoteSet of the user order (optional, present only for orders placed with `private/mass_quote`)"
    },
    "quote_id": {
      "type": "string",
      "description": "QuoteID of the user order (optional, present only for orders placed with `private/mass_quote`)"
    },
    "trade_allocations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "integer",
            "description": "User ID to which part of the trade is allocated. For brokers the User ID is obstructed."
          },
          "amount": {
            "type": "number",
            "description": "Amount allocated to this user."
          },
          "fee": {
            "type": "number",
            "description": "Fee for the allocated part of the trade."
          },
          "client_info": {
            "type": "object",
            "properties": {
              "client_id": {
                "type": "integer",
                "description": "ID of a client; available to broker. Represents a group of users under a common name."
              },
              "client_link_id": {
                "type": "integer",
                "description": "ID assigned to a single user in a client; available to broker."
              },
              "name": {
                "type": "string",
                "description": "Name of the linked user within the client; available to broker."
              }
            },
            "description": "Optional client allocation info for brokers."
          }
        },
        "required": [
          "amount",
          "fee"
        ]
      },
      "description": "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."
    }
  },
  "required": [
    "trade_id",
    "trade_seq",
    "instrument_name",
    "timestamp",
    "order_id",
    "matching_id",
    "direction",
    "tick_direction",
    "index_price",
    "price",
    "amount",
    "fee",
    "fee_currency",
    "state",
    "mark_price"
  ],
  "type": "object"
}