Skip to main content
Pick venues, set your fees, and watch a consolidated book assemble across them — then route an order against it and see where every unit goes.

What you are looking at

This page calls each venue’s public REST order book directly from your browser and applies SORY’s merge, fee and allocation arithmetic — ported from marketdata/aggregator.py and execution/router.py — in JavaScript.It is not the Python package executing. SORY streams over WebSockets, needs a licence key, and reads your negotiated fees. So expect these differences:
  • Depth and timing. One REST snapshot per venue, on demand. SORY holds a live book per venue and re-emits every emit_interval_ms, with anything quiet marked Stale and dropped.
  • Venue minimums. The real router re-allocates around a venue that cannot take its slice, using instrument metadata from load_markets. That metadata is not available here, so slices are shown unrounded.
  • Arithmetic. SORY uses Decimal end to end; the browser has float.
  • Fees. The rates above are an example schedule, not any venue’s published tier.
Nine venues are reachable this way — binance, okx, coinbaseexchange, kraken, bybit, bitstamp, htx, bitget and cryptocom — because they send permissive CORS headers on their public book endpoint. The other fifteen work identically in the package; they just cannot be called from a web page. If a venue shows up as unreachable, it is usually geo-blocking your region, which is exactly what excluded reports in production too.

Things worth trying

Watch the row order change. With a wide enough fee spread, the venue at the top of the raw book is not the venue you should trade — that is the entire argument for SORY existing. See Fees.
It sinks down the all-in book and stops receiving allocations, without disappearing. Nothing is hidden; it is simply no longer the best price.
Set qty to something large. The plan comes back partially allocated with unallocated and a reason — never a quiet short fill. requested == allocated + unallocated, always. See Routing.
The price bound bites and allocation stops at the touch. SORY will not sweep to arbitrary depth, and it will not invent a bound for you.
The consolidated book collapses to that venue’s book, and the others appear under Excluded with a reason. Exclusion is never invisible.

Run it for real

1

Install and set a key

Request a key if you do not have one.
2

Copy the code above

The Copy code button gives you a complete, runnable script with the venues, symbol and fees you selected already filled in.
3

Swap the inline fees for your own

The generated config inlines fees_bps so the snippet runs as-is. In production, point it at a fees.toml holding your negotiated rates:

Quickstart

Install to routed order in five minutes.

Routing

How allocation actually works.

Fees

Why all-in pricing is the only pricing.