BetRivers CA API.
BetRivers CA esports lines, normalized.
Quick answer: BetRivers Canada esports odds are live on KashRock: match winner, map winners, map handicaps, round handicaps and totals for CS2, League of Legends, Dota 2, Call of Duty, Rainbow Six Siege and Overwatch, on the same canonical ids as the other books. One key, GET /v7/{sport}/lines.
What BetRivers CA posts
BetRivers Canada posts team mainlines: match winner, per-map winners, map and round handicaps, total maps and total rounds. Every price lands on the same kr_match_id and market names as the rest of the line books.
Where BetRivers CA shows up
- : /lines: BetRivers CA'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 betrivers_ca as the leg book and price a ticket or discover +EV parlays against the rest of the market.
- : /flow: When betrivers_ca moves a number first, the shift and steam plays record which venue led and how far the price ran.
Endpoints
BetRivers CA 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: betrivers_ca |
| GET /v7/{sport}/parlays | Price or discover parlays with betrivers_ca as the leg book | book=betrivers_ca |
| GET /v7/{sport}/flow | Steam, shift, volume and whale plays where betrivers_ca moves lead | kind=steam|shift|volume|whale |
| GET /v7/meta | The registry entry: key, kind, supported markets | key=betrivers_ca |
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": 801,
"key": "betrivers_ca",
"display_name": "BetRivers CA",
"status": "active",
"aliases": [
"betrivers ca",
"bet rivers ca",
"betrivers.ca",
"on.betrivers.ca"
]
}Reading it honestly
The booksobject on /lines reports each venue's presence, row count, and age in seconds on every call. When BetRivers CA 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 thebetrivers_carows - : Compare against the consensus fair price on the same
kr_match_id
Quick reference
| Field | Value |
|---|---|
| Book key | book=betrivers_ca |
| Surfaces | /lines, /parlays, /flow |
| Registry | /v7/meta key=betrivers_ca |
| 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.