Grosvenor API.
Grosvenor esports lines, normalized.
Quick answer: Grosvenor esports odds are live on KashRock: match, map, rounds and kills lines for CS2, Dota 2, League of Legends, Call of Duty and Rainbow Six, on the same canonical ids as the other 81 books. One key, GET /v7/{sport}/lines.
What Grosvenor posts
Grosvenor posts team mainlines: match winner, maps handicap and total maps at series level, plus per-map winners, round handicaps, round and kill totals scoped per map, objective markets and correct-score tables. Every price lands on the same kr_match_id and market names as the rest of the line books.
Where Grosvenor shows up
- : /lines: Grosvenor's price per market next to the consensus fair price, the books object reports its row count and age in seconds on every call.
- : /parlays: Name grosvenor as the leg book and price a ticket or discover +EV parlays against the rest of the market.
- : /flow: When grosvenor moves a number first, the shift and steam plays record which venue led and how far the price ran.
Endpoints
Grosvenor is read through the shared v7 surface: no book-specific integration, no upstream fetch on the request path.
| Endpoint | What it returns | Key filter |
|---|---|---|
| GET /v7/{sport}/lines | Per-book prices and the consensus view | book row: grosvenor |
| GET /v7/{sport}/parlays | Price or discover parlays with grosvenor as the leg book | book=grosvenor |
| GET /v7/{sport}/flow | Steam, shift, volume and whale plays where grosvenor moves lead | kind=steam|shift|volume|whale |
| GET /v7/meta | The registry entry: key, kind, supported markets | key=grosvenor |
Live in the book registry
The real /v7/meta entry: the key, kind, and what the book supports, exactly as the API reports it.
{
"book_id": 502,
"key": "grosvenor",
"display_name": "Grosvenor",
"status": "active",
"aliases": [
"grosvenorcasinos.com",
"grosvenor uk"
]
}Reading it honestly
The booksobject on /lines reports each venue's presence, row count, and age in seconds on every call. When Grosvenor has nothing posted for a board, the response says so instead of hiding the gap: an empty board is an answer, not an error.
Start in minutes
- : Create a key on Pricing : Sandbox is $0; book lines need Hobby and up
- : Call
GET /v7/{sport}/linesand read thegrosvenorrows - : Compare against the consensus fair price on the same
kr_match_id
Quick reference
| Field | Value |
|---|---|
| Book key | book=grosvenor |
| Surfaces | /lines, /parlays, /flow |
| Registry | /v7/meta key=grosvenor |
| Plan | Hobby and up, from $29.99/mo |
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.