---
swagger: "2.0"
info:
  description: "## REST API for the BitMEX Trading Platform\n\n[View Changelog](/app/apiChangelog)\n\
    \n\n\n#### Getting Started\n\n\n##### Fetching Data\n\nAll REST endpoints are\
    \ documented below. You can try out any query right from this interface.\n\nMost\
    \ table queries accept `count`, `start`, and `reverse` params. Set `reverse=true`\
    \ to get rows newest-first.\n\nAdditional documentation regarding filters, timestamps,\
    \ and authentication\nis available in [the main API documentation](https://www.bitmex.com/app/restAPI).\n\
    \n*All* table data is available via the [Websocket](/app/wsAPI). We highly recommend\
    \ using the socket if you want\nto have the quickest possible data without being\
    \ subject to ratelimits.\n\n##### Return Types\n\nBy default, all data is returned\
    \ as JSON. Send `?_format=csv` to get CSV data or `?_format=xml` to get XML data.\n\
    \n##### Trade Data Queries\n\n*This is only a small subset of what is available,\
    \ to get you started.*\n\nFill in the parameters and click the `Try it out!` button\
    \ to try any of these queries.\n\n* [Pricing Data](#!/Quote/Quote_get)\n\n* [Trade\
    \ Data](#!/Trade/Trade_get)\n\n* [OrderBook Data](#!/OrderBook/OrderBook_getL2)\n\
    \n* [Settlement Data](#!/Settlement/Settlement_get)\n\n* [Exchange Statistics](#!/Stats/Stats_history)\n\
    \nEvery function of the BitMEX.com platform is exposed here and documented. Many\
    \ more functions are available.\n\n##### Swagger Specification\n\n[⇩ Download\
    \ Swagger JSON](swagger.json)\n\n\n\n## All API Endpoints\n\nClick to expand a\
    \ section.\n"
  version: "1.2.0"
  title: "BitMEX API"
  termsOfService: "https://www.bitmex.com/app/terms"
  contact:
    email: "support@bitmex.com"
basePath: "/api/v1"
tags:
- name: "Announcement"
  description: "Public Announcements"
- name: "APIKey"
  description: "Persistent API Keys for Developers"
- name: "Chat"
  description: "Trollbox Data"
- name: "Execution"
  description: "Raw Order and Balance Data"
- name: "Funding"
  description: "Swap Funding History"
- name: "Instrument"
  description: "Tradeable Contracts, Indices, and History"
- name: "Insurance"
  description: "Insurance Fund Data"
- name: "Leaderboard"
  description: "Information on Top Users"
- name: "Liquidation"
  description: "Active Liquidations"
- name: "Notification"
  description: "Account Notifications"
- name: "Order"
  description: "Placement, Cancellation, Amending, and History"
- name: "OrderBook"
  description: "Level 2 Book Data"
- name: "Position"
  description: "Summary of Open and Closed Positions"
- name: "Quote"
  description: "Best Bid/Offer Snapshots & Historical Bins"
- name: "Schema"
  description: "Dynamic Schemata for Developers"
- name: "Settlement"
  description: "Historical Settlement Data"
- name: "Stats"
  description: "Exchange Statistics"
- name: "Trade"
  description: "Individual & Bucketed Trades"
- name: "User"
  description: "Account Operations"
consumes:
- "application/json"
- "application/x-www-form-urlencoded"
produces:
- "application/json"
- "application/xml"
- "text/xml"
- "application/javascript"
- "text/javascript"
security:
- apiKey: []
  apiSignature: []
  apiNonce: []
paths:
  /announcement:
    get:
      tags:
      - "Announcement"
      summary: "Get site announcements."
      operationId: "Announcement.get"
      parameters:
      - name: "columns"
        in: "query"
        description: "Array of column names to fetch. If omitted, will return all\
          \ columns."
        required: false
        type: "string"
        format: "JSON"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Announcement"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /announcement/urgent:
    get:
      tags:
      - "Announcement"
      summary: "Get urgent (banner) announcements."
      operationId: "Announcement.getUrgent"
      parameters: []
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Announcement"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /apiKey:
    get:
      tags:
      - "APIKey"
      summary: "Get your API Keys."
      operationId: "APIKey.get"
      parameters:
      - name: "reverse"
        in: "query"
        description: "If true, will sort results newest first."
        required: false
        type: "boolean"
        default: false
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/APIKey"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
    post:
      tags:
      - "APIKey"
      summary: "Create a new API Key."
      description: "API Keys can also be created via [this Python script](https://github.com/BitMEX/market-maker/blob/master/generate-api-key.py)\
        \ See the [API Key Documentation](/app/apiKeys) for more information on capabilities."
      operationId: "APIKey.new"
      parameters:
      - name: "name"
        in: "formData"
        description: "Key name. This name is for reference only."
        required: false
        type: "string"
      - name: "cidr"
        in: "formData"
        description: "CIDR block to restrict this key to. To restrict to a single\
          \ address, append \"/32\", e.g. 207.39.29.22/32. Leave blank or set to 0.0.0.0/0\
          \ to allow all IPs. Only one block may be set. <a href=\"http://software77.net/cidr-101.html\"\
          >More on CIDR blocks</a>"
        required: false
        type: "string"
      - name: "permissions"
        in: "formData"
        description: "Key Permissions. All keys can read margin and position data.\
          \ Additional permissions must be added. Available: [\"order\", \"orderCancel\"\
          , \"withdraw\"]."
        required: false
        type: "string"
        format: "JSON"
      - name: "enabled"
        in: "formData"
        description: "Set to true to enable this key on creation. Otherwise, it must\
          \ be explicitly enabled via /apiKey/enable."
        required: false
        type: "boolean"
        default: false
      - name: "token"
        in: "formData"
        description: "OTP Token (YubiKey, Google Authenticator)"
        required: false
        type: "string"
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/APIKey"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
    delete:
      tags:
      - "APIKey"
      summary: "Remove an API Key."
      operationId: "APIKey.remove"
      parameters:
      - name: "apiKeyID"
        in: "formData"
        description: "API Key ID (public component)."
        required: true
        type: "string"
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/inline_response_200"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /apiKey/disable:
    post:
      tags:
      - "APIKey"
      summary: "Disable an API Key."
      operationId: "APIKey.disable"
      parameters:
      - name: "apiKeyID"
        in: "formData"
        description: "API Key ID (public component)."
        required: true
        type: "string"
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/APIKey"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /apiKey/enable:
    post:
      tags:
      - "APIKey"
      summary: "Enable an API Key."
      operationId: "APIKey.enable"
      parameters:
      - name: "apiKeyID"
        in: "formData"
        description: "API Key ID (public component)."
        required: true
        type: "string"
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/APIKey"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /chat:
    get:
      tags:
      - "Chat"
      summary: "Get chat messages."
      operationId: "Chat.get"
      parameters:
      - name: "count"
        in: "query"
        description: "Number of results to fetch."
        required: false
        type: "number"
        default: 100
        format: "int32"
      - name: "start"
        in: "query"
        description: "Starting ID for results."
        required: false
        type: "number"
        default: 0
        format: "int32"
      - name: "reverse"
        in: "query"
        description: "If true, will sort results newest first."
        required: false
        type: "boolean"
        default: true
      - name: "channelID"
        in: "query"
        description: "Channel id. GET /chat/channels for ids. Leave blank for all."
        required: false
        type: "number"
        format: "double"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Chat"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
    post:
      tags:
      - "Chat"
      summary: "Send a chat message."
      operationId: "Chat.new"
      parameters:
      - name: "message"
        in: "formData"
        required: true
        type: "string"
      - name: "channelID"
        in: "formData"
        description: "Channel to post to. Default 1 (English)."
        required: false
        type: "number"
        default: 1
        format: "double"
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/Chat"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /chat/channels:
    get:
      tags:
      - "Chat"
      summary: "Get available channels."
      operationId: "Chat.getChannels"
      parameters: []
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/ChatChannels"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /chat/connected:
    get:
      tags:
      - "Chat"
      summary: "Get connected users."
      description: "Returns an array with browser users in the first position and\
        \ API users (bots) in the second position."
      operationId: "Chat.getConnected"
      parameters: []
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/ConnectedUsers"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /execution:
    get:
      tags:
      - "Execution"
      summary: "Get all raw executions for your account."
      description: "This returns all raw transactions, which includes order opening\
        \ and cancelation, and order status\nchanges. It can be quite noisy. More\
        \ focused information is available at `/execution/tradeHistory`.\n\nYou may\
        \ also use the `filter` param to target your query. Specify an array as a\
        \ filter value, such as\n`{\"execType\": [\"Settlement\", \"Trade\"]}` to\
        \ filter on multiple values.\n\nSee [the FIX Spec](http://www.onixs.biz/fix-dictionary/5.0.SP2/msgType_8_8.html)\
        \ for explanations of these fields.\n"
      operationId: "Execution.get"
      parameters:
      - name: "symbol"
        in: "query"
        description: "Instrument symbol. Send a bare series (e.g. XBU) to get data\
          \ for the nearest expiring contract in that series.\n\nYou can also send\
          \ a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`,\
          \ `quarterly`, and `biquarterly`."
        required: false
        type: "string"
      - name: "filter"
        in: "query"
        description: "Generic table filter. Send JSON key/value pairs, such as `{\"\
          key\": \"value\"}`. You can key on individual fields, and do more advanced\
          \ querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters)\
          \ for more details."
        required: false
        type: "string"
        format: "JSON"
      - name: "columns"
        in: "query"
        description: "Array of column names to fetch. If omitted, will return all\
          \ columns.\n\nNote that this method will always return item keys, even when\
          \ not specified, so you may receive more columns that you expect."
        required: false
        type: "string"
        format: "JSON"
      - name: "count"
        in: "query"
        description: "Number of results to fetch."
        required: false
        type: "number"
        default: 100
        format: "int32"
      - name: "start"
        in: "query"
        description: "Starting point for results."
        required: false
        type: "number"
        default: 0
        format: "int32"
      - name: "reverse"
        in: "query"
        description: "If true, will sort results newest first."
        required: false
        type: "boolean"
        default: false
      - name: "startTime"
        in: "query"
        description: "Starting date filter for results."
        required: false
        type: "string"
        format: "date-time"
      - name: "endTime"
        in: "query"
        description: "Ending date filter for results."
        required: false
        type: "string"
        format: "date-time"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Execution"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /execution/tradeHistory:
    get:
      tags:
      - "Execution"
      summary: "Get all balance-affecting executions. This includes each trade, insurance\
        \ charge, and settlement."
      operationId: "Execution.getTradeHistory"
      parameters:
      - name: "symbol"
        in: "query"
        description: "Instrument symbol. Send a bare series (e.g. XBU) to get data\
          \ for the nearest expiring contract in that series.\n\nYou can also send\
          \ a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`,\
          \ `quarterly`, and `biquarterly`."
        required: false
        type: "string"
      - name: "filter"
        in: "query"
        description: "Generic table filter. Send JSON key/value pairs, such as `{\"\
          key\": \"value\"}`. You can key on individual fields, and do more advanced\
          \ querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters)\
          \ for more details."
        required: false
        type: "string"
        format: "JSON"
      - name: "columns"
        in: "query"
        description: "Array of column names to fetch. If omitted, will return all\
          \ columns.\n\nNote that this method will always return item keys, even when\
          \ not specified, so you may receive more columns that you expect."
        required: false
        type: "string"
        format: "JSON"
      - name: "count"
        in: "query"
        description: "Number of results to fetch."
        required: false
        type: "number"
        default: 100
        format: "int32"
      - name: "start"
        in: "query"
        description: "Starting point for results."
        required: false
        type: "number"
        default: 0
        format: "int32"
      - name: "reverse"
        in: "query"
        description: "If true, will sort results newest first."
        required: false
        type: "boolean"
        default: false
      - name: "startTime"
        in: "query"
        description: "Starting date filter for results."
        required: false
        type: "string"
        format: "date-time"
      - name: "endTime"
        in: "query"
        description: "Ending date filter for results."
        required: false
        type: "string"
        format: "date-time"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Execution"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /funding:
    get:
      tags:
      - "Funding"
      summary: "Get funding history."
      operationId: "Funding.get"
      parameters:
      - name: "symbol"
        in: "query"
        description: "Instrument symbol. Send a bare series (e.g. XBU) to get data\
          \ for the nearest expiring contract in that series.\n\nYou can also send\
          \ a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`,\
          \ `quarterly`, and `biquarterly`."
        required: false
        type: "string"
      - name: "filter"
        in: "query"
        description: "Generic table filter. Send JSON key/value pairs, such as `{\"\
          key\": \"value\"}`. You can key on individual fields, and do more advanced\
          \ querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters)\
          \ for more details."
        required: false
        type: "string"
        format: "JSON"
      - name: "columns"
        in: "query"
        description: "Array of column names to fetch. If omitted, will return all\
          \ columns.\n\nNote that this method will always return item keys, even when\
          \ not specified, so you may receive more columns that you expect."
        required: false
        type: "string"
        format: "JSON"
      - name: "count"
        in: "query"
        description: "Number of results to fetch."
        required: false
        type: "number"
        default: 100
        format: "int32"
      - name: "start"
        in: "query"
        description: "Starting point for results."
        required: false
        type: "number"
        default: 0
        format: "int32"
      - name: "reverse"
        in: "query"
        description: "If true, will sort results newest first."
        required: false
        type: "boolean"
        default: false
      - name: "startTime"
        in: "query"
        description: "Starting date filter for results."
        required: false
        type: "string"
        format: "date-time"
      - name: "endTime"
        in: "query"
        description: "Ending date filter for results."
        required: false
        type: "string"
        format: "date-time"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Funding"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /instrument:
    get:
      tags:
      - "Instrument"
      summary: "Get instruments."
      description: "This returns all instruments and indices, including those that\
        \ have settled or are unlisted. Use this endpoint if you want to query for\
        \ individual instruments or use a complex filter. Use `/instrument/active`\
        \ to return active instruments, or use a filter like `{\"state\": \"Open\"\
        }`."
      operationId: "Instrument.get"
      parameters:
      - name: "symbol"
        in: "query"
        description: "Instrument symbol. Send a bare series (e.g. XBU) to get data\
          \ for the nearest expiring contract in that series.\n\nYou can also send\
          \ a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`,\
          \ `quarterly`, and `biquarterly`."
        required: false
        type: "string"
      - name: "filter"
        in: "query"
        description: "Generic table filter. Send JSON key/value pairs, such as `{\"\
          key\": \"value\"}`. You can key on individual fields, and do more advanced\
          \ querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters)\
          \ for more details."
        required: false
        type: "string"
        format: "JSON"
      - name: "columns"
        in: "query"
        description: "Array of column names to fetch. If omitted, will return all\
          \ columns.\n\nNote that this method will always return item keys, even when\
          \ not specified, so you may receive more columns that you expect."
        required: false
        type: "string"
        format: "JSON"
      - name: "count"
        in: "query"
        description: "Number of results to fetch."
        required: false
        type: "number"
        default: 100
        format: "int32"
      - name: "start"
        in: "query"
        description: "Starting point for results."
        required: false
        type: "number"
        default: 0
        format: "int32"
      - name: "reverse"
        in: "query"
        description: "If true, will sort results newest first."
        required: false
        type: "boolean"
        default: false
      - name: "startTime"
        in: "query"
        description: "Starting date filter for results."
        required: false
        type: "string"
        format: "date-time"
      - name: "endTime"
        in: "query"
        description: "Ending date filter for results."
        required: false
        type: "string"
        format: "date-time"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Instrument"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /instrument/active:
    get:
      tags:
      - "Instrument"
      summary: "Get all active instruments and instruments that have expired in <24hrs."
      operationId: "Instrument.getActive"
      parameters: []
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Instrument"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /instrument/indices:
    get:
      tags:
      - "Instrument"
      summary: "Get all price indices."
      operationId: "Instrument.getIndices"
      parameters: []
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Instrument"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /instrument/activeAndIndices:
    get:
      tags:
      - "Instrument"
      summary: "Helper method. Gets all active instruments and all indices. This is\
        \ a join of the result of /indices and /active."
      operationId: "Instrument.getActiveAndIndices"
      parameters: []
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Instrument"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /instrument/activeIntervals:
    get:
      tags:
      - "Instrument"
      summary: "Return all active contract series and interval pairs."
      description: "This endpoint is useful for determining which pairs are live.\
        \ It returns two arrays of   strings. The first is intervals, such as `[\"\
        BVOL:daily\", \"BVOL:weekly\", \"XBU:daily\", \"XBU:monthly\", ...]`. These\
        \ identifiers are usable in any query's `symbol` param. The second array is\
        \ the current resolution of these intervals. Results are mapped at the same\
        \ index."
      operationId: "Instrument.getActiveIntervals"
      parameters: []
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/InstrumentInterval"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /instrument/compositeIndex:
    get:
      tags:
      - "Instrument"
      summary: "Show constituent parts of an index."
      description: "Composite indices are built from multiple external price sources.\n\
        \nUse this endpoint to get the underlying prices of an index. For example,\
        \ send a `symbol` of `.XBT` to\nget the ticks and weights of the constituent\
        \ exchanges that build the \".XBT\" index.\n\nA tick with reference `\"BMI\"\
        ` and weight `null` is the composite index tick.\n"
      operationId: "Instrument.getCompositeIndex"
      parameters:
      - name: "account"
        in: "query"
        required: false
        type: "number"
        format: "double"
      - name: "symbol"
        in: "query"
        description: "The composite index symbol."
        required: false
        type: "string"
        default: ".XBT"
      - name: "filter"
        in: "query"
        description: "Generic table filter. Send JSON key/value pairs, such as `{\"\
          key\": \"value\"}`. You can key on individual fields, and do more advanced\
          \ querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters)\
          \ for more details."
        required: false
        type: "string"
        format: "JSON"
      - name: "columns"
        in: "query"
        description: "Array of column names to fetch. If omitted, will return all\
          \ columns.\n\nNote that this method will always return item keys, even when\
          \ not specified, so you may receive more columns that you expect."
        required: false
        type: "string"
        format: "JSON"
      - name: "count"
        in: "query"
        description: "Number of results to fetch."
        required: false
        type: "number"
        default: 100
        format: "int32"
      - name: "start"
        in: "query"
        description: "Starting point for results."
        required: false
        type: "number"
        default: 0
        format: "int32"
      - name: "reverse"
        in: "query"
        description: "If true, will sort results newest first."
        required: false
        type: "boolean"
        default: false
      - name: "startTime"
        in: "query"
        description: "Starting date filter for results."
        required: false
        type: "string"
        format: "date-time"
      - name: "endTime"
        in: "query"
        description: "Ending date filter for results."
        required: false
        type: "string"
        format: "date-time"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/IndexComposite"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /insurance:
    get:
      tags:
      - "Insurance"
      summary: "Get insurance fund history."
      operationId: "Insurance.get"
      parameters:
      - name: "symbol"
        in: "query"
        description: "Instrument symbol. Send a bare series (e.g. XBU) to get data\
          \ for the nearest expiring contract in that series.\n\nYou can also send\
          \ a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`,\
          \ `quarterly`, and `biquarterly`."
        required: false
        type: "string"
      - name: "filter"
        in: "query"
        description: "Generic table filter. Send JSON key/value pairs, such as `{\"\
          key\": \"value\"}`. You can key on individual fields, and do more advanced\
          \ querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters)\
          \ for more details."
        required: false
        type: "string"
        format: "JSON"
      - name: "columns"
        in: "query"
        description: "Array of column names to fetch. If omitted, will return all\
          \ columns.\n\nNote that this method will always return item keys, even when\
          \ not specified, so you may receive more columns that you expect."
        required: false
        type: "string"
        format: "JSON"
      - name: "count"
        in: "query"
        description: "Number of results to fetch."
        required: false
        type: "number"
        default: 100
        format: "int32"
      - name: "start"
        in: "query"
        description: "Starting point for results."
        required: false
        type: "number"
        default: 0
        format: "int32"
      - name: "reverse"
        in: "query"
        description: "If true, will sort results newest first."
        required: false
        type: "boolean"
        default: false
      - name: "startTime"
        in: "query"
        description: "Starting date filter for results."
        required: false
        type: "string"
        format: "date-time"
      - name: "endTime"
        in: "query"
        description: "Ending date filter for results."
        required: false
        type: "string"
        format: "date-time"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Insurance"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /leaderboard:
    get:
      tags:
      - "Leaderboard"
      summary: "Get current leaderboard."
      operationId: "Leaderboard.get"
      parameters:
      - name: "method"
        in: "query"
        description: "Ranking type. Options: \"notional\", \"ROE\""
        required: false
        type: "string"
        default: "notional"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Leaderboard"
      security: []
  /liquidation:
    get:
      tags:
      - "Liquidation"
      summary: "Get liquidation orders."
      operationId: "Liquidation.get"
      parameters:
      - name: "symbol"
        in: "query"
        description: "Instrument symbol. Send a bare series (e.g. XBU) to get data\
          \ for the nearest expiring contract in that series.\n\nYou can also send\
          \ a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`,\
          \ `quarterly`, and `biquarterly`."
        required: false
        type: "string"
      - name: "filter"
        in: "query"
        description: "Generic table filter. Send JSON key/value pairs, such as `{\"\
          key\": \"value\"}`. You can key on individual fields, and do more advanced\
          \ querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters)\
          \ for more details."
        required: false
        type: "string"
        format: "JSON"
      - name: "columns"
        in: "query"
        description: "Array of column names to fetch. If omitted, will return all\
          \ columns.\n\nNote that this method will always return item keys, even when\
          \ not specified, so you may receive more columns that you expect."
        required: false
        type: "string"
        format: "JSON"
      - name: "count"
        in: "query"
        description: "Number of results to fetch."
        required: false
        type: "number"
        default: 100
        format: "int32"
      - name: "start"
        in: "query"
        description: "Starting point for results."
        required: false
        type: "number"
        default: 0
        format: "int32"
      - name: "reverse"
        in: "query"
        description: "If true, will sort results newest first."
        required: false
        type: "boolean"
        default: false
      - name: "startTime"
        in: "query"
        description: "Starting date filter for results."
        required: false
        type: "string"
        format: "date-time"
      - name: "endTime"
        in: "query"
        description: "Ending date filter for results."
        required: false
        type: "string"
        format: "date-time"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Liquidation"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /notification:
    get:
      tags:
      - "Notification"
      summary: "Get your current notifications."
      description: "This is an upcoming feature and currently does not return data."
      operationId: "Notification.get"
      parameters: []
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Notification"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /order:
    get:
      tags:
      - "Order"
      summary: "Get your orders."
      description: "To get open orders only, send {\"open\": true} in the filter param.\n\
        \nSee <a href=\"http://www.onixs.biz/fix-dictionary/5.0.SP2/msgType_D_68.html\"\
        >the FIX Spec</a> for explanations of these fields."
      operationId: "Order.getOrders"
      parameters:
      - name: "symbol"
        in: "query"
        description: "Instrument symbol. Send a bare series (e.g. XBU) to get data\
          \ for the nearest expiring contract in that series.\n\nYou can also send\
          \ a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`,\
          \ `quarterly`, and `biquarterly`."
        required: false
        type: "string"
      - name: "filter"
        in: "query"
        description: "Generic table filter. Send JSON key/value pairs, such as `{\"\
          key\": \"value\"}`. You can key on individual fields, and do more advanced\
          \ querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters)\
          \ for more details."
        required: false
        type: "string"
        format: "JSON"
      - name: "columns"
        in: "query"
        description: "Array of column names to fetch. If omitted, will return all\
          \ columns.\n\nNote that this method will always return item keys, even when\
          \ not specified, so you may receive more columns that you expect."
        required: false
        type: "string"
        format: "JSON"
      - name: "count"
        in: "query"
        description: "Number of results to fetch."
        required: false
        type: "number"
        default: 100
        format: "int32"
      - name: "start"
        in: "query"
        description: "Starting point for results."
        required: false
        type: "number"
        default: 0
        format: "int32"
      - name: "reverse"
        in: "query"
        description: "If true, will sort results newest first."
        required: false
        type: "boolean"
        default: false
      - name: "startTime"
        in: "query"
        description: "Starting date filter for results."
        required: false
        type: "string"
        format: "date-time"
      - name: "endTime"
        in: "query"
        description: "Ending date filter for results."
        required: false
        type: "string"
        format: "date-time"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Order"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
    post:
      tags:
      - "Order"
      summary: "Create a new order."
      description: "## Placing Orders\n\nThis endpoint is used for placing orders.\
        \ See individual fields below for more details on their use.\n\n#### Order\
        \ Types\n\nAll orders require a `symbol`. All other fields are optional except\
        \ when otherwise specified.\n\nThese are the valid `ordType`s:\n\n* **Limit**:\
        \ The default order type. Specify an `orderQty` and `price`.\n* **Market**:\
        \ A traditional Market order. A Market order will execute until filled or\
        \ your bankruptcy price is reached, at\n  which point it will cancel.\n* **MarketWithLeftOverAsLimit**:\
        \ A market order that, after eating through the order book as far as\n  permitted\
        \ by available margin, will become a limit order. The difference between this\
        \ type and `Market` only\n  affects the behavior in thin books. Upon reaching\
        \ the deepest possible price, if there is quantity left over,\n  a `Market`\
        \ order will cancel the remaining quantity. `MarketWithLeftOverAsLimit` will\
        \ keep the remaining\n  quantity in the books as a `Limit`.\n* **Stop**: A\
        \ Stop Market order. Specify an `orderQty` and `stopPx`. When the `stopPx`\
        \ is reached, the order will be entered\n  into the book.\n  * On sell orders,\
        \ the order will trigger if the triggering price is lower than the `stopPx`.\
        \ On buys, higher.\n  * Note: Stop orders do not consume margin until triggered.\
        \ Be sure that the required margin is available in your\n    account so that\
        \ it may trigger fully.\n  * `Close` Stops don't require an `orderQty`. See\
        \ Execution Instructions below.\n* **StopLimit**: Like a Stop Market, but\
        \ enters a Limit order instead of a Market order. Specify an `orderQty`, `stopPx`,\n\
        \  and `price`.\n* **MarketIfTouched**: Similar to a Stop, but triggers are\
        \ done in the opposite direction. Useful for Take Profit orders.\n* **LimitIfTouched**:\
        \ As above; use for Take Profit Limit orders.\n\n#### Execution Instructions\n\
        \nThe following `execInst`s are supported. If using multiple, separate with\
        \ a comma (e.g. `LastPrice,Close`).\n\n* **ParticipateDoNotInitiate**: Also\
        \ known as a Post-Only order. If this order would have executed on placement,\n\
        \  it will cancel instead.\n* **AllOrNone**: Valid only for hidden orders\
        \ (`displayQty: 0`). Use to only execute if the entire order would fill.\n\
        * **MarkPrice, LastPrice, IndexPrice**: Used by stop and if-touched orders\
        \ to determine the triggering price.\n  Use only one. By default, `'MarkPrice'`\
        \ is used. Also used for Pegged orders to define the value of `'LastPeg'`.\n\
        * **ReduceOnly**: A `'ReduceOnly'` order can only reduce your position, not\
        \ increase it. If you have a `'ReduceOnly'`\n  limit order that rests in the\
        \ order book while the position is reduced by other orders, then its order\
        \ quantity will\n  be amended down or canceled. If there are multiple `'ReduceOnly'`\
        \ orders the least agresssive will be amended first.\n* **Close**: `'Close'`\
        \ implies `'ReduceOnly'`. A `'Close'` order will cancel other active limit\
        \ orders with the same side\n  and symbol if the open quantity exceeds the\
        \ current position. This is useful for stops: by canceling these orders, a\n\
        \  `'Close'` Stop is ensured to have the margin required to execute, and can\
        \ only execute up to the full size of your\n  position. If not specified,\
        \ a `'Close'` order has an `orderQty` equal to your current position's size.\n\
        \n#### Linked Orders\n\nLinked Orders are an advanced capability. It is very\
        \ powerful, but its use requires careful coding and testing.\nPlease follow\
        \ this document carefully and use the [Testnet Exchange](https://testnet.bitmex.com)\
        \ while developing.\n\nBitMEX offers four advanced Linked Order types:\n\n\
        * **OCO**: *One Cancels the Other*. A very flexible version of the standard\
        \ Stop / Take Profit technique.\n  Multiple orders may be linked together\
        \ using a single `clOrdLinkID`. Send a `contingencyType` of\n  `OneCancelsTheOther`\
        \ on the orders. The first order that fully or partially executes (or activates\n\
        \  for `Stop` orders) will cancel all other orders with the same `clOrdLinkID`.\n\
        * **OTO**: *One Triggers the Other*. Send a `contingencyType` of `'OneTriggersTheOther'`\
        \ on the primary order and\n  then subsequent orders with the same `clOrdLinkID`\
        \ will be not be triggered until the primary order fully executes.\n* **OUOA**:\
        \ *One Updates the Other Absolute*. Send a `contingencyType` of `'OneUpdatesTheOtherAbsolute'`\
        \ on the orders. Then\n  as one order has a execution, other orders with the\
        \ same `clOrdLinkID` will have their order quantity amended\n  down by the\
        \ execution quantity.\n* **OUOP**: *One Updates the Other Proportional*. Send\
        \ a `contingencyType` of `'OneUpdatesTheOtherProportional'` on the orders.\
        \ Then\n  as one order has a execution, other orders with the same `clOrdLinkID`\
        \ will have their order quantity reduced proportionally\n  by the fill percentage.\n\
        \n#### Trailing Stops\n\nYou may use `pegPriceType` of `'TrailingStopPeg'`\
        \ to create Trailing Stops. The pegged `stopPx` will move as the market\n\
        moves away from the peg, and freeze as the market moves toward it.\n\nTo use,\
        \ combine with `pegOffsetValue` to set the `stopPx` of your order. The peg\
        \ is set to the triggering price\nspecified in the `execInst` (default `'MarkPrice'`).\
        \ Use a negative offset for stop-sell and buy-if-touched orders.\n\nRequires\
        \ `ordType`: `'Stop', 'StopLimit', 'MarketIfTouched', 'LimitIfTouched'`.\n\
        \n#### Simple Quantities\n\nSend a `simpleOrderQty` instead of an `orderQty`\
        \ to create an order denominated in the underlying currency.\nThis is useful\
        \ for opening up a position with 1 XBT of exposure without having to calculate\
        \ how many contracts it is.\n\n#### Rate Limits\n\nSee the [Bulk Order Documentation](#!/Order/Order_newBulk)\
        \ if you need to place multiple orders at the same time.\nBulk orders require\
        \ fewer risk checks in the trading engine and thus are ratelimited at **1/10**\
        \ the normal rate.\n\nYou can also improve your reactivity to market movements\
        \ while staying under your ratelimit by using the\n[Amend](#!/Order/Order_amend)\
        \ and [Amend Bulk](#!/Order/Order_amendBulk) endpoints. This allows you to\
        \ stay\nin the market and avoids the cancel/replace cycle.\n\n#### Tracking\
        \ Your Orders\n\nIf you want to keep track of order IDs yourself, set a unique\
        \ `clOrdID` per order.\nThis `clOrdID` will come back as a property on the\
        \ order and any related executions (including on the WebSocket),\nand can\
        \ be used to get or cancel the order. Max length is 36 characters.\n"
      operationId: "Order.new"
      parameters:
      - name: "symbol"
        in: "formData"
        description: "Instrument symbol. e.g. 'XBTUSD'."
        required: true
        type: "string"
      - name: "side"
        in: "formData"
        description: "Order side. Valid options: Buy, Sell. Defaults to 'Buy' unless\
          \ `orderQty` or `simpleOrderQty` is negative."
        required: false
        type: "string"
      - name: "simpleOrderQty"
        in: "formData"
        description: "Order quantity in units of the underlying instrument (i.e. Bitcoin)."
        required: false
        type: "number"
        format: "double"
      - name: "quantity"
        in: "formData"
        description: "Deprecated: use `orderQty`."
        required: false
        type: "number"
        format: "int32"
      - name: "orderQty"
        in: "formData"
        description: "Order quantity in units of the instrument (i.e. contracts)."
        required: false
        type: "number"
        format: "int32"
      - name: "price"
        in: "formData"
        description: "Optional limit price for 'Limit', 'StopLimit', and 'LimitIfTouched'\
          \ orders."
        required: false
        type: "number"
        format: "double"
      - name: "displayQty"
        in: "formData"
        description: "Optional quantity to display in the book. Use 0 for a fully\
          \ hidden order."
        required: false
        type: "number"
        format: "int32"
      - name: "stopPrice"
        in: "formData"
        description: "Deprecated: use `stopPx`."
        required: false
        type: "number"
        format: "double"
      - name: "stopPx"
        in: "formData"
        description: "Optional trigger price for 'Stop', 'StopLimit', 'MarketIfTouched',\
          \ and 'LimitIfTouched' orders. Use a price below the current price for stop-sell\
          \ orders and buy-if-touched orders. Use `execInst` of 'MarkPrice' or 'LastPrice'\
          \ to define the current price used for triggering."
        required: false
        type: "number"
        format: "double"
      - name: "clOrdID"
        in: "formData"
        description: "Optional Client Order ID. This clOrdID will come back on the\
          \ order and any related executions."
        required: false
        type: "string"
      - name: "clOrdLinkID"
        in: "formData"
        description: "Optional Client Order Link ID for contingent orders."
        required: false
        type: "string"
      - name: "pegOffsetValue"
        in: "formData"
        description: "Optional trailing offset from the current price for 'Stop',\
          \ 'StopLimit', 'MarketIfTouched', and 'LimitIfTouched' orders; use a negative\
          \ offset for stop-sell orders and buy-if-touched orders. Optional offset\
          \ from the peg price for 'Pegged' orders."
        required: false
        type: "number"
        format: "double"
      - name: "pegPriceType"
        in: "formData"
        description: "Optional peg price type. Valid options: LastPeg, MidPricePeg,\
          \ MarketPeg, PrimaryPeg, TrailingStopPeg."
        required: false
        type: "string"
      - name: "type"
        in: "formData"
        description: "Deprecated: use `ordType`."
        required: false
        type: "string"
      - name: "ordType"
        in: "formData"
        description: "Order type. Valid options: Market, Limit, Stop, StopLimit, MarketIfTouched,\
          \ LimitIfTouched, MarketWithLeftOverAsLimit, Pegged. Defaults to 'Limit'\
          \ when `price` is specified. Defaults to 'Stop' when `stopPx` is specified.\
          \ Defaults to 'StopLimit' when `price` and `stopPx` are specified."
        required: false
        type: "string"
        default: "Limit"
      - name: "timeInForce"
        in: "formData"
        description: "Time in force. Valid options: Day, GoodTillCancel, ImmediateOrCancel,\
          \ FillOrKill. Defaults to 'GoodTillCancel' for 'Limit', 'StopLimit', 'LimitIfTouched',\
          \ and 'MarketWithLeftOverAsLimit' orders."
        required: false
        type: "string"
      - name: "execInst"
        in: "formData"
        description: "Optional execution instructions. Valid options: ParticipateDoNotInitiate,\
          \ AllOrNone, MarkPrice, IndexPrice, LastPrice, Close, ReduceOnly, Fixed.\
          \ 'AllOrNone' instruction requires `displayQty` to be 0. 'MarkPrice', 'IndexPrice'\
          \ or 'LastPrice' instruction valid for 'Stop', 'StopLimit', 'MarketIfTouched',\
          \ and 'LimitIfTouched' orders."
        required: false
        type: "string"
      - name: "contingencyType"
        in: "formData"
        description: "Optional contingency type for use with `clOrdLinkID`. Valid\
          \ options: OneCancelsTheOther, OneTriggersTheOther, OneUpdatesTheOtherAbsolute,\
          \ OneUpdatesTheOtherProportional."
        required: false
        type: "string"
      - name: "text"
        in: "formData"
        description: "Optional order annotation. e.g. 'Take profit'."
        required: false
        type: "string"
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/Order"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
    put:
      tags:
      - "Order"
      summary: "Amend the quantity or price of an open order."
      description: "Send an `orderID` or `origClOrdID` to identify the order you wish\
        \ to amend.\n\nBoth order quantity and price can be amended. Only one `qty`\
        \ field can be used to amend.\n\nUse the `leavesQty` field to specify how\
        \ much of the order you wish to remain open. This can be useful\nif you want\
        \ to adjust your position's delta by a certain amount, regardless of how much\
        \ of the order has\nalready filled.\n\nUse the `simpleOrderQty` and `simpleLeavesQty`\
        \ fields to specify order size in Bitcoin, rather than contracts.\nThese fields\
        \ will round up to the nearest contract.\n\nLike order placement, amending\
        \ can be done in bulk. Simply send a request to `PUT /api/v1/order/bulk` with\n\
        a JSON body of the shape: `{\"orders\": [{...}, {...}]}`, each object containing\
        \ the fields used in this endpoint.\n"
      operationId: "Order.amend"
      parameters:
      - name: "orderID"
        in: "formData"
        description: "Order ID"
        required: false
        type: "string"
      - name: "origClOrdID"
        in: "formData"
        description: "Client Order ID. See POST /order."
        required: false
        type: "string"
      - name: "clOrdID"
        in: "formData"
        description: "Optional new Client Order ID, requires `origClOrdID`."
        required: false
        type: "string"
      - name: "simpleOrderQty"
        in: "formData"
        description: "Optional order quantity in units of the underlying instrument\
          \ (i.e. Bitcoin)."
        required: false
        type: "number"
        format: "double"
      - name: "orderQty"
        in: "formData"
        description: "Optional order quantity in units of the instrument (i.e. contracts)."
        required: false
        type: "number"
        format: "int32"
      - name: "simpleLeavesQty"
        in: "formData"
        description: "Optional leaves quantity in units of the underlying instrument\
          \ (i.e. Bitcoin). Useful for amending partially filled orders."
        required: false
        type: "number"
        format: "double"
      - name: "leavesQty"
        in: "formData"
        description: "Optional leaves quantity in units of the instrument (i.e. contracts).\
          \ Useful for amending partially filled orders."
        required: false
        type: "number"
        format: "int32"
      - name: "price"
        in: "formData"
        description: "Optional limit price for 'Limit', 'StopLimit', and 'LimitIfTouched'\
          \ orders."
        required: false
        type: "number"
        format: "double"
      - name: "stopPx"
        in: "formData"
        description: "Optional trigger price for 'Stop', 'StopLimit', 'MarketIfTouched',\
          \ and 'LimitIfTouched' orders. Use a price below the current price for stop-sell\
          \ orders and buy-if-touched orders."
        required: false
        type: "number"
        format: "double"
      - name: "pegOffsetValue"
        in: "formData"
        description: "Optional trailing offset from the current price for 'Stop',\
          \ 'StopLimit', 'MarketIfTouched', and 'LimitIfTouched' orders; use a negative\
          \ offset for stop-sell orders and buy-if-touched orders. Optional offset\
          \ from the peg price for 'Pegged' orders."
        required: false
        type: "number"
        format: "double"
      - name: "text"
        in: "formData"
        description: "Optional amend annotation. e.g. 'Adjust skew'."
        required: false
        type: "string"
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/Order"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
    delete:
      tags:
      - "Order"
      summary: "Cancel order(s). Send multiple order IDs to cancel in bulk."
      description: "Either an orderID or a clOrdID must be provided."
      operationId: "Order.cancel"
      parameters:
      - name: "orderID"
        in: "formData"
        description: "Order ID(s)."
        required: false
        type: "string"
        format: "JSON"
      - name: "clOrdID"
        in: "formData"
        description: "Client Order ID(s). See POST /order."
        required: false
        type: "string"
        format: "JSON"
      - name: "text"
        in: "formData"
        description: "Optional cancellation annotation. e.g. 'Spread Exceeded'."
        required: false
        type: "string"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Order"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /order/bulk:
    post:
      tags:
      - "Order"
      summary: "Create multiple new orders for the same symbol."
      description: "This endpoint is used for placing bulk orders. Valid order types\
        \ are Market, Limit, Stop, StopLimit, MarketIfTouched, LimitIfTouched, MarketWithLeftOverAsLimit,\
        \ and Pegged.\n\nEach individual order object in the array should have the\
        \ same properties as an individual POST /order call.\n\nThis endpoint is much\
        \ faster for getting many orders into the book at once. Because it reduces\
        \ load on BitMEX\nsystems, this endpoint is ratelimited at `ceil(0.1 * orders)`.\
        \ Submitting 10 orders via a bulk order call\nwill only count as 1 request,\
        \ 15 as 2, 32 as 4, and so on.\n\nFor now, only `application/json` is supported\
        \ on this endpoint.\n"
      operationId: "Order.newBulk"
      parameters:
      - name: "orders"
        in: "formData"
        description: "An array of orders."
        required: false
        type: "string"
        format: "JSON"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Order"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
    put:
      tags:
      - "Order"
      summary: "Amend multiple orders for the same symbol."
      description: "Similar to POST /amend, but with multiple orders. `application/json`\
        \ only. Ratelimited at 50%."
      operationId: "Order.amendBulk"
      parameters:
      - name: "orders"
        in: "formData"
        description: "An array of orders."
        required: false
        type: "string"
        format: "JSON"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Order"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /order/closePosition:
    post:
      tags:
      - "Order"
      summary: "Close a position. [Deprecated, use POST /order with execInst: 'Close']"
      description: "If no `price` is specified, a market order will be submitted to\
        \ close the whole of your position. This will also close all other open orders\
        \ in this symbol."
      operationId: "Order.closePosition"
      parameters:
      - name: "symbol"
        in: "formData"
        description: "Symbol of position to close."
        required: true
        type: "string"
      - name: "price"
        in: "formData"
        description: "Optional limit price."
        required: false
        type: "number"
        format: "double"
      responses:
        200:
          description: "Request was successful"
          schema:
            description: "Resulting close order."
            $ref: "#/definitions/Order"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /order/all:
    delete:
      tags:
      - "Order"
      summary: "Cancels all of your orders."
      operationId: "Order.cancelAll"
      parameters:
      - name: "symbol"
        in: "formData"
        description: "Optional symbol. If provided, only cancels orders for that symbol."
        required: false
        type: "string"
      - name: "filter"
        in: "formData"
        description: "Optional filter for cancellation. Use to only cancel some orders,\
          \ e.g. `{\"side\": \"Buy\"}`."
        required: false
        type: "string"
        format: "JSON"
      - name: "text"
        in: "formData"
        description: "Optional cancellation annotation. e.g. 'Spread Exceeded'"
        required: false
        type: "string"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "object"
            properties: {}
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /order/cancelAllAfter:
    post:
      tags:
      - "Order"
      summary: "Automatically cancel all your orders after a specified timeout."
      description: "Useful as a dead-man's switch to ensure your orders are canceled\
        \ in case of an outage.\nIf called repeatedly, the existing offset will be\
        \ canceled and a new one will be inserted in its place.\n\nExample usage:\
        \ call this route at 15s intervals with an offset of 60000 (60s).\nIf this\
        \ route is not called within 60 seconds, all your orders will be automatically\
        \ canceled.\n\nThis is also available via [WebSocket](https://www.bitmex.com/app/wsAPI#dead-man-s-switch-auto-cancel-).\n"
      operationId: "Order.cancelAllAfter"
      parameters:
      - name: "timeout"
        in: "formData"
        description: "Timeout in ms. Set to 0 to cancel this timer. "
        required: true
        type: "number"
        format: "double"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "object"
            properties: {}
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /orderBook:
    get:
      tags:
      - "OrderBook"
      summary: "Get current orderbook [deprecated, use /orderBook/L2]."
      operationId: "OrderBook.get"
      parameters:
      - name: "symbol"
        in: "query"
        description: "Instrument symbol. Send a series (e.g. XBT) to get data for\
          \ the nearest contract in that series."
        required: true
        type: "string"
      - name: "depth"
        in: "query"
        description: "Orderbook depth."
        required: false
        type: "number"
        default: 25
        minimum: 0
        format: "int32"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/OrderBook"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /orderBook/L2:
    get:
      tags:
      - "OrderBook"
      summary: "Get current orderbook in vertical format."
      operationId: "OrderBook.getL2"
      parameters:
      - name: "symbol"
        in: "query"
        description: "Instrument symbol. Send a series (e.g. XBT) to get data for\
          \ the nearest contract in that series."
        required: true
        type: "string"
      - name: "depth"
        in: "query"
        description: "Orderbook depth per side. Send 0 for full depth."
        required: false
        type: "number"
        default: 25
        minimum: 0
        format: "int32"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/OrderBookL2"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /position:
    get:
      tags:
      - "Position"
      summary: "Get your positions."
      description: "See <a href=\"http://www.onixs.biz/fix-dictionary/5.0.SP2/msgType_AP_6580.html\"\
        >the FIX Spec</a> for explanations of these fields."
      operationId: "Position.get"
      parameters:
      - name: "filter"
        in: "query"
        description: "Table filter. For example, send {\"symbol\": \"XBTUSD\"}."
        required: false
        type: "string"
        format: "JSON"
      - name: "columns"
        in: "query"
        description: "Which columns to fetch. For example, send [\"columnName\"]."
        required: false
        type: "string"
        format: "JSON"
      - name: "count"
        in: "query"
        description: "Number of rows to fetch."
        required: false
        type: "number"
        format: "int32"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Position"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /position/isolate:
    post:
      tags:
      - "Position"
      summary: "Enable isolated margin or cross margin per-position."
      description: "Users can switch isolate margin per-position. This function allows\
        \ switching margin isolation (aka fixed margin) on and off."
      operationId: "Position.isolateMargin"
      parameters:
      - name: "symbol"
        in: "formData"
        description: "Position symbol to isolate."
        required: true
        type: "string"
      - name: "enabled"
        in: "formData"
        description: "True for isolated margin, false for cross margin."
        required: false
        type: "boolean"
        default: true
      responses:
        200:
          description: "Request was successful"
          schema:
            description: "Affected position."
            $ref: "#/definitions/Position"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /position/riskLimit:
    post:
      tags:
      - "Position"
      summary: "Update your risk limit."
      description: "Risk Limits limit the size of positions you can trade at various\
        \ margin levels. Larger positions require more margin. Please see the Risk\
        \ Limit documentation for more details."
      operationId: "Position.updateRiskLimit"
      parameters:
      - name: "symbol"
        in: "formData"
        description: "Symbol of position to isolate."
        required: true
        type: "string"
      - name: "riskLimit"
        in: "formData"
        description: "New Risk Limit, in Satoshis."
        required: true
        type: "number"
        format: "int64"
      responses:
        200:
          description: "Request was successful"
          schema:
            description: "Affected position."
            $ref: "#/definitions/Position"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /position/transferMargin:
    post:
      tags:
      - "Position"
      summary: "Transfer equity in or out of a position."
      description: "When margin is isolated on a position, use this function to add\
        \ or remove margin from the position. Note that you cannot remove margin below\
        \ the initial margin threshold."
      operationId: "Position.transferIsolatedMargin"
      parameters:
      - name: "symbol"
        in: "formData"
        description: "Symbol of position to isolate."
        required: true
        type: "string"
      - name: "amount"
        in: "formData"
        description: "Amount to transfer, in Satoshis. May be negative."
        required: true
        type: "number"
        format: "int64"
      responses:
        200:
          description: "Request was successful"
          schema:
            description: "Affected position."
            $ref: "#/definitions/Position"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /position/leverage:
    post:
      tags:
      - "Position"
      summary: "Choose leverage for a position."
      description: "Users can choose an isolated leverage. This will automatically\
        \ enable isolated margin."
      operationId: "Position.updateLeverage"
      parameters:
      - name: "symbol"
        in: "formData"
        description: "Symbol of position to adjust."
        required: true
        type: "string"
      - name: "leverage"
        in: "formData"
        description: "Leverage value. Send a number between 0.01 and 100 to enable\
          \ isolated margin with a fixed leverage. Send 0 to enable cross margin."
        required: true
        type: "number"
        format: "double"
      responses:
        200:
          description: "Request was successful"
          schema:
            description: "Affected position."
            $ref: "#/definitions/Position"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
  /quote:
    get:
      tags:
      - "Quote"
      summary: "Get Quotes."
      operationId: "Quote.get"
      parameters:
      - name: "symbol"
        in: "query"
        description: "Instrument symbol. Send a bare series (e.g. XBU) to get data\
          \ for the nearest expiring contract in that series.\n\nYou can also send\
          \ a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`,\
          \ `quarterly`, and `biquarterly`."
        required: false
        type: "string"
      - name: "filter"
        in: "query"
        description: "Generic table filter. Send JSON key/value pairs, such as `{\"\
          key\": \"value\"}`. You can key on individual fields, and do more advanced\
          \ querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters)\
          \ for more details."
        required: false
        type: "string"
        format: "JSON"
      - name: "columns"
        in: "query"
        description: "Array of column names to fetch. If omitted, will return all\
          \ columns.\n\nNote that this method will always return item keys, even when\
          \ not specified, so you may receive more columns that you expect."
        required: false
        type: "string"
        format: "JSON"
      - name: "count"
        in: "query"
        description: "Number of results to fetch."
        required: false
        type: "number"
        default: 100
        format: "int32"
      - name: "start"
        in: "query"
        description: "Starting point for results."
        required: false
        type: "number"
        default: 0
        format: "int32"
      - name: "reverse"
        in: "query"
        description: "If true, will sort results newest first."
        required: false
        type: "boolean"
        default: false
      - name: "startTime"
        in: "query"
        description: "Starting date filter for results."
        required: false
        type: "string"
        format: "date-time"
      - name: "endTime"
        in: "query"
        description: "Ending date filter for results."
        required: false
        type: "string"
        format: "date-time"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Quote"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /quote/bucketed:
    get:
      tags:
      - "Quote"
      summary: "Get previous quotes in time buckets."
      operationId: "Quote.getBucketed"
      parameters:
      - name: "binSize"
        in: "query"
        description: "Time interval to bucket by. Available options: [1m,5m,1h,1d]."
        required: false
        type: "string"
        default: "1m"
      - name: "partial"
        in: "query"
        description: "If true, will send in-progress (incomplete) bins for the current\
          \ time period."
        required: false
        type: "boolean"
        default: false
      - name: "symbol"
        in: "query"
        description: "Instrument symbol. Send a bare series (e.g. XBU) to get data\
          \ for the nearest expiring contract in that series.\n\nYou can also send\
          \ a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`,\
          \ `quarterly`, and `biquarterly`."
        required: false
        type: "string"
      - name: "filter"
        in: "query"
        description: "Generic table filter. Send JSON key/value pairs, such as `{\"\
          key\": \"value\"}`. You can key on individual fields, and do more advanced\
          \ querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters)\
          \ for more details."
        required: false
        type: "string"
        format: "JSON"
      - name: "columns"
        in: "query"
        description: "Array of column names to fetch. If omitted, will return all\
          \ columns.\n\nNote that this method will always return item keys, even when\
          \ not specified, so you may receive more columns that you expect."
        required: false
        type: "string"
        format: "JSON"
      - name: "count"
        in: "query"
        description: "Number of results to fetch."
        required: false
        type: "number"
        default: 100
        format: "int32"
      - name: "start"
        in: "query"
        description: "Starting point for results."
        required: false
        type: "number"
        default: 0
        format: "int32"
      - name: "reverse"
        in: "query"
        description: "If true, will sort results newest first."
        required: false
        type: "boolean"
        default: false
      - name: "startTime"
        in: "query"
        description: "Starting date filter for results."
        required: false
        type: "string"
        format: "date-time"
      - name: "endTime"
        in: "query"
        description: "Ending date filter for results."
        required: false
        type: "string"
        format: "date-time"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Quote"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /schema:
    get:
      tags:
      - "Schema"
      summary: "Get model schemata for data objects returned by this API."
      operationId: "Schema.get"
      parameters:
      - name: "model"
        in: "query"
        description: "Optional model filter. If omitted, will return all models."
        required: false
        type: "string"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "object"
            properties: {}
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /schema/websocketHelp:
    get:
      tags:
      - "Schema"
      summary: "Returns help text & subject list for websocket usage."
      operationId: "Schema.websocketHelp"
      parameters: []
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "object"
            properties: {}
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /settlement:
    get:
      tags:
      - "Settlement"
      summary: "Get settlement history."
      operationId: "Settlement.get"
      parameters:
      - name: "symbol"
        in: "query"
        description: "Instrument symbol. Send a bare series (e.g. XBU) to get data\
          \ for the nearest expiring contract in that series.\n\nYou can also send\
          \ a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`,\
          \ `quarterly`, and `biquarterly`."
        required: false
        type: "string"
      - name: "filter"
        in: "query"
        description: "Generic table filter. Send JSON key/value pairs, such as `{\"\
          key\": \"value\"}`. You can key on individual fields, and do more advanced\
          \ querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters)\
          \ for more details."
        required: false
        type: "string"
        format: "JSON"
      - name: "columns"
        in: "query"
        description: "Array of column names to fetch. If omitted, will return all\
          \ columns.\n\nNote that this method will always return item keys, even when\
          \ not specified, so you may receive more columns that you expect."
        required: false
        type: "string"
        format: "JSON"
      - name: "count"
        in: "query"
        description: "Number of results to fetch."
        required: false
        type: "number"
        default: 100
        format: "int32"
      - name: "start"
        in: "query"
        description: "Starting point for results."
        required: false
        type: "number"
        default: 0
        format: "int32"
      - name: "reverse"
        in: "query"
        description: "If true, will sort results newest first."
        required: false
        type: "boolean"
        default: false
      - name: "startTime"
        in: "query"
        description: "Starting date filter for results."
        required: false
        type: "string"
        format: "date-time"
      - name: "endTime"
        in: "query"
        description: "Ending date filter for results."
        required: false
        type: "string"
        format: "date-time"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Settlement"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /stats:
    get:
      tags:
      - "Stats"
      summary: "Get exchange-wide and per-series turnover and volume statistics."
      operationId: "Stats.get"
      parameters: []
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Stats"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /stats/history:
    get:
      tags:
      - "Stats"
      summary: "Get historical exchange-wide and per-series turnover and volume statistics."
      operationId: "Stats.history"
      parameters: []
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/StatsHistory"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /stats/historyUSD:
    get:
      tags:
      - "Stats"
      summary: "Get a summary of exchange statistics in USD."
      operationId: "Stats.historyUSD"
      parameters: []
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/StatsUSD"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /trade:
    get:
      tags:
      - "Trade"
      summary: "Get Trades."
      description: "Please note that indices (symbols starting with `.`) post trades\
        \ at intervals to the trade feed. These have a `size` of 0 and are used only\
        \ to indicate a changing price.\n\nSee [the FIX Spec](http://www.onixs.biz/fix-dictionary/5.0.SP2/msgType_AE_6569.html)\
        \ for explanations of these fields."
      operationId: "Trade.get"
      parameters:
      - name: "symbol"
        in: "query"
        description: "Instrument symbol. Send a bare series (e.g. XBU) to get data\
          \ for the nearest expiring contract in that series.\n\nYou can also send\
          \ a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`,\
          \ `quarterly`, and `biquarterly`."
        required: false
        type: "string"
      - name: "filter"
        in: "query"
        description: "Generic table filter. Send JSON key/value pairs, such as `{\"\
          key\": \"value\"}`. You can key on individual fields, and do more advanced\
          \ querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters)\
          \ for more details."
        required: false
        type: "string"
        format: "JSON"
      - name: "columns"
        in: "query"
        description: "Array of column names to fetch. If omitted, will return all\
          \ columns.\n\nNote that this method will always return item keys, even when\
          \ not specified, so you may receive more columns that you expect."
        required: false
        type: "string"
        format: "JSON"
      - name: "count"
        in: "query"
        description: "Number of results to fetch."
        required: false
        type: "number"
        default: 100
        format: "int32"
      - name: "start"
        in: "query"
        description: "Starting point for results."
        required: false
        type: "number"
        default: 0
        format: "int32"
      - name: "reverse"
        in: "query"
        description: "If true, will sort results newest first."
        required: false
        type: "boolean"
        default: false
      - name: "startTime"
        in: "query"
        description: "Starting date filter for results."
        required: false
        type: "string"
        format: "date-time"
      - name: "endTime"
        in: "query"
        description: "Ending date filter for results."
        required: false
        type: "string"
        format: "date-time"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Trade"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /trade/bucketed:
    get:
      tags:
      - "Trade"
      summary: "Get previous trades in time buckets."
      operationId: "Trade.getBucketed"
      parameters:
      - name: "binSize"
        in: "query"
        description: "Time interval to bucket by. Available options: [1m,5m,1h,1d]."
        required: false
        type: "string"
        default: "1m"
      - name: "partial"
        in: "query"
        description: "If true, will send in-progress (incomplete) bins for the current\
          \ time period."
        required: false
        type: "boolean"
        default: false
      - name: "symbol"
        in: "query"
        description: "Instrument symbol. Send a bare series (e.g. XBU) to get data\
          \ for the nearest expiring contract in that series.\n\nYou can also send\
          \ a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`,\
          \ `quarterly`, and `biquarterly`."
        required: false
        type: "string"
      - name: "filter"
        in: "query"
        description: "Generic table filter. Send JSON key/value pairs, such as `{\"\
          key\": \"value\"}`. You can key on individual fields, and do more advanced\
          \ querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters)\
          \ for more details."
        required: false
        type: "string"
        format: "JSON"
      - name: "columns"
        in: "query"
        description: "Array of column names to fetch. If omitted, will return all\
          \ columns.\n\nNote that this method will always return item keys, even when\
          \ not specified, so you may receive more columns that you expect."
        required: false
        type: "string"
        format: "JSON"
      - name: "count"
        in: "query"
        description: "Number of results to fetch."
        required: false
        type: "number"
        default: 100
        format: "int32"
      - name: "start"
        in: "query"
        description: "Starting point for results."
        required: false
        type: "number"
        default: 0
        format: "int32"
      - name: "reverse"
        in: "query"
        description: "If true, will sort results newest first."
        required: false
        type: "boolean"
        default: false
      - name: "startTime"
        in: "query"
        description: "Starting date filter for results."
        required: false
        type: "string"
        format: "date-time"
      - name: "endTime"
        in: "query"
        description: "Ending date filter for results."
        required: false
        type: "string"
        format: "date-time"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/TradeBin"
        400:
          description: "Parameter Error"
          schema:
            $ref: "#/definitions/Error"
        401:
          description: "Unauthorized"
          schema:
            $ref: "#/definitions/Error"
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/Error"
      security: []
  /user/depositAddress:
    get:
      tags:
      - "User"
      summary: "Get a deposit address."
      operationId: "User.getDepositAddress"
      parameters:
      - name: "currency"
        in: "query"
        required: false
        type: "string"
        default: "XBt"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "string"
  /user/wallet:
    get:
      tags:
      - "User"
      summary: "Get your current wallet information."
      operationId: "User.getWallet"
      parameters:
      - name: "currency"
        in: "query"
        required: false
        type: "string"
        default: "XBt"
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/Wallet"
  /user/walletHistory:
    get:
      tags:
      - "User"
      summary: "Get a history of all of your wallet transactions (deposits, withdrawals,\
        \ PNL)."
      operationId: "User.getWalletHistory"
      parameters:
      - name: "currency"
        in: "query"
        required: false
        type: "string"
        default: "XBt"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Transaction"
  /user/walletSummary:
    get:
      tags:
      - "User"
      summary: "Get a summary of all of your wallet transactions (deposits, withdrawals,\
        \ PNL)."
      operationId: "User.getWalletSummary"
      parameters:
      - name: "currency"
        in: "query"
        required: false
        type: "string"
        default: "XBt"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Transaction"
  /user/minWithdrawalFee:
    get:
      tags:
      - "User"
      summary: "Get the minimum withdrawal fee for a currency."
      description: "This is changed based on network conditions to ensure timely withdrawals.\
        \ During network congestion, this may be high. The fee is returned in the\
        \ same currency."
      operationId: "User.minWithdrawalFee"
      parameters:
      - name: "currency"
        in: "query"
        required: false
        type: "string"
        default: "XBt"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "object"
            properties: {}
      security: []
  /user/requestWithdrawal:
    post:
      tags:
      - "User"
      summary: "Request a withdrawal to an external wallet."
      description: "This will send a confirmation email to the email address on record,\
        \ unless requested via an API Key with the `withdraw` permission."
      operationId: "User.requestWithdrawal"
      parameters:
      - name: "otpToken"
        in: "formData"
        description: "2FA token. Required if 2FA is enabled on your account."
        required: false
        type: "string"
      - name: "currency"
        in: "formData"
        description: "Currency you're withdrawing. Options: `XBt`"
        required: true
        type: "string"
        default: "XBt"
      - name: "amount"
        in: "formData"
        description: "Amount of withdrawal currency."
        required: true
        type: "number"
        format: "int64"
      - name: "address"
        in: "formData"
        description: "Destination Address."
        required: true
        type: "string"
      - name: "fee"
        in: "formData"
        description: "Network fee for Bitcoin withdrawals. If not specified, a default\
          \ value will be calculated based on Bitcoin network conditions. You will\
          \ have a chance to confirm this via email."
        required: false
        type: "number"
        format: "double"
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/Transaction"
  /user/cancelWithdrawal:
    post:
      tags:
      - "User"
      summary: "Cancel a withdrawal."
      operationId: "User.cancelWithdrawal"
      parameters:
      - name: "token"
        in: "formData"
        required: true
        type: "string"
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/Transaction"
      security: []
  /user/confirmWithdrawal:
    post:
      tags:
      - "User"
      summary: "Confirm a withdrawal."
      operationId: "User.confirmWithdrawal"
      parameters:
      - name: "token"
        in: "formData"
        required: true
        type: "string"
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/Transaction"
      security: []
  /user/requestEnableTFA:
    post:
      tags:
      - "User"
      summary: "Get secret key for setting up two-factor auth."
      description: "Use /confirmEnableTFA directly for Yubikeys. This fails if TFA\
        \ is already enabled."
      operationId: "User.requestEnableTFA"
      parameters:
      - name: "type"
        in: "formData"
        description: "Two-factor auth type. Supported types: 'GA' (Google Authenticator)"
        required: false
        type: "string"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "boolean"
  /user/confirmEnableTFA:
    post:
      tags:
      - "User"
      summary: "Confirm two-factor auth for this account. If using a Yubikey, simply\
        \ send a token to this endpoint."
      operationId: "User.confirmEnableTFA"
      parameters:
      - name: "type"
        in: "formData"
        description: "Two-factor auth type. Supported types: 'GA' (Google Authenticator),\
          \ 'Yubikey'"
        required: false
        type: "string"
      - name: "token"
        in: "formData"
        description: "Token from your selected TFA type."
        required: true
        type: "string"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "boolean"
  /user/disableTFA:
    post:
      tags:
      - "User"
      summary: "Disable two-factor auth for this account."
      operationId: "User.disableTFA"
      parameters:
      - name: "type"
        in: "formData"
        description: "Two-factor auth type. Supported types: 'GA' (Google Authenticator)"
        required: false
        type: "string"
      - name: "token"
        in: "formData"
        description: "Token from your selected TFA type."
        required: true
        type: "string"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "boolean"
  /user/confirmEmail:
    post:
      tags:
      - "User"
      summary: "Confirm your email address with a token."
      operationId: "User.confirm"
      parameters:
      - name: "token"
        in: "formData"
        required: true
        type: "string"
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/AccessToken"
      security: []
  /user/affiliateStatus:
    get:
      tags:
      - "User"
      summary: "Get your current affiliate/referral status."
      operationId: "User.getAffiliateStatus"
      parameters: []
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/Affiliate"
  /user/checkReferralCode:
    get:
      tags:
      - "User"
      summary: "Check if a referral code is valid."
      description: "If the code is valid, responds with the referral code's discount\
        \ (e.g. `0.1` for 10%). Otherwise, will return a 404."
      operationId: "User.checkReferralCode"
      parameters:
      - name: "referralCode"
        in: "query"
        required: false
        type: "string"
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "number"
            format: "double"
      security: []
  /user/logout:
    post:
      tags:
      - "User"
      summary: "Log out of BitMEX."
      operationId: "User.logout"
      parameters: []
      responses:
        200:
          description: "Request was successful"
      security: []
  /user/logoutAll:
    post:
      tags:
      - "User"
      summary: "Log all systems out of BitMEX. This will revoke all of your account's\
        \ access tokens, logging you out on all devices."
      operationId: "User.logoutAll"
      parameters: []
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "number"
            format: "double"
  /user/preferences:
    post:
      tags:
      - "User"
      summary: "Save user preferences."
      operationId: "User.savePreferences"
      parameters:
      - name: "prefs"
        in: "formData"
        required: true
        type: "string"
        format: "JSON"
      - name: "overwrite"
        in: "formData"
        description: "If true, will overwrite all existing preferences."
        required: false
        type: "boolean"
        default: false
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/User"
  /user:
    get:
      tags:
      - "User"
      summary: "Get your user model."
      operationId: "User.get"
      parameters: []
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/User"
    put:
      tags:
      - "User"
      summary: "Update your password, name, and other attributes."
      operationId: "User.update"
      parameters:
      - name: "firstname"
        in: "formData"
        required: false
        type: "string"
      - name: "lastname"
        in: "formData"
        required: false
        type: "string"
      - name: "oldPassword"
        in: "formData"
        required: false
        type: "string"
      - name: "newPassword"
        in: "formData"
        required: false
        type: "string"
      - name: "newPasswordConfirm"
        in: "formData"
        required: false
        type: "string"
      - name: "username"
        in: "formData"
        description: "Username can only be set once. To reset, email support."
        required: false
        type: "string"
      - name: "country"
        in: "formData"
        description: "Country of residence."
        required: false
        type: "string"
      - name: "pgpPubKey"
        in: "formData"
        description: "PGP Public Key. If specified, automated emails will be sentwith\
          \ this key."
        required: false
        type: "string"
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/User"
  /user/commission:
    get:
      tags:
      - "User"
      summary: "Get your account's commission status."
      operationId: "User.getCommission"
      parameters: []
      responses:
        200:
          description: "Request was successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/UserCommission"
  /user/margin:
    get:
      tags:
      - "User"
      summary: "Get your account's margin status. Send a currency of \"all\" to receive\
        \ an array of all supported currencies."
      operationId: "User.getMargin"
      parameters:
      - name: "currency"
        in: "query"
        required: false
        type: "string"
        default: "XBt"
      responses:
        200:
          description: "Request was successful"
          schema:
            $ref: "#/definitions/Margin"
securityDefinitions:
  apiKey:
    type: "apiKey"
    name: "api-key"
    in: "header"
  apiSignature:
    type: "apiKey"
    name: "api-signature"
    in: "header"
  apiNonce:
    type: "apiKey"
    name: "api-nonce"
    in: "header"
definitions:
  Announcement:
    type: "object"
    required:
    - "id"
    properties:
      id:
        type: "number"
        format: "int32"
        x-dataType: "Double"
      link:
        type: "string"
        x-dataType: "Text"
      title:
        type: "string"
        x-dataType: "Text"
      content:
        type: "string"
        x-dataType: "Text"
      date:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
    description: "Public Announcements"
    example:
      date: "2000-01-23T04:56:07.000+00:00"
      link: "link"
      id: 0.80082819046101150206595775671303272247314453125
      title: "title"
      content: "content"
  Error:
    type: "object"
    required:
    - "error"
    properties:
      error:
        $ref: "#/definitions/Error_error"
        x-dataType: "ErrorError"
  x-any:
    type: "object"
  APIKey:
    type: "object"
    required:
    - "id"
    - "name"
    - "nonce"
    - "secret"
    - "userId"
    properties:
      id:
        type: "string"
        maxLength: 24
        x-dataType: "Text"
      secret:
        type: "string"
        maxLength: 48
        x-dataType: "Text"
      name:
        type: "string"
        maxLength: 64
        x-dataType: "Text"
      nonce:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      cidr:
        type: "string"
        maxLength: 18
        x-dataType: "Text"
      permissions:
        type: "array"
        items:
          $ref: "#/definitions/x-any"
        x-dataType: "[XAny]"
      enabled:
        type: "boolean"
        default: false
        x-dataType: "Bool"
      userId:
        type: "number"
        format: "int32"
        x-dataType: "Double"
      created:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
    description: "Persistent API Keys for Developers"
    example:
      permissions:
      - {}
      - {}
      created: "2000-01-23T04:56:07.000+00:00"
      name: "name"
      cidr: "cidr"
      id: "id"
      secret: "secret"
      nonce: 0.80082819046101150206595775671303272247314453125
      userId: 6.02745618307040320615897144307382404804229736328125
      enabled: false
  Chat:
    type: "object"
    required:
    - "date"
    - "html"
    - "message"
    - "user"
    properties:
      id:
        type: "number"
        format: "int32"
        x-dataType: "Double"
      date:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      user:
        type: "string"
        x-dataType: "Text"
      message:
        type: "string"
        x-dataType: "Text"
      html:
        type: "string"
        x-dataType: "Text"
      fromBot:
        type: "boolean"
        default: false
        x-dataType: "Bool"
      channelID:
        type: "number"
        format: "double"
        x-dataType: "Double"
    description: "Trollbox Data"
    example:
      date: "2000-01-23T04:56:07.000+00:00"
      html: "html"
      id: 0.80082819046101150206595775671303272247314453125
      message: "message"
      user: "user"
      channelID: 6.02745618307040320615897144307382404804229736328125
      fromBot: false
  ChatChannels:
    type: "object"
    required:
    - "name"
    properties:
      id:
        type: "number"
        format: "int32"
        x-dataType: "Double"
      name:
        type: "string"
        x-dataType: "Text"
    example:
      name: "name"
      id: 0.80082819046101150206595775671303272247314453125
  ConnectedUsers:
    type: "object"
    properties:
      users:
        type: "number"
        format: "int32"
        x-dataType: "Double"
      bots:
        type: "number"
        format: "int32"
        x-dataType: "Double"
    example:
      bots: 6.02745618307040320615897144307382404804229736328125
      users: 0.80082819046101150206595775671303272247314453125
  Execution:
    type: "object"
    required:
    - "execID"
    properties:
      execID:
        type: "string"
        format: "guid"
        x-dataType: "Text"
      orderID:
        type: "string"
        format: "guid"
        x-dataType: "Text"
      clOrdID:
        type: "string"
        x-dataType: "Text"
      clOrdLinkID:
        type: "string"
        x-dataType: "Text"
      account:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      symbol:
        type: "string"
        x-dataType: "Text"
      side:
        type: "string"
        x-dataType: "Text"
      lastQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      lastPx:
        type: "number"
        format: "double"
        x-dataType: "Double"
      underlyingLastPx:
        type: "number"
        format: "double"
        x-dataType: "Double"
      lastMkt:
        type: "string"
        x-dataType: "Text"
      lastLiquidityInd:
        type: "string"
        x-dataType: "Text"
      simpleOrderQty:
        type: "number"
        format: "double"
        x-dataType: "Double"
      orderQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      price:
        type: "number"
        format: "double"
        x-dataType: "Double"
      displayQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      stopPx:
        type: "number"
        format: "double"
        x-dataType: "Double"
      pegOffsetValue:
        type: "number"
        format: "double"
        x-dataType: "Double"
      pegPriceType:
        type: "string"
        x-dataType: "Text"
      currency:
        type: "string"
        x-dataType: "Text"
      settlCurrency:
        type: "string"
        x-dataType: "Text"
      execType:
        type: "string"
        x-dataType: "Text"
      ordType:
        type: "string"
        x-dataType: "Text"
      timeInForce:
        type: "string"
        x-dataType: "Text"
      execInst:
        type: "string"
        x-dataType: "Text"
      contingencyType:
        type: "string"
        x-dataType: "Text"
      exDestination:
        type: "string"
        x-dataType: "Text"
      ordStatus:
        type: "string"
        x-dataType: "Text"
      triggered:
        type: "string"
        x-dataType: "Text"
      workingIndicator:
        type: "boolean"
        x-dataType: "Bool"
      ordRejReason:
        type: "string"
        x-dataType: "Text"
      simpleLeavesQty:
        type: "number"
        format: "double"
        x-dataType: "Double"
      leavesQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      simpleCumQty:
        type: "number"
        format: "double"
        x-dataType: "Double"
      cumQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      avgPx:
        type: "number"
        format: "double"
        x-dataType: "Double"
      commission:
        type: "number"
        format: "double"
        x-dataType: "Double"
      tradePublishIndicator:
        type: "string"
        x-dataType: "Text"
      multiLegReportingType:
        type: "string"
        x-dataType: "Text"
      text:
        type: "string"
        x-dataType: "Text"
      trdMatchID:
        type: "string"
        format: "guid"
        x-dataType: "Text"
      execCost:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      execComm:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      homeNotional:
        type: "number"
        format: "double"
        x-dataType: "Double"
      foreignNotional:
        type: "number"
        format: "double"
        x-dataType: "Double"
      transactTime:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      timestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
    description: "Raw Order and Balance Data"
    example:
      symbol: "symbol"
      triggered: "triggered"
      clOrdLinkID: "clOrdLinkID"
      execInst: "execInst"
      homeNotional: 4.9652184929849543237878606305457651615142822265625
      pegOffsetValue: 2.027123023002321833274663731572218239307403564453125
      pegPriceType: "pegPriceType"
      execID: "execID"
      contingencyType: "contingencyType"
      foreignNotional: 5.02500479152029466689555192715488374233245849609375
      lastMkt: "lastMkt"
      simpleCumQty: 1.231513536777255612975068288506008684635162353515625
      execCost: 7.4577447736837658709418974467553198337554931640625
      execComm: 1.173074250955943309548956676735542714595794677734375
      settlCurrency: "settlCurrency"
      ordRejReason: "ordRejReason"
      price: 7.061401241503109105224211816675961017608642578125
      trdMatchID: "trdMatchID"
      orderQty: 2.3021358869347654518833223846741020679473876953125
      currency: "currency"
      commission: 6.8468526983526398765889098285697400569915771484375
      text: "text"
      execType: "execType"
      timeInForce: "timeInForce"
      timestamp: "2000-01-23T04:56:07.000+00:00"
      ordStatus: "ordStatus"
      side: "side"
      simpleOrderQty: 5.63737665663332876420099637471139430999755859375
      orderID: "orderID"
      lastPx: 1.46581298050294517310021547018550336360931396484375
      leavesQty: 7.3862819483858839220147274318151175975799560546875
      cumQty: 1.024645700144157789424070870154537260532379150390625
      tradePublishIndicator: "tradePublishIndicator"
      displayQty: 9.301444243932575517419536481611430644989013671875
      simpleLeavesQty: 4.1456080298839363962315474054776132106781005859375
      clOrdID: "clOrdID"
      lastQty: 6.02745618307040320615897144307382404804229736328125
      avgPx: 1.489415909854170383397331534069962799549102783203125
      multiLegReportingType: "multiLegReportingType"
      workingIndicator: true
      lastLiquidityInd: "lastLiquidityInd"
      transactTime: "2000-01-23T04:56:07.000+00:00"
      exDestination: "exDestination"
      account: 0.80082819046101150206595775671303272247314453125
      underlyingLastPx: 5.962133916683182377482808078639209270477294921875
      stopPx: 3.61607674925191080461672754609026014804840087890625
      ordType: "ordType"
  Funding:
    type: "object"
    required:
    - "symbol"
    - "timestamp"
    properties:
      timestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      symbol:
        type: "string"
        x-dataType: "Text"
      fundingInterval:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      fundingRate:
        type: "number"
        format: "double"
        x-dataType: "Double"
      fundingRateDaily:
        type: "number"
        format: "double"
        x-dataType: "Double"
    description: "Swap Funding History"
    example:
      symbol: "symbol"
      fundingRateDaily: 6.02745618307040320615897144307382404804229736328125
      fundingInterval: "2000-01-23T04:56:07.000+00:00"
      timestamp: "2000-01-23T04:56:07.000+00:00"
      fundingRate: 0.80082819046101150206595775671303272247314453125
  Instrument:
    type: "object"
    required:
    - "symbol"
    properties:
      symbol:
        type: "string"
        x-dataType: "Text"
      rootSymbol:
        type: "string"
        x-dataType: "Text"
      state:
        type: "string"
        x-dataType: "Text"
      typ:
        type: "string"
        x-dataType: "Text"
      listing:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      front:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      expiry:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      settle:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      relistInterval:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      inverseLeg:
        type: "string"
        x-dataType: "Text"
      sellLeg:
        type: "string"
        x-dataType: "Text"
      buyLeg:
        type: "string"
        x-dataType: "Text"
      positionCurrency:
        type: "string"
        x-dataType: "Text"
      underlying:
        type: "string"
        x-dataType: "Text"
      quoteCurrency:
        type: "string"
        x-dataType: "Text"
      underlyingSymbol:
        type: "string"
        x-dataType: "Text"
      reference:
        type: "string"
        x-dataType: "Text"
      referenceSymbol:
        type: "string"
        x-dataType: "Text"
      calcInterval:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      publishInterval:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      publishTime:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      maxOrderQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      maxPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      lotSize:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      tickSize:
        type: "number"
        format: "double"
        x-dataType: "Double"
      multiplier:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      settlCurrency:
        type: "string"
        x-dataType: "Text"
      underlyingToPositionMultiplier:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      underlyingToSettleMultiplier:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      quoteToSettleMultiplier:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      isQuanto:
        type: "boolean"
        x-dataType: "Bool"
      isInverse:
        type: "boolean"
        x-dataType: "Bool"
      initMargin:
        type: "number"
        format: "double"
        x-dataType: "Double"
      maintMargin:
        type: "number"
        format: "double"
        x-dataType: "Double"
      riskLimit:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      riskStep:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      limit:
        type: "number"
        format: "double"
        x-dataType: "Double"
      capped:
        type: "boolean"
        x-dataType: "Bool"
      taxed:
        type: "boolean"
        x-dataType: "Bool"
      deleverage:
        type: "boolean"
        x-dataType: "Bool"
      makerFee:
        type: "number"
        format: "double"
        x-dataType: "Double"
      takerFee:
        type: "number"
        format: "double"
        x-dataType: "Double"
      settlementFee:
        type: "number"
        format: "double"
        x-dataType: "Double"
      insuranceFee:
        type: "number"
        format: "double"
        x-dataType: "Double"
      fundingBaseSymbol:
        type: "string"
        x-dataType: "Text"
      fundingQuoteSymbol:
        type: "string"
        x-dataType: "Text"
      fundingPremiumSymbol:
        type: "string"
        x-dataType: "Text"
      fundingTimestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      fundingInterval:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      fundingRate:
        type: "number"
        format: "double"
        x-dataType: "Double"
      indicativeFundingRate:
        type: "number"
        format: "double"
        x-dataType: "Double"
      rebalanceTimestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      rebalanceInterval:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      openingTimestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      closingTimestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      sessionInterval:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      prevClosePrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      limitDownPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      limitUpPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      bankruptLimitDownPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      bankruptLimitUpPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      prevTotalVolume:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      totalVolume:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      volume:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      volume24h:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      prevTotalTurnover:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      totalTurnover:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      turnover:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      turnover24h:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      prevPrice24h:
        type: "number"
        format: "double"
        x-dataType: "Double"
      vwap:
        type: "number"
        format: "double"
        x-dataType: "Double"
      highPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      lowPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      lastPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      lastPriceProtected:
        type: "number"
        format: "double"
        x-dataType: "Double"
      lastTickDirection:
        type: "string"
        x-dataType: "Text"
      lastChangePcnt:
        type: "number"
        format: "double"
        x-dataType: "Double"
      bidPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      midPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      askPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      impactBidPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      impactMidPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      impactAskPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      hasLiquidity:
        type: "boolean"
        x-dataType: "Bool"
      openInterest:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      openValue:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      fairMethod:
        type: "string"
        x-dataType: "Text"
      fairBasisRate:
        type: "number"
        format: "double"
        x-dataType: "Double"
      fairBasis:
        type: "number"
        format: "double"
        x-dataType: "Double"
      fairPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      markMethod:
        type: "string"
        x-dataType: "Text"
      markPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      indicativeTaxRate:
        type: "number"
        format: "double"
        x-dataType: "Double"
      indicativeSettlePrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      settledPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      timestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
    description: "Tradeable Contracts, Indices, and History"
    example:
      totalVolume: 6.438423552598546706349225132726132869720458984375
      symbol: "symbol"
      capped: true
      vwap: 6.70401929795003592715829654480330646038055419921875
      closingTimestamp: "2000-01-23T04:56:07.000+00:00"
      typ: "typ"
      inverseLeg: "inverseLeg"
      reference: "reference"
      deleverage: true
      prevTotalTurnover: 1.2846590061165319429647979632136411964893341064453125
      riskLimit: 4.1456080298839363962315474054776132106781005859375
      fundingBaseSymbol: "fundingBaseSymbol"
      prevPrice24h: 5.94489560761401580890606055618263781070709228515625
      limit: 1.231513536777255612975068288506008684635162353515625
      highPrice: 3.35319334701124294184637619764544069766998291015625
      fairMethod: "fairMethod"
      taxed: true
      state: "state"
      expiry: "2000-01-23T04:56:07.000+00:00"
      fundingPremiumSymbol: "fundingPremiumSymbol"
      publishInterval: "2000-01-23T04:56:07.000+00:00"
      calcInterval: "2000-01-23T04:56:07.000+00:00"
      lastChangePcnt: 7.05877035158235610623478351044468581676483154296875
      publishTime: "2000-01-23T04:56:07.000+00:00"
      askPrice: 4.6523964329332461176136348512955009937286376953125
      maintMargin: 2.027123023002321833274663731572218239307403564453125
      takerFee: 1.489415909854170383397331534069962799549102783203125
      multiplier: 5.63737665663332876420099637471139430999755859375
      fairBasis: 3.258856561904760695824734284542500972747802734375
      volume24h: 6.96511769763884558415156789124011993408203125
      indicativeTaxRate: 6.6284642750877420525057459599338471889495849609375
      settlementFee: 6.8468526983526398765889098285697400569915771484375
      totalTurnover: 2.884162126668780246063761296682059764862060546875
      turnover24h: 6.87805222012787620400331434211693704128265380859375
      underlying: "underlying"
      quoteToSettleMultiplier: 9.301444243932575517419536481611430644989013671875
      fairPrice: 4.078845849666752343409825698472559452056884765625
      bidPrice: 6.51918095101838179772357761976309120655059814453125
      fundingQuoteSymbol: "fundingQuoteSymbol"
      quoteCurrency: "quoteCurrency"
      volume: 3.557195227068097320710649000830017030239105224609375
      impactMidPrice: 7.7403518187411730622216055053286254405975341796875
      indicativeSettlePrice: 4.258773108174356281097061582840979099273681640625
      sellLeg: "sellLeg"
      settledPrice: 1.0414449161182959269211778519093059003353118896484375
      relistInterval: "2000-01-23T04:56:07.000+00:00"
      maxOrderQty: 0.80082819046101150206595775671303272247314453125
      prevClosePrice: 5.02500479152029466689555192715488374233245849609375
      maxPrice: 6.02745618307040320615897144307382404804229736328125
      underlyingToPositionMultiplier: 2.3021358869347654518833223846741020679473876953125
      hasLiquidity: true
      openInterest: 3.05761002410493443193217899533919990062713623046875
      riskStep: 7.3862819483858839220147274318151175975799560546875
      settle: "2000-01-23T04:56:07.000+00:00"
      isQuanto: true
      buyLeg: "buyLeg"
      rootSymbol: "rootSymbol"
      tickSize: 5.962133916683182377482808078639209270477294921875
      markMethod: "markMethod"
      markPrice: 0.202532411323639305322785730822943150997161865234375
      underlyingSymbol: "underlyingSymbol"
      fundingTimestamp: "2000-01-23T04:56:07.000+00:00"
      settlCurrency: "settlCurrency"
      makerFee: 1.024645700144157789424070870154537260532379150390625
      lowPrice: 3.093745262666447448651751983561553061008453369140625
      underlyingToSettleMultiplier: 7.061401241503109105224211816675961017608642578125
      sessionInterval: "2000-01-23T04:56:07.000+00:00"
      fundingInterval: "2000-01-23T04:56:07.000+00:00"
      listing: "2000-01-23T04:56:07.000+00:00"
      indicativeFundingRate: 4.9652184929849543237878606305457651615142822265625
      bankruptLimitDownPrice: 6.683562403749608193948006373830139636993408203125
      turnover: 6.77832496304801335185175048536621034145355224609375
      positionCurrency: "positionCurrency"
      timestamp: "2000-01-23T04:56:07.000+00:00"
      impactAskPrice: 3.02057969929162428712743349024094641208648681640625
      referenceSymbol: "referenceSymbol"
      limitDownPrice: 9.965781217890562260208753286860883235931396484375
      lastTickDirection: "lastTickDirection"
      openValue: 7.04836565559697003635619694250635802745819091796875
      isInverse: true
      lotSize: 1.46581298050294517310021547018550336360931396484375
      rebalanceTimestamp: "2000-01-23T04:56:07.000+00:00"
      openingTimestamp: "2000-01-23T04:56:07.000+00:00"
      fairBasisRate: 5.5332583970349862312332334113307297229766845703125
      lastPriceProtected: 0.885137473901165261480628032586537301540374755859375
      midPrice: 0.10263654006109401706225980888120830059051513671875
      insuranceFee: 7.4577447736837658709418974467553198337554931640625
      impactBidPrice: 8.9695787981969115065794539987109601497650146484375
      prevTotalVolume: 9.0183481860707832566959041287191212177276611328125
      initMargin: 3.61607674925191080461672754609026014804840087890625
      limitUpPrice: 9.3693102714106686335071572102606296539306640625
      bankruptLimitUpPrice: 8.7620420127490010742121739895083010196685791015625
      front: "2000-01-23T04:56:07.000+00:00"
      rebalanceInterval: "2000-01-23T04:56:07.000+00:00"
      fundingRate: 1.173074250955943309548956676735542714595794677734375
      lastPrice: 7.14353804701230643559028976596891880035400390625
  InstrumentInterval:
    type: "object"
    required:
    - "intervals"
    - "symbols"
    properties:
      intervals:
        type: "array"
        items:
          type: "string"
        x-dataType: "[Text]"
      symbols:
        type: "array"
        items:
          type: "string"
        x-dataType: "[Text]"
    example:
      intervals:
      - "intervals"
      - "intervals"
      symbols:
      - "symbols"
      - "symbols"
  IndexComposite:
    type: "object"
    required:
    - "timestamp"
    properties:
      timestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      symbol:
        type: "string"
        x-dataType: "Text"
      indexSymbol:
        type: "string"
        x-dataType: "Text"
      reference:
        type: "string"
        x-dataType: "Text"
      lastPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      weight:
        type: "number"
        format: "double"
        x-dataType: "Double"
      logged:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
    example:
      reference: "reference"
      symbol: "symbol"
      indexSymbol: "indexSymbol"
      logged: "2000-01-23T04:56:07.000+00:00"
      weight: 6.02745618307040320615897144307382404804229736328125
      timestamp: "2000-01-23T04:56:07.000+00:00"
      lastPrice: 0.80082819046101150206595775671303272247314453125
  Insurance:
    type: "object"
    required:
    - "currency"
    - "timestamp"
    properties:
      currency:
        type: "string"
        x-dataType: "Text"
      timestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      walletBalance:
        type: "number"
        format: "int64"
        x-dataType: "Double"
    description: "Insurance Fund Data"
    example:
      walletBalance: 0.80082819046101150206595775671303272247314453125
      currency: "currency"
      timestamp: "2000-01-23T04:56:07.000+00:00"
  Leaderboard:
    type: "object"
    required:
    - "name"
    properties:
      name:
        type: "string"
        x-dataType: "Text"
      isRealName:
        type: "boolean"
        x-dataType: "Bool"
      isMe:
        type: "boolean"
        x-dataType: "Bool"
      profit:
        type: "number"
        format: "double"
        x-dataType: "Double"
    description: "Information on Top Users"
    example:
      isMe: true
      name: "name"
      isRealName: true
      profit: 0.80082819046101150206595775671303272247314453125
  Liquidation:
    type: "object"
    required:
    - "orderID"
    properties:
      orderID:
        type: "string"
        format: "guid"
        x-dataType: "Text"
      symbol:
        type: "string"
        x-dataType: "Text"
      side:
        type: "string"
        x-dataType: "Text"
      price:
        type: "number"
        format: "double"
        x-dataType: "Double"
      leavesQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
    description: "Active Liquidations"
    example:
      symbol: "symbol"
      side: "side"
      orderID: "orderID"
      price: 0.80082819046101150206595775671303272247314453125
      leavesQty: 6.02745618307040320615897144307382404804229736328125
  Notification:
    type: "object"
    required:
    - "body"
    - "date"
    - "title"
    - "ttl"
    properties:
      id:
        type: "number"
        format: "int32"
        x-dataType: "Double"
      date:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      title:
        type: "string"
        x-dataType: "Text"
      body:
        type: "string"
        x-dataType: "Text"
      ttl:
        type: "number"
        format: "int32"
        x-dataType: "Double"
      type:
        type: "string"
        enum:
        - "success"
        - "error"
        - "info"
        x-dataType: "E'Type"
      closable:
        type: "boolean"
        default: true
        x-dataType: "Bool"
      persist:
        type: "boolean"
        default: true
        x-dataType: "Bool"
      waitForVisibility:
        type: "boolean"
        default: true
        x-dataType: "Bool"
      sound:
        type: "string"
        x-dataType: "Text"
    description: "Account Notifications"
    example:
      date: "2000-01-23T04:56:07.000+00:00"
      waitForVisibility: true
      closable: true
      sound: "sound"
      id: 0.80082819046101150206595775671303272247314453125
      persist: true
      title: "title"
      body: "body"
      type: "success"
      ttl: 6.02745618307040320615897144307382404804229736328125
  Order:
    type: "object"
    required:
    - "orderID"
    properties:
      orderID:
        type: "string"
        format: "guid"
        x-dataType: "Text"
      clOrdID:
        type: "string"
        x-dataType: "Text"
      clOrdLinkID:
        type: "string"
        x-dataType: "Text"
      account:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      symbol:
        type: "string"
        x-dataType: "Text"
      side:
        type: "string"
        x-dataType: "Text"
      simpleOrderQty:
        type: "number"
        format: "double"
        x-dataType: "Double"
      orderQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      price:
        type: "number"
        format: "double"
        x-dataType: "Double"
      displayQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      stopPx:
        type: "number"
        format: "double"
        x-dataType: "Double"
      pegOffsetValue:
        type: "number"
        format: "double"
        x-dataType: "Double"
      pegPriceType:
        type: "string"
        x-dataType: "Text"
      currency:
        type: "string"
        x-dataType: "Text"
      settlCurrency:
        type: "string"
        x-dataType: "Text"
      ordType:
        type: "string"
        x-dataType: "Text"
      timeInForce:
        type: "string"
        x-dataType: "Text"
      execInst:
        type: "string"
        x-dataType: "Text"
      contingencyType:
        type: "string"
        x-dataType: "Text"
      exDestination:
        type: "string"
        x-dataType: "Text"
      ordStatus:
        type: "string"
        x-dataType: "Text"
      triggered:
        type: "string"
        x-dataType: "Text"
      workingIndicator:
        type: "boolean"
        x-dataType: "Bool"
      ordRejReason:
        type: "string"
        x-dataType: "Text"
      simpleLeavesQty:
        type: "number"
        format: "double"
        x-dataType: "Double"
      leavesQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      simpleCumQty:
        type: "number"
        format: "double"
        x-dataType: "Double"
      cumQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      avgPx:
        type: "number"
        format: "double"
        x-dataType: "Double"
      multiLegReportingType:
        type: "string"
        x-dataType: "Text"
      text:
        type: "string"
        x-dataType: "Text"
      transactTime:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      timestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
    description: "Placement, Cancellation, Amending, and History"
    example:
      symbol: "symbol"
      triggered: "triggered"
      clOrdLinkID: "clOrdLinkID"
      execInst: "execInst"
      pegOffsetValue: 7.061401241503109105224211816675961017608642578125
      pegPriceType: "pegPriceType"
      contingencyType: "contingencyType"
      simpleCumQty: 2.027123023002321833274663731572218239307403564453125
      settlCurrency: "settlCurrency"
      ordRejReason: "ordRejReason"
      price: 5.962133916683182377482808078639209270477294921875
      orderQty: 1.46581298050294517310021547018550336360931396484375
      currency: "currency"
      text: "text"
      timeInForce: "timeInForce"
      timestamp: "2000-01-23T04:56:07.000+00:00"
      ordStatus: "ordStatus"
      side: "side"
      simpleOrderQty: 6.02745618307040320615897144307382404804229736328125
      orderID: "orderID"
      leavesQty: 3.61607674925191080461672754609026014804840087890625
      cumQty: 4.1456080298839363962315474054776132106781005859375
      displayQty: 5.63737665663332876420099637471139430999755859375
      simpleLeavesQty: 9.301444243932575517419536481611430644989013671875
      clOrdID: "clOrdID"
      avgPx: 7.3862819483858839220147274318151175975799560546875
      multiLegReportingType: "multiLegReportingType"
      workingIndicator: true
      transactTime: "2000-01-23T04:56:07.000+00:00"
      exDestination: "exDestination"
      account: 0.80082819046101150206595775671303272247314453125
      stopPx: 2.3021358869347654518833223846741020679473876953125
      ordType: "ordType"
  OrderBook:
    type: "object"
    required:
    - "level"
    - "symbol"
    properties:
      symbol:
        type: "string"
        x-dataType: "Text"
      level:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      bidSize:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      bidPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      askPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      askSize:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      timestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
    description: "Level 2 Book Data"
    example:
      symbol: "symbol"
      askPrice: 5.962133916683182377482808078639209270477294921875
      level: 0.80082819046101150206595775671303272247314453125
      bidSize: 6.02745618307040320615897144307382404804229736328125
      bidPrice: 1.46581298050294517310021547018550336360931396484375
      askSize: 5.63737665663332876420099637471139430999755859375
      timestamp: "2000-01-23T04:56:07.000+00:00"
  OrderBookL2:
    type: "object"
    required:
    - "id"
    - "side"
    - "symbol"
    properties:
      symbol:
        type: "string"
        x-dataType: "Text"
      id:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      side:
        type: "string"
        x-dataType: "Text"
      size:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      price:
        type: "number"
        format: "double"
        x-dataType: "Double"
    example:
      symbol: "symbol"
      side: "side"
      size: 6.02745618307040320615897144307382404804229736328125
      price: 1.46581298050294517310021547018550336360931396484375
      id: 0.80082819046101150206595775671303272247314453125
  Position:
    type: "object"
    required:
    - "account"
    - "currency"
    - "symbol"
    properties:
      account:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      symbol:
        type: "string"
        x-dataType: "Text"
      currency:
        type: "string"
        x-dataType: "Text"
      underlying:
        type: "string"
        x-dataType: "Text"
      quoteCurrency:
        type: "string"
        x-dataType: "Text"
      commission:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      initMarginReq:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      maintMarginReq:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      riskLimit:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      leverage:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      crossMargin:
        type: "boolean"
        x-dataType: "Bool"
      deleveragePercentile:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      rebalancedPnl:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      prevRealisedPnl:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      prevUnrealisedPnl:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      prevClosePrice:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      openingTimestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      openingQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      openingCost:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      openingComm:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      openOrderBuyQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      openOrderBuyCost:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      openOrderBuyPremium:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      openOrderSellQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      openOrderSellCost:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      openOrderSellPremium:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      execBuyQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      execBuyCost:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      execSellQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      execSellCost:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      execQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      execCost:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      execComm:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      currentTimestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      currentQty:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      currentCost:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      currentComm:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      realisedCost:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      unrealisedCost:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      grossOpenCost:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      grossOpenPremium:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      grossExecCost:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      isOpen:
        type: "boolean"
        x-dataType: "Bool"
      markPrice:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      markValue:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      riskValue:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      homeNotional:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      foreignNotional:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      posState:
        type: "string"
        x-dataType: "Text"
      posCost:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      posCost2:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      posCross:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      posInit:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      posComm:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      posLoss:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      posMargin:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      posMaint:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      posAllowance:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      taxableMargin:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      initMargin:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      maintMargin:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      sessionMargin:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      targetExcessMargin:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      varMargin:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      realisedGrossPnl:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      realisedTax:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      realisedPnl:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      unrealisedGrossPnl:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      longBankrupt:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      shortBankrupt:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      taxBase:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      indicativeTaxRate:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      indicativeTax:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      unrealisedTax:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      unrealisedPnl:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      unrealisedPnlPcnt:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      unrealisedRoePcnt:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      simpleQty:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      simpleCost:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      simpleValue:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      simplePnl:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      simplePnlPcnt:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      avgCostPrice:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      avgEntryPrice:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      breakEvenPrice:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      marginCallPrice:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      liquidationPrice:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      bankruptPrice:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      timestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      lastPrice:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      lastValue:
        type: "number"
        format: "int64"
        x-dataType: "Double"
    description: "Summary of Open and Closed Positions"
    example:
      symbol: "symbol"
      lastValue: 5.2991435602753593769875806174241006374359130859375
      breakEvenPrice: 1.826870217705811594299802891327999532222747802734375
      avgCostPrice: 8.863729185622826634016746538691222667694091796875
      posLoss: 3.05761002410493443193217899533919990062713623046875
      openOrderSellQty: 1.173074250955943309548956676735542714595794677734375
      avgEntryPrice: 9.2541839462678385785920909256674349308013916015625
      taxBase: 5.5073869641798811613853104063309729099273681640625
      foreignNotional: 6.51918095101838179772357761976309120655059814453125
      execComm: 3.557195227068097320710649000830017030239105224609375
      riskLimit: 5.63737665663332876420099637471139430999755859375
      prevUnrealisedPnl: 2.027123023002321833274663731572218239307403564453125
      longBankrupt: 0.519900201872498524124921459588222205638885498046875
      marginCallPrice: 3.502657762086400783374529055436141788959503173828125
      unrealisedCost: 6.87805222012787620400331434211693704128265380859375
      posComm: 3.02057969929162428712743349024094641208648681640625
      posMaint: 5.5332583970349862312332334113307297229766845703125
      simplePnlPcnt: 4.57393626423225096999658489949069917201995849609375
      execSellCost: 8.7620420127490010742121739895083010196685791015625
      realisedCost: 6.77832496304801335185175048536621034145355224609375
      posInit: 7.7403518187411730622216055053286254405975341796875
      grossExecCost: 3.35319334701124294184637619764544069766998291015625
      posAllowance: 3.258856561904760695824734284542500972747802734375
      targetExcessMargin: 1.0414449161182959269211778519093059003353118896484375
      shortBankrupt: 7.93350688173715123951978966942988336086273193359375
      indicativeTax: 6.07389808578115175663469926803372800350189208984375
      maintMargin: 6.6284642750877420525057459599338471889495849609375
      riskValue: 0.885137473901165261480628032586537301540374755859375
      execBuyCost: 9.3693102714106686335071572102606296539306640625
      grossOpenPremium: 6.70401929795003592715829654480330646038055419921875
      currentCost: 1.2846590061165319429647979632136411964893341064453125
      indicativeTaxRate: 4.863159081028840091676102019846439361572265625
      underlying: "underlying"
      quoteCurrency: "quoteCurrency"
      initMarginReq: 1.46581298050294517310021547018550336360931396484375
      isOpen: true
      posCross: 8.9695787981969115065794539987109601497650146484375
      currentTimestamp: "2000-01-23T04:56:07.000+00:00"
      simpleValue: 8.289659398142969592981899040751159191131591796875
      prevClosePrice: 4.1456080298839363962315474054776132106781005859375
      unrealisedPnlPcnt: 3.901545264248647004734493748401291668415069580078125
      simpleCost: 1.7325933120207193116613098027301020920276641845703125
      execQty: 9.0183481860707832566959041287191212177276611328125
      taxableMargin: 4.078845849666752343409825698472559452056884765625
      openingCost: 1.231513536777255612975068288506008684635162353515625
      realisedGrossPnl: 7.26052126480210358039357743109576404094696044921875
      leverage: 2.3021358869347654518833223846741020679473876953125
      posState: "posState"
      openOrderSellPremium: 5.02500479152029466689555192715488374233245849609375
      simpleQty: 2.940964297482789646664969041012227535247802734375
      openingQty: 7.3862819483858839220147274318151175975799560546875
      homeNotional: 7.05877035158235610623478351044468581676483154296875
      liquidationPrice: 9.1831235947739937586220548837445676326751708984375
      openOrderBuyQty: 1.489415909854170383397331534069962799549102783203125
      unrealisedPnl: 4.4596050349586793259959449642337858676910400390625
      execCost: 6.438423552598546706349225132726132869720458984375
      unrealisedGrossPnl: 9.7029638000235660655334868351928889751434326171875
      markPrice: 3.093745262666447448651751983561553061008453369140625
      posMargin: 7.04836565559697003635619694250635802745819091796875
      unrealisedTax: 8.2516257489237574418439180590212345123291015625
      crossMargin: true
      deleveragePercentile: 7.061401241503109105224211816675961017608642578125
      openOrderBuyCost: 6.8468526983526398765889098285697400569915771484375
      posCost: 0.10263654006109401706225980888120830059051513671875
      currency: "currency"
      commission: 6.02745618307040320615897144307382404804229736328125
      sessionMargin: 4.258773108174356281097061582840979099273681640625
      maintMarginReq: 5.962133916683182377482808078639209270477294921875
      bankruptPrice: 8.761432466225475224064211943186819553375244140625
      openOrderSellCost: 4.9652184929849543237878606305457651615142822265625
      markValue: 7.14353804701230643559028976596891880035400390625
      timestamp: "2000-01-23T04:56:07.000+00:00"
      realisedPnl: 0.8774076871421565559927557842456735670566558837890625
      varMargin: 4.67894798900584873990737833082675933837890625
      realisedTax: 9.132027271330688478201409452594816684722900390625
      rebalancedPnl: 9.301444243932575517419536481611430644989013671875
      openOrderBuyPremium: 7.4577447736837658709418974467553198337554931640625
      posCost2: 4.6523964329332461176136348512955009937286376953125
      openingTimestamp: "2000-01-23T04:56:07.000+00:00"
      currentQty: 6.96511769763884558415156789124011993408203125
      currentComm: 2.884162126668780246063761296682059764862060546875
      execSellQty: 6.683562403749608193948006373830139636993408203125
      grossOpenCost: 5.94489560761401580890606055618263781070709228515625
      prevRealisedPnl: 3.61607674925191080461672754609026014804840087890625
      execBuyQty: 9.965781217890562260208753286860883235931396484375
      initMargin: 0.202532411323639305322785730822943150997161865234375
      unrealisedRoePcnt: 0.434313988241488146968549699522554874420166015625
      simplePnl: 6.623518433804886029747649445198476314544677734375
      account: 0.80082819046101150206595775671303272247314453125
      openingComm: 1.024645700144157789424070870154537260532379150390625
      lastPrice: 0.4182561061793121925944660688401199877262115478515625
  Quote:
    type: "object"
    required:
    - "symbol"
    - "timestamp"
    properties:
      timestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      symbol:
        type: "string"
        x-dataType: "Text"
      bidSize:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      bidPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      askPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      askSize:
        type: "number"
        format: "int64"
        x-dataType: "Double"
    description: "Best Bid/Offer Snapshots & Historical Bins"
    example:
      symbol: "symbol"
      askPrice: 1.46581298050294517310021547018550336360931396484375
      bidSize: 0.80082819046101150206595775671303272247314453125
      bidPrice: 6.02745618307040320615897144307382404804229736328125
      askSize: 5.962133916683182377482808078639209270477294921875
      timestamp: "2000-01-23T04:56:07.000+00:00"
  Settlement:
    type: "object"
    required:
    - "symbol"
    - "timestamp"
    properties:
      timestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      symbol:
        type: "string"
        x-dataType: "Text"
      settlementType:
        type: "string"
        x-dataType: "Text"
      settledPrice:
        type: "number"
        format: "double"
        x-dataType: "Double"
      bankrupt:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      taxBase:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      taxRate:
        type: "number"
        format: "double"
        x-dataType: "Double"
    description: "Historical Settlement Data"
    example:
      settlementType: "settlementType"
      symbol: "symbol"
      taxRate: 5.962133916683182377482808078639209270477294921875
      settledPrice: 0.80082819046101150206595775671303272247314453125
      bankrupt: 6.02745618307040320615897144307382404804229736328125
      timestamp: "2000-01-23T04:56:07.000+00:00"
      taxBase: 1.46581298050294517310021547018550336360931396484375
  Stats:
    type: "object"
    required:
    - "rootSymbol"
    properties:
      rootSymbol:
        type: "string"
        x-dataType: "Text"
      currency:
        type: "string"
        x-dataType: "Text"
      volume24h:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      turnover24h:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      openInterest:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      openValue:
        type: "number"
        format: "int64"
        x-dataType: "Double"
    description: "Exchange Statistics"
    example:
      openInterest: 1.46581298050294517310021547018550336360931396484375
      openValue: 5.962133916683182377482808078639209270477294921875
      volume24h: 0.80082819046101150206595775671303272247314453125
      currency: "currency"
      turnover24h: 6.02745618307040320615897144307382404804229736328125
      rootSymbol: "rootSymbol"
  StatsHistory:
    type: "object"
    required:
    - "date"
    - "rootSymbol"
    properties:
      date:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      rootSymbol:
        type: "string"
        x-dataType: "Text"
      currency:
        type: "string"
        x-dataType: "Text"
      volume:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      turnover:
        type: "number"
        format: "int64"
        x-dataType: "Double"
    example:
      date: "2000-01-23T04:56:07.000+00:00"
      volume: 0.80082819046101150206595775671303272247314453125
      currency: "currency"
      turnover: 6.02745618307040320615897144307382404804229736328125
      rootSymbol: "rootSymbol"
  StatsUSD:
    type: "object"
    required:
    - "rootSymbol"
    properties:
      rootSymbol:
        type: "string"
        x-dataType: "Text"
      currency:
        type: "string"
        x-dataType: "Text"
      turnover24h:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      turnover30d:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      turnover365d:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      turnover:
        type: "number"
        format: "int64"
        x-dataType: "Double"
    example:
      turnover30d: 6.02745618307040320615897144307382404804229736328125
      turnover365d: 1.46581298050294517310021547018550336360931396484375
      currency: "currency"
      turnover24h: 0.80082819046101150206595775671303272247314453125
      turnover: 5.962133916683182377482808078639209270477294921875
      rootSymbol: "rootSymbol"
  Trade:
    type: "object"
    required:
    - "symbol"
    - "timestamp"
    properties:
      timestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      symbol:
        type: "string"
        x-dataType: "Text"
      side:
        type: "string"
        x-dataType: "Text"
      size:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      price:
        type: "number"
        format: "double"
        x-dataType: "Double"
      tickDirection:
        type: "string"
        x-dataType: "Text"
      trdMatchID:
        type: "string"
        format: "guid"
        x-dataType: "Text"
      grossValue:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      homeNotional:
        type: "number"
        format: "double"
        x-dataType: "Double"
      foreignNotional:
        type: "number"
        format: "double"
        x-dataType: "Double"
    description: "Individual & Bucketed Trades"
    example:
      foreignNotional: 5.63737665663332876420099637471139430999755859375
      symbol: "symbol"
      side: "side"
      tickDirection: "tickDirection"
      size: 0.80082819046101150206595775671303272247314453125
      price: 6.02745618307040320615897144307382404804229736328125
      grossValue: 1.46581298050294517310021547018550336360931396484375
      trdMatchID: "trdMatchID"
      homeNotional: 5.962133916683182377482808078639209270477294921875
      timestamp: "2000-01-23T04:56:07.000+00:00"
  TradeBin:
    type: "object"
    required:
    - "symbol"
    - "timestamp"
    properties:
      timestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      symbol:
        type: "string"
        x-dataType: "Text"
      open:
        type: "number"
        format: "double"
        x-dataType: "Double"
      high:
        type: "number"
        format: "double"
        x-dataType: "Double"
      low:
        type: "number"
        format: "double"
        x-dataType: "Double"
      close:
        type: "number"
        format: "double"
        x-dataType: "Double"
      trades:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      volume:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      vwap:
        type: "number"
        format: "double"
        x-dataType: "Double"
      lastSize:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      turnover:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      homeNotional:
        type: "number"
        format: "double"
        x-dataType: "Double"
      foreignNotional:
        type: "number"
        format: "double"
        x-dataType: "Double"
    example:
      symbol: "symbol"
      vwap: 7.061401241503109105224211816675961017608642578125
      trades: 5.63737665663332876420099637471139430999755859375
      homeNotional: 2.027123023002321833274663731572218239307403564453125
      volume: 2.3021358869347654518833223846741020679473876953125
      foreignNotional: 4.1456080298839363962315474054776132106781005859375
      high: 6.02745618307040320615897144307382404804229736328125
      low: 1.46581298050294517310021547018550336360931396484375
      lastSize: 9.301444243932575517419536481611430644989013671875
      close: 5.962133916683182377482808078639209270477294921875
      turnover: 3.61607674925191080461672754609026014804840087890625
      open: 0.80082819046101150206595775671303272247314453125
      timestamp: "2000-01-23T04:56:07.000+00:00"
  Wallet:
    type: "object"
    required:
    - "account"
    - "currency"
    properties:
      account:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      currency:
        type: "string"
        x-dataType: "Text"
      prevDeposited:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      prevWithdrawn:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      prevTransferIn:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      prevTransferOut:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      prevAmount:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      prevTimestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      deltaDeposited:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      deltaWithdrawn:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      deltaTransferIn:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      deltaTransferOut:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      deltaAmount:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      deposited:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      withdrawn:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      transferIn:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      transferOut:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      amount:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      pendingCredit:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      pendingDebit:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      confirmedDebit:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      timestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      addr:
        type: "string"
        x-dataType: "Text"
      script:
        type: "string"
        x-dataType: "Text"
      withdrawalLock:
        type: "array"
        items:
          type: "string"
        x-dataType: "[Text]"
    example:
      deposited: 7.3862819483858839220147274318151175975799560546875
      withdrawn: 1.231513536777255612975068288506008684635162353515625
      deltaDeposited: 7.061401241503109105224211816675961017608642578125
      prevWithdrawn: 1.46581298050294517310021547018550336360931396484375
      deltaWithdrawn: 9.301444243932575517419536481611430644989013671875
      currency: "currency"
      prevAmount: 2.3021358869347654518833223846741020679473876953125
      withdrawalLock:
      - "withdrawalLock"
      - "withdrawalLock"
      addr: "addr"
      prevTimestamp: "2000-01-23T04:56:07.000+00:00"
      timestamp: "2000-01-23T04:56:07.000+00:00"
      transferOut: 1.489415909854170383397331534069962799549102783203125
      deltaAmount: 4.1456080298839363962315474054776132106781005859375
      amount: 6.8468526983526398765889098285697400569915771484375
      pendingDebit: 1.173074250955943309548956676735542714595794677734375
      confirmedDebit: 4.9652184929849543237878606305457651615142822265625
      pendingCredit: 7.4577447736837658709418974467553198337554931640625
      script: "script"
      prevTransferOut: 5.63737665663332876420099637471139430999755859375
      deltaTransferOut: 2.027123023002321833274663731572218239307403564453125
      deltaTransferIn: 3.61607674925191080461672754609026014804840087890625
      transferIn: 1.024645700144157789424070870154537260532379150390625
      prevDeposited: 6.02745618307040320615897144307382404804229736328125
      prevTransferIn: 5.962133916683182377482808078639209270477294921875
      account: 0.80082819046101150206595775671303272247314453125
  Transaction:
    type: "object"
    required:
    - "transactID"
    properties:
      transactID:
        type: "string"
        format: "guid"
        x-dataType: "Text"
      account:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      currency:
        type: "string"
        x-dataType: "Text"
      transactType:
        type: "string"
        x-dataType: "Text"
      amount:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      fee:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      transactStatus:
        type: "string"
        x-dataType: "Text"
      address:
        type: "string"
        x-dataType: "Text"
      tx:
        type: "string"
        x-dataType: "Text"
      text:
        type: "string"
        x-dataType: "Text"
      transactTime:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      timestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
    example:
      amount: 6.02745618307040320615897144307382404804229736328125
      address: "address"
      transactType: "transactType"
      tx: "tx"
      transactID: "transactID"
      fee: 1.46581298050294517310021547018550336360931396484375
      transactTime: "2000-01-23T04:56:07.000+00:00"
      currency: "currency"
      text: "text"
      account: 0.80082819046101150206595775671303272247314453125
      transactStatus: "transactStatus"
      timestamp: "2000-01-23T04:56:07.000+00:00"
  AccessToken:
    type: "object"
    required:
    - "id"
    properties:
      id:
        type: "string"
        x-dataType: "Text"
      ttl:
        type: "number"
        format: "double"
        description: "time to live in seconds (2 weeks by default)"
        default: 1209600
        x-dataType: "Double"
      created:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      userId:
        type: "number"
        format: "double"
        x-dataType: "Double"
    example:
      created: "2000-01-23T04:56:07.000+00:00"
      id: "id"
      ttl: 0.80082819046101150206595775671303272247314453125
      userId: 6.02745618307040320615897144307382404804229736328125
  Affiliate:
    type: "object"
    required:
    - "account"
    - "currency"
    properties:
      account:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      currency:
        type: "string"
        x-dataType: "Text"
      prevPayout:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      prevTurnover:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      prevComm:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      prevTimestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      execTurnover:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      execComm:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      totalReferrals:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      totalTurnover:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      totalComm:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      payoutPcnt:
        type: "number"
        format: "double"
        x-dataType: "Double"
      pendingPayout:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      timestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      referrerAccount:
        type: "number"
        format: "double"
        x-dataType: "Double"
    example:
      execTurnover: 5.63737665663332876420099637471139430999755859375
      totalTurnover: 9.301444243932575517419536481611430644989013671875
      referrerAccount: 7.3862819483858839220147274318151175975799560546875
      execComm: 2.3021358869347654518833223846741020679473876953125
      totalReferrals: 7.061401241503109105224211816675961017608642578125
      currency: "currency"
      pendingPayout: 4.1456080298839363962315474054776132106781005859375
      prevPayout: 6.02745618307040320615897144307382404804229736328125
      prevComm: 5.962133916683182377482808078639209270477294921875
      prevTimestamp: "2000-01-23T04:56:07.000+00:00"
      account: 0.80082819046101150206595775671303272247314453125
      prevTurnover: 1.46581298050294517310021547018550336360931396484375
      totalComm: 3.61607674925191080461672754609026014804840087890625
      payoutPcnt: 2.027123023002321833274663731572218239307403564453125
      timestamp: "2000-01-23T04:56:07.000+00:00"
  User:
    type: "object"
    required:
    - "email"
    - "username"
    properties:
      id:
        type: "number"
        format: "int32"
        x-dataType: "Double"
      ownerId:
        type: "number"
        format: "int32"
        x-dataType: "Double"
      firstname:
        type: "string"
        x-dataType: "Text"
      lastname:
        type: "string"
        x-dataType: "Text"
      username:
        type: "string"
        x-dataType: "Text"
      email:
        type: "string"
        x-dataType: "Text"
      phone:
        type: "string"
        x-dataType: "Text"
      created:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      lastUpdated:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      preferences:
        $ref: "#/definitions/UserPreferences"
        x-dataType: "UserPreferences"
      TFAEnabled:
        type: "string"
        x-dataType: "Text"
      affiliateID:
        type: "string"
        maxLength: 6
        x-dataType: "Text"
      pgpPubKey:
        type: "string"
        maxLength: 16384
        x-dataType: "Text"
      country:
        type: "string"
        maxLength: 3
        x-dataType: "Text"
    description: "Account Operations"
    example:
      country: "country"
      firstname: "firstname"
      preferences:
        hideNotifications:
        - "hideNotifications"
        - "hideNotifications"
        tickerGroup: "tickerGroup"
        animationsEnabled: true
        alertOnLiquidations: true
        locale: "en-US"
        hideConfirmDialogs:
        - "hideConfirmDialogs"
        - "hideConfirmDialogs"
        disableEmails:
        - "disableEmails"
        - "disableEmails"
        sounds:
        - "sounds"
        - "sounds"
        colorTheme: "colorTheme"
        currency: "currency"
        hideNameFromLeaderboard: true
        tradeLayout: "tradeLayout"
        strictTimeout: true
        orderBookBinning: "{}"
        debug: true
        strictIPCheck: false
        msgsSeen:
        - "msgsSeen"
        - "msgsSeen"
        orderControlsPlusMinus: true
        hideConnectionModal: true
        tickerPinned: true
        hideFromLeaderboard: false
        announcementsLastSeen: "2000-01-23T04:56:07.000+00:00"
        orderBookType: "orderBookType"
        orderClearImmediate: false
        chatChannelID: 1.46581298050294517310021547018550336360931396484375
      created: "2000-01-23T04:56:07.000+00:00"
      ownerId: 6.02745618307040320615897144307382404804229736328125
      affiliateID: "affiliateID"
      lastname: "lastname"
      lastUpdated: "2000-01-23T04:56:07.000+00:00"
      phone: "phone"
      TFAEnabled: "TFAEnabled"
      id: 0.80082819046101150206595775671303272247314453125
      email: "email"
      pgpPubKey: "pgpPubKey"
      username: "username"
  UserCommission:
    type: "object"
    properties:
      makerFee:
        type: "number"
        format: "double"
        x-dataType: "Double"
      takerFee:
        type: "number"
        format: "double"
        x-dataType: "Double"
      settlementFee:
        type: "number"
        format: "double"
        x-dataType: "Double"
      maxFee:
        type: "number"
        format: "double"
        x-dataType: "Double"
    example:
      takerFee: 6.02745618307040320615897144307382404804229736328125
      makerFee: 0.80082819046101150206595775671303272247314453125
      settlementFee: 1.46581298050294517310021547018550336360931396484375
      maxFee: 5.962133916683182377482808078639209270477294921875
  Margin:
    type: "object"
    required:
    - "account"
    - "currency"
    properties:
      account:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      currency:
        type: "string"
        x-dataType: "Text"
      riskLimit:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      prevState:
        type: "string"
        x-dataType: "Text"
      state:
        type: "string"
        x-dataType: "Text"
      action:
        type: "string"
        x-dataType: "Text"
      amount:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      pendingCredit:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      pendingDebit:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      confirmedDebit:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      prevRealisedPnl:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      prevUnrealisedPnl:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      grossComm:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      grossOpenCost:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      grossOpenPremium:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      grossExecCost:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      grossMarkValue:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      riskValue:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      taxableMargin:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      initMargin:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      maintMargin:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      sessionMargin:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      targetExcessMargin:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      varMargin:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      realisedPnl:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      unrealisedPnl:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      indicativeTax:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      unrealisedProfit:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      syntheticMargin:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      walletBalance:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      marginBalance:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      marginBalancePcnt:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      marginLeverage:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      marginUsedPcnt:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      excessMargin:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      excessMarginPcnt:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
      availableMargin:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      withdrawableMargin:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      timestamp:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      grossLastValue:
        type: "number"
        format: "int64"
        x-dataType: "Double"
      commission:
        type: "number"
        format: "double"
        default: 0
        x-dataType: "Double"
    example:
      grossMarkValue: 1.231513536777255612975068288506008684635162353515625
      marginUsedPcnt: 2.884162126668780246063761296682059764862060546875
      marginLeverage: 1.2846590061165319429647979632136411964893341064453125
      marginBalancePcnt: 6.96511769763884558415156789124011993408203125
      unrealisedPnl: 9.3693102714106686335071572102606296539306640625
      riskLimit: 6.02745618307040320615897144307382404804229736328125
      prevUnrealisedPnl: 9.301444243932575517419536481611430644989013671875
      walletBalance: 6.438423552598546706349225132726132869720458984375
      grossLastValue: 3.35319334701124294184637619764544069766998291015625
      action: "action"
      currency: "currency"
      commission: 3.093745262666447448651751983561553061008453369140625
      state: "state"
      sessionMargin: 1.173074250955943309548956676735542714595794677734375
      marginBalance: 3.557195227068097320710649000830017030239105224609375
      timestamp: "2000-01-23T04:56:07.000+00:00"
      grossExecCost: 7.3862819483858839220147274318151175975799560546875
      targetExcessMargin: 4.9652184929849543237878606305457651615142822265625
      realisedPnl: 9.965781217890562260208753286860883235931396484375
      varMargin: 5.02500479152029466689555192715488374233245849609375
      indicativeTax: 6.683562403749608193948006373830139636993408203125
      amount: 1.46581298050294517310021547018550336360931396484375
      maintMargin: 7.4577447736837658709418974467553198337554931640625
      pendingDebit: 5.63737665663332876420099637471139430999755859375
      riskValue: 1.024645700144157789424070870154537260532379150390625
      confirmedDebit: 2.3021358869347654518833223846741020679473876953125
      grossComm: 3.61607674925191080461672754609026014804840087890625
      grossOpenPremium: 4.1456080298839363962315474054776132106781005859375
      excessMarginPcnt: 6.87805222012787620400331434211693704128265380859375
      withdrawableMargin: 6.70401929795003592715829654480330646038055419921875
      pendingCredit: 5.962133916683182377482808078639209270477294921875
      grossOpenCost: 2.027123023002321833274663731572218239307403564453125
      prevState: "prevState"
      prevRealisedPnl: 7.061401241503109105224211816675961017608642578125
      excessMargin: 6.77832496304801335185175048536621034145355224609375
      unrealisedProfit: 8.7620420127490010742121739895083010196685791015625
      initMargin: 6.8468526983526398765889098285697400569915771484375
      syntheticMargin: 9.0183481860707832566959041287191212177276611328125
      taxableMargin: 1.489415909854170383397331534069962799549102783203125
      account: 0.80082819046101150206595775671303272247314453125
      availableMargin: 5.94489560761401580890606055618263781070709228515625
  UserPreferences:
    type: "object"
    properties:
      alertOnLiquidations:
        type: "boolean"
        x-dataType: "Bool"
      animationsEnabled:
        type: "boolean"
        x-dataType: "Bool"
      announcementsLastSeen:
        type: "string"
        format: "date-time"
        x-dataType: "DateTime"
      chatChannelID:
        type: "number"
        format: "double"
        x-dataType: "Double"
      colorTheme:
        type: "string"
        x-dataType: "Text"
      currency:
        type: "string"
        x-dataType: "Text"
      debug:
        type: "boolean"
        x-dataType: "Bool"
      disableEmails:
        type: "array"
        items:
          type: "string"
        x-dataType: "[Text]"
      hideConfirmDialogs:
        type: "array"
        items:
          type: "string"
        x-dataType: "[Text]"
      hideConnectionModal:
        type: "boolean"
        x-dataType: "Bool"
      hideFromLeaderboard:
        type: "boolean"
        default: false
        x-dataType: "Bool"
      hideNameFromLeaderboard:
        type: "boolean"
        default: true
        x-dataType: "Bool"
      hideNotifications:
        type: "array"
        items:
          type: "string"
        x-dataType: "[Text]"
      locale:
        type: "string"
        default: "en-US"
        x-dataType: "Text"
      msgsSeen:
        type: "array"
        items:
          type: "string"
        x-dataType: "[Text]"
      orderBookBinning:
        type: "object"
        properties: {}
        x-dataType: "A.Value"
      orderBookType:
        type: "string"
        x-dataType: "Text"
      orderClearImmediate:
        type: "boolean"
        default: false
        x-dataType: "Bool"
      orderControlsPlusMinus:
        type: "boolean"
        x-dataType: "Bool"
      sounds:
        type: "array"
        items:
          type: "string"
        x-dataType: "[Text]"
      strictIPCheck:
        type: "boolean"
        default: false
        x-dataType: "Bool"
      strictTimeout:
        type: "boolean"
        default: true
        x-dataType: "Bool"
      tickerGroup:
        type: "string"
        x-dataType: "Text"
      tickerPinned:
        type: "boolean"
        x-dataType: "Bool"
      tradeLayout:
        type: "string"
        x-dataType: "Text"
    example:
      hideNotifications:
      - "hideNotifications"
      - "hideNotifications"
      tickerGroup: "tickerGroup"
      animationsEnabled: true
      alertOnLiquidations: true
      locale: "en-US"
      hideConfirmDialogs:
      - "hideConfirmDialogs"
      - "hideConfirmDialogs"
      disableEmails:
      - "disableEmails"
      - "disableEmails"
      sounds:
      - "sounds"
      - "sounds"
      colorTheme: "colorTheme"
      currency: "currency"
      hideNameFromLeaderboard: true
      tradeLayout: "tradeLayout"
      strictTimeout: true
      orderBookBinning: "{}"
      debug: true
      strictIPCheck: false
      msgsSeen:
      - "msgsSeen"
      - "msgsSeen"
      orderControlsPlusMinus: true
      hideConnectionModal: true
      tickerPinned: true
      hideFromLeaderboard: false
      announcementsLastSeen: "2000-01-23T04:56:07.000+00:00"
      orderBookType: "orderBookType"
      orderClearImmediate: false
      chatChannelID: 1.46581298050294517310021547018550336360931396484375
  inline_response_200:
    properties:
      success:
        type: "boolean"
        x-dataType: "Bool"
    example:
      success: true
  Error_error:
    properties:
      message:
        type: "string"
        x-dataType: "Text"
      name:
        type: "string"
        x-dataType: "Text"