Esports Odds Movement API.
Steam, shifts, volume — with receipts.

Where a price moved, how far it ran, and which venue led it. Every play carries the thresholds it cleared, so a signal is auditable instead of a bare alert.

GET /v7/cs2/flow?kind=steam

A real steam play from production — the market, the size of the move, and the book holding the best remaining price.

Each play carries a kr_flow_* id, the kr_match_id it belongs to, and the movement delta that tripped it — so you can replay why it fired. Filter with kind=volume|shift|steam|whale.

GET /v7/cs2/flow?kind=steam
{
  "available": true,
  "sport": "cs2",
  "kind": "all",
  "total": 5,
  "plays": [
    {
      "play_id": "kr_flow_048788019ee10016",
      "kind": "steam",
      "kr_match_id": "kr_cs2_aurora-gaming-vs-betboom-team-05-10-2026",
      "market": "Map 3 Winner",
      "selection": "Aurora Gaming",
      "best_american": -1000,
      "best_decimal": 1.1,
      "best_source": "betway",
      "steam_american_delta": 1000
    }
  ]
}

Four kinds of movement

Frequently asked questions

What is a steam move in esports betting?

A steam move is when the same price moves in the same direction across multiple books at once — usually respected money hitting the market. The flow endpoint flags these as kind=steam with the size of the move attached, so you can see how far the number ran and which venue led it.

What kinds of movement plays does the API return?

Four kinds, filterable with kind=: volume (trade-level volume behind a move), shift (a single book moving its number), steam (the market moving together), and whale (large-size plays). kind=all is the default.

What does each play include?

A stable kr_flow_* play id, the kind, the kr_match_id and market it fired on, the selection, the best current price and the book holding it, plus the movement delta that tripped the threshold — enough to audit why a play was flagged instead of trusting a bare signal.

Why does a call sometimes return an empty list?

Movement plays only exist when a market actually cleared the thresholds — an empty board is a real answer, not an error. The response carries available and reason so you can tell a quiet market apart from a failed fetch.

Which books does movement tracking cover?

Every line book in the registry — bet365, Pinnacle, Bovada, Betway, 1xBet, BetOnline, BetRivers, Cloudbet, Courtside, Dexsport, GG.bet, Picklebet, Thunderpick, Kalshi, Polymarket, PrizePicks, Sleeper and Underdog.

Which plan do I need?

Flow is on Hobby and above — from $29/mo — across CS2, Valorant, League of Legends, Dota 2, Call of Duty, Rainbow Six, Mobile Legends and Deadlock.