Updates of first 10 / 50 / 100 orders from orderbook. If one of order will be deleted - the push with existing order will be send to keep constant limit of orders on user's side.

{
  "action": "subscribe-public",
  "module": "trading",
  "path": "orderbook-limited/{market_code}/{limit}"
}
{
  "topic": "trading/orderbook-limited/game-pln/10",
  "message": {
    "changes": [
      {
        "marketCode": "GAME-PLN",
        "entryType": "Buy",
        "rate": "10",
        "action": "update",
        "state": {
          "ra": "10",
          "ca": "6",
          "sa": "6",
          "pa": "6",
          "co": 2
        }
      }
    ],
    "timestamp": "1563280204658"
  },
  "timestamp": "1563280204658",
  "seqNo": 5
}
{
  "requestId": "78539fe0-e9b0-4e4e-8c86-70b36aa93d4f",
  "action": "proxy",
  "module": "trading",
  "path": "orderbook-limited/{market_code}/{limit}"
}
{
  "requestId": "78539fe0-e9b0-4e4e-8c86-70b36aa93d4f",
  "statusCode": 200,
  "body": {
    "status": "Ok",
    "sell": [
      {
        "ra": "39500",
        "ca": "0.55345108",
        "sa": "0.55345108",
        "pa": "0.55345108",
        "co": 1
      }
    ],
    "buy": [
      {
        "ra": "39256.01",
        "ca": "0.3468",
        "sa": "0.3468",
        "pa": "0.3468",
        "co": 1
      }
    ],
    "timestamp": "1566468343707",
    "seqNo": "1978936"
  }
}

📘

Implementation example

To keep the order of receiving pushes and data consistency should be implemented the following mechanism:

  • Connect to the channel and save every push on temporary list.
  • Get the current snapshot of previous connected channel and save whole response to the target structure.
  • Update structure with temporary list, starting with 1 value greater of seqNo than downloaded snapshot.
  • For each update - check if seqNo is 1 more greater than previous message and clear temporary list after each successful update on structure.
  • If temporary list will not be clearing it will be the fault of lost push and need to repeat the whole process from the beginning.

Values of the seqNo are individual for each limits: 10 / 50 / 100 and are consistent for snapshot and websocket channel.

Response details

KeyTypeDescription
changesarray
mmarketCodestringSymbol of the market.
entryTypestringOrder type: buy / sell.
ratedecimalPrice of the order.
actionstringType of change: remove / update. If update will occur you are going to get additional array of state.
statearrayOptional array for active orders.
* ra decimalPrice of the order.
* ca decimalCurrent amount of cryptocurrency in the order.
* sa decimalStarting amount of cryptocurrency in the order.
* pa decimalAmount of cryptocurrency before the last change.
* co decimalAmount of orders in the order.
timestampUnix TimestampTime of execute on server. For this time all above values are actual.