thin markets out unless you ask for them.
Volume
volume_24h_usd prefers the venue’s own 24-hour figure. When a venue publishes none, it falls back to the notional of the fills Routeur recorded, and volume_source says which you got:
Where both venues list one outcome (an event’s
twin), volumes and open interest add up and the spread is the better of the two, because that is the venue the outcome would be traded on.
Spread
Spread is the round trip: what it costs to buy a contract and sell it straight back, in dollars of the $1 it pays.
Buying Yes at 55¢ and buying No at 46¢ costs 1, so the round trip is 1¢. The per-side spreads say the same thing from one ladder: on a venue that matches Yes bids against No bids, all three are usually equal.
Grades
liquidity is deep, tradeable or thin, from the fields above:
Both conditions must hold for a grade: a market that traded $30,000 with a 4¢ round trip is
tradeable, not deep. Open interest stands in for a market that is held rather than churned: a large book with a quiet day is still somewhere size can be moved. A market with no round trip, because one side has no ask, is thin however much it traded, since nothing can be bought and sold back at a price we know.
The grade is computed when a response is built, from the latest crawl’s asks. On GET /v1/markets/{venue}/{id}/book the recorded book’s own spread grades the market instead, because it is fresher than the crawl.
What is filtered by default
Lists that suggest something to look at keep only markets that are at leasttradeable, and rank what is left by the money behind it. The filter is applied inside the query, so a thin market is never read only to be dropped:
Search and event listings do not filter: they show thin markets, ranked below the ones that can be traded.
Three parameters change the floor wherever it applies:
include_thin=true resets both floors to zero; either bound can then be set again explicitly, so include_thin=true&max_spread_usd=0.10 shows everything with a round trip of 10¢ or less, whatever it traded.
Book depth fields
Where a market’s order book is recorded (see Order books), five more fields come from the book itself, not the crawl:
They are omitted for markets with no recorded book, and can be older than the crawl’s asks for markets in the polled tier. Compare
book_at with quote.observed_at when it matters.
Example
An MLB total on Kalshi, read fromGET /v1/markets/kalshi/KXMLBTOTAL-26SEP171235MILPIT-9/book (liquidity fields only):
Related
- Order books: where the
book_*fields come from. - Leads: why only tradeable markets become opportunities, and how
depthsizes them. - Quotes and trades: the asks and fills the figures are read from.
- Data freshness: how old each figure can be.