Parlays
Two modes on one route, on Hobby and above. Pass ticket to price a specific multi-leg slip; omit it to discover ranked parlays. Every leg must price on the one book you name.
Legs are independent main lines only — there is no same-game correlation modelling. Fair price and EV exclude the leg book itself (fair_excludes_leg_book), so a book is never used to grade its own number. Discover returns non-negative-EV parlays by default; an empty result with reason: no_parlays means the board loaded and nothing cleared the bar — add include=all to see negative-EV tickets too.
GET/v7/{sport}/parlays
| Param | Type | Required | Description |
|---|---|---|---|
| sport | path | Yes | Sport slug. |
| book | string | Yes | One line book. All legs must price here. |
| ticket | string | — | Price mode: comma-separated kr_match_id:market:selection. Omit to discover. |
| market | string | — | Main market filter. Default match_winner. |
| size | int | — | Discover only: legs per parlay, 2 or 3. |
| include | string | — | Discover only: all keeps negative-EV parlays. |
| include_started | bool | — | Default false. |
| limit | int | — | 1–100, default 25. |
cURLGET
curl -H "X-API-Key: YOUR_API_KEY" \ "https://kashrock.up.railway.app/v7/cs2/parlays?book=thunderpick&size=2"
200 · live (trimmed)
{
"available": true,
"mode": "discover",
"book": "thunderpick",
"market": "match_winner",
"size": 2,
"total": 14,
"parlays": [
{
"legs": [
{
"kr_match_id": "kr_cs2_fnatic-vs-phantom-07-10-2026",
"market": "match_winner",
"selection": "kr_tm_d60a39d59027",
"name": "Fnatic",
"decimal": 1.4808,
"american": -208,
"fair_probability": 0.628141,
"ev_pct": -6.98,
"placeable": true,
"placeable_basis": "book_price",
"fair_books": [
"1xbet",
"betonline",
"betway",
"dexsport"
],
"fair_excludes_leg_book": true
}
],
"decimal": 2.192769,
"american": 119,
"fair_probability": 0.3972571,
"ev_pct": -12.89,
"price_source": "computed"
}
]
}The line-book set is listed on the V7 reference and the live registry is always /v7/meta.