There is a single REST call to get the initial snapshot of the order book, and a single websocket subscribe call to subscribe to level 2 order book updates.
...
Websocket subscribe ... an interesting solution, so from the outside of the bot ... but it probably has to be done by another bot anyway, because how else can the orderbook be kept up-to-date?
...
A bot can subscribe to two real-time order books (for example Kraken BTC-USD and Coinbase Pro BTC-USD), and calculate spreads every 25ms over the course of 48 hours with only two REST calls and two websocket subscribes. API limits truly aren't an issue. ...
Why 48 hours or is it a limit?
I do not really understand how it is possible that API query limits are not a problem I have not heard that exchanges offer datafeed services through other channels so probably using API is necessary to receive the current orderbook .... am I wrong?