Skip to main content
One order book across every venue you trade. One call to send an order to the cheapest of them.
That is the whole integration. No adapters to write, no per-venue quirks to learn, no WebSocket plumbing.

Quickstart

Running in five minutes.

Playground

Try it on live books.

Venues

24 venues, one string each.

Why quoted prices are the wrong number

The venue with the best price on screen is often not the cheapest place to trade, because you pay a different fee on each one. Venue A looks cheaper and costs more. Give SORY your fees and it compares what you actually pay, everywhere.

Two things, done properly

Market data

Every venue’s book, merged into one. Dead feeds drop out on their own.

Execution

Send an order and get back exactly what went where, and why.
SORY is not an OEMS. No balances, no positions, no PnL, no database, no state on disk. It plugs into the system that already has those.

What people build with it

Best execution

Sweep the cheapest liquidity instead of guessing which venue is cheapest.

Arbitrage

One book, every venue — the spread you see is the spread you get.

Hedging

Fill on one venue, hedge across the others in a single call.

Market making

Quote passively, hedge the fill.

Promises it keeps

Each of these is enforced by a test, not a good intention.
A feed that stops publishing is marked stale and drops out of the book and out of routing, with the reason attached. A socket that stays open while delivering nothing is what fills an order far away from where you expected.
What you asked for always equals what was filled plus what was not, with a reason for the difference. A slice too small for one venue moves to another instead of vanishing.
cancel returns once every venue has confirmed, not once the requests were sent.
SORY uses the rates you give it, never a venue’s published retail tier. If you ask it to apply a fee it does not have, it stops rather than using zero.
Every price, size and fee is a Decimal.