CS2 live odds API.
In-play lines, pushed in real time.
Why this surface exists
In-play CS2 odds move round to round. A feed that can't tell you its own age, or that joins live lines to a different match id, poisons any in-play product.
What the record represents
Live line rows carry kr_match_id, market scope, per-book prices with age in seconds, and the map context for map-scoped markets.
Core endpoints
GET /v7/cs2/lines for board prices, /props for DFS, /live/{game_id}/boxscore for the match state, WS /v7/live/ws for push.
| Endpoint | Purpose | Key filters |
|---|---|---|
| GET /v7/cs2/lines | Live match/map lines | status=live |
| GET /v7/cs2/props | In-play DFS props | stat_type |
| WS /v7/live/ws | Real-time board push | sport=cs2 (Builder+) |
| GET /v7/cs2/live/{game_id}/boxscore | Live K/D/A board | per map |
Canonical IDs
- : kr_match_id
- : propId
- : market_key
- : game_id
Sample payload
A live CS2 map_winner line with two books and per-book age.
| Field | Example | Used for |
|---|---|---|
| age_s | seconds | Per-book staleness |
| market | match_winner|map_winner|… | Scope is explicit |
| consensus | fair price (Hobby+) | De-vigged board view |
{
"available": true,
"sport": "cs2",
"market": "map_winner",
"match": {
"kr_match_id": "kr_cs2_vitality-vs-mouz-04-11-2026",
"status": "live",
"map": 2
},
"books": [
{
"book": "thunderpick",
"outcome": "team2",
"decimal": 2.1,
"age_s": 3
},
{
"book": "kalshi",
"outcome": "team2",
"decimal": 2.04,
"age_s": 7
}
]
}Comparing sources
CS2 line workers across sportsbooks, DFS venues, and prediction markets.
| Source | Schema | Best use |
|---|---|---|
| One book's odds page | Their price only, delayed | Narrow |
| Odds screen scraping | Breaks on layout changes | Fragile |
| KashRock CS2 odds | Whole board on KR ids | Products |
How to use it
In-play offers settle on /v7/cs2/results against the finalized map record.
Operational practices
- : Trust books[].age_s over your own clock
- : Scope filters to the map
- : WebSocket for real-time
Quick reference
GET /v7/cs2/lines?status=live returns in-play lines on canonical match ids. Get your free key.
If you need a normalized feed instead of another UI wrapper, the esports api exposes live boards, schedules, and history on one schema: with the IDs and outcome patterns that keep backtests and grading honest. Start free on Sandbox, or see published pricing.