Skip to main content
{
    "method": "subscribe",
    "params": {
        "channel": "level3",
        "symbol": [
            "ALGO/USD",
            "MATIC/USD"
        ],
        "snapshot": true,
        "token": "G38a1tGFzqGiUCmnegBcm8d4nfP3tytiNQz6tkCBYXY"
    }
}
{
    "channel": "level3",
    "type": "snapshot",
    "data": [
        {
            "symbol": "MATIC/USD",
            "checksum": 281817320,
            "bids": [
                {
                    "order_id": "O6ZQNQ-BXL4E-5WGINO",
                    "limit_price": 0.5629,
                    "order_qty": 111.56125344,
                    "timestamp": "2023-10-06T17:35:00.279389650Z"
                },
                {
                    "order_id": "OEP26Y-YAFEF-OFR62B",
                    "limit_price": 0.5625,
                    "order_qty": 6390.19338,
                    "timestamp": "2023-10-06T18:19:55.056070105Z"
                },
                {
                    "order_id": "OKNAY7-67JRK-AIZ4JO",
                    "limit_price": 0.5625,
                    "order_qty": 14084.5,
                    "timestamp": "2023-10-06T18:20:55.357467423Z"
                }
            ],
            "asks": [
                {
                    "order_id": "OLLSXO-HDMT3-BUOKEI",
                    "limit_price": 0.563,
                    "order_qty": 4422.9978357,
                    "timestamp": "2023-10-06T18:18:20.734897896Z"
                },
                {
                    "order_id": "O5SR5W-L7OLY-BLDEJV",
                    "limit_price": 0.563,
                    "order_qty": 420.0,
                    "timestamp": "2023-10-06T18:18:20.738706230Z"
                },
                {
                    "order_id": "OXV6QS-2GG4Q-F4EECM",
                    "limit_price": 0.563,
                    "order_qty": 490.0,
                    "timestamp": "2023-10-06T18:18:21.064657206Z"
                }
            ]
        }
    ]
}
{
    "method": "unsubscribe",
    "params": {
        "channel": "level3",
        "symbol": [
            "ALGO/USD",
            "MATIC/USD"
        ],
        "token": "G38a1tGFzqGiUCmnegBcm8d4nfP3tytiNQz6tkCBYXY"
    }
}

Documentation Index

Fetch the complete documentation index at: https://kraken-sandbox.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

WSSws-l3.kraken.com/v2level3
The level3 channel has an additional level of granularity over the book channel, it provides visibility of individual orders in the book. L3 shows orders resting in the visible order book and it will never be crossed (i.e. no overlapping buy and sell orders). This feed excludes:
  • In-flight orders.
  • Unmatched market orders.
  • Untriggered stop-loss and take-profit orders.
  • Hidden quantity of iceberg orders.
For more detail on maintaining the order book and generating a checksum, see guide.

Subscription limits

The level3 channel is authenticated (i.e. it requires an API token to subscribe) and there are restrictions of the number of symbols and the subscription rate.
  • The total number of symbols per websocket connection is 200. A client can open multiple websockets connections to increase symbol coverage.
  • The subscription rate determined by client tier and order book depth. Standard rate count limit per second is 200 and the pro limit is 500.
  • The counter increase per book depth subscription is given in the table below.
Order Book DepthRate Counter Increase per Symbol
105
10025
1000100
Example: Pro client can subscribe to 100 symbols of 10 depth every second.

Subscribe

Only one subscription to one depth level per symbol is supported, i.e. cannot subscribe to 10 levels and 1000 levels of “BTC/USD”.
method
string
required
Value: subscribe
params
object
required
req_id
integer
Optional client originated request identifier sent as acknowledgment in the response.

Snapshot

channel
string
Value: level3
type
string
One of: snapshot
data
object[]

Update

  • The updates will be streamed following the initial snapshot, no sequencing is required.
  • The L3 channel is not throttled, updates will be provided in the real-time.
  • If a price level is removed from the subscribed levels (i.e. result of trades/cancels) then all orders in the next available level will generate an add event.

Maintaining the book

After each update, the book should be truncated to your subscribed depth, there will be no delete event for price levels that fall out of scope. In other words, if you are subscribed with depth of 10 and an insert into the book results in 11 bids, you must remove the 11th worst bid.
channel
string
Value: level3
type
string
One of: update
data
object[]

Unsubscribe

method
string
required
Value: unsubscribe
params
object
required
req_id
integer
Optional client originated request identifier sent as acknowledgment in the response.