Skip to main content

The three grains

They nest strictly: one position contains N bets, one bet contains N fills.

Building a portfolio view

Positions. Exposure per market, already netted.

Showing a bet history

Bets. One row per bet the user placed.

Drilling down into fills

Fills. Granular fills for a bet.

Positions

One row per market, netted across all your bets in it. The grain for a portfolio view.

Bets

One row per bet you placed. All the fills for a bet are blended into a single row.

Fills

One row per match against one counterparty. The finest grain, and the only one carrying the price you actually got and the order it came from. Narrow with tradeId for one bet, or orderId for the fills that came from one of your orders.

Realtime equivalents

Each grain has a channel, and they carry the same shapes as the REST rows:

Get your bets

The bet row in full and its filters.

Get your fills

The fill row, its four ids, and the sort order.

Get your positions

Every field, the required-status rule, and realised PnL.

Tracking your orders

Keeping a live view of what is resting on the book.
Last modified on August 20, 2026