Steam moves and line shifts: the esports flow API
Every price on a board tells you where the market is. The interesting question is where it just came from — and who moved it first. GET /v7/{sport}/flow answers that: four kinds of movement plays across the whole line-book set, each carrying the thresholds it had to clear.
Four kinds of movement
volume is real trade volume behind a move. shift is a single book moving its number. steam is the market moving together — the classic steam chase. whale flags large-size plays where a venue exposes trade-level data. kind=all is the default; filter with kind=steam and friends.
curl -H "X-API-Key: YOUR_KEY" \ "https://kashrock.up.railway.app/v7/cs2/flow?kind=steam"
What a play looks like
{
"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_source": "betway",
"steam_american_delta": 1000
}This play says the Map 3 price on Aurora Gaming moved 1000 points of American odds, and the best remaining price sits at Betway. Every play carries the kr_match_id it belongs to and a stable kr_flow_* id — so you can join it back to the match, log it, and replay why it fired.
Auditable, not a bare alert
Most movement feeds hand you a signal and a vibe. Flow hands you the movement delta that tripped the threshold alongside the play — if a steam flag says the market ran 1000 points, the number is right there to check against the tape on /v7/{sport}/history.
Full contract on the flow endpoint docs and the odds movement API page.
KashRock is an independent data provider, not a sportsbook. Data is for informational and analytical use.