Three nodes record USD-M depth@100ms diff stream, the trade stream, and a 1,000-level REST snapshot every 5 minutes. Two are in Tokyo on different providers and one is in Singapore. A nightly job merges them: an update from a second node only goes in where Binance's update-id chain (pu equals the previous u) stays continuous, and where nodes overlap, their copies have to match, or the day is held back. Anything all three missed goes into a public gap log. The largest trade gap so far: on 2026-08-19 at about 15:28 UTC, all three nodes lost the same 32,153 trades across ten symbols, about 4 to 5.5 seconds' worth depending on the symbol.
A surprise: on 2026-09-25, 848 of the 861 BTCUSDT snapshots our three nodes took landed partway through a diff event. (That count comes from the nodes' raw copies; the published snapshot file carries one node's snapshots.) Replay has to apply that "straddling" event in full, so we tag every snapshot clean, straddle or in_gap.
Try it without an account: `curl https://candlefeed.ai/api/v1/l2/sample` lists the two open days, BTCUSDT and DOTUSDT book data for 2026-10-01. In Python, after `pip install "candlefeed[l2]>=0.3.2"`, run `from candlefeed import CandleFeed` and then `CandleFeed(public=True).download_l2_sample("DOTUSDT", "2026-10-01", "data/")`. That downloads the DOT day (about 100 MB) and checks every file's SHA-256. Sample files, with or without an account, are for internal use under our Terms (https://candlefeed.ai/terms, §5.3), so please don't re-host them. With a free account, the 1st of each month is free for every symbol (10 GiB a month). Pro is $149/mo for the full archive.
Our MCP server, candlefeed-mcp (`pip install candlefeed-mcp`, https://pypi.org/project/candlefeed-mcp/), lets Claude Code or Cursor pull a day and rebuild the book from a prompt; it needs a free API key. There's also a notebook that does it in plain Python on the 2026-10-01 BTCUSDT sample. It uses a free API key too; for a no-account run, swap its download call for `download_l2_sample`: https://candlefeed.ai/examples/l2-free-sample-day/
What's weak: one venue, 25 symbols (10 with history from June 2026, 15 from late September), and we can't backfill what we didn't record. It's also the 100ms stream, not Binance's fastest.