LoL prop grader.
Every posted line, resolved against the final map.
Why grading LoL props is hard
LoL lines are map-scoped and role-sensitive. Map-1 kills for an ADC is not the same as series kills, and the DFS board that posted the number is gone by the time the nexus falls. A grader has to keep the exact line, the player ID, and the open/close tape.
Practical rule: bind the propId at placement. A player name and a number alone cannot prove which offer you held.
What a graded result row is
A graded row joins the book offer, the exact line that settled, and the finalized kill/death/assist (or team) number — plus open/close when the tape has them.
The grade field
grade is hit, miss, push, pending, or error. Pending means the match is not finalized; error means the evidence was missing.
Grader endpoints
Pull settled grades from GET /v7/lol/results or the v7_results MCP tool with sport=lol.
| Endpoint | Purpose | Key filters |
|---|---|---|
| GET /v7/lol/results | Settled prop and line-odds grades | grade, from, to, book, limit |
| GET /v7/lol/props | Live board — bind propId at placement | book, market |
| GET /v7/lol/players?include=gamelogs | Finalized per-map stats | limit |
| MCP v7_results | Same grades from Cursor or Claude | sport=lol |
IDs that keep a grade honest
- —propId — the book offer; stable while the line moves
- —line_prop_id — the exact line that was graded
- —kr_pl_* / kr_match_id — joins that survive renames
A real graded LoL prop
Live sample: Hans sama under 4.5 kills on map 1, graded a hit on 3. Odds opened -286 and closed -192 — CLV is on the row.
| Field | Example | Used for |
|---|---|---|
| results[].propId | kr_prop_e326b1281796 | The book offer you bound at placement |
| results[].stat_type | LOL_KILLS_MAP_1 | Sport-prefixed, map-scoped market |
| results[].grade | hit | hit | miss | push | pending | error |
| results[].actual_value | 3.0 | Finalized stat the line graded against |
| results[].opening_odds → closing_odds | -286 → -192 | CLV on the same row |
{
"source": "kashrock",
"sport": "lol",
"total": 26579,
"results": [
{
"propId": "kr_prop_e326b1281796",
"line_prop_id": "kr_prop_469c83f6f50a",
"book_name": "thunderpick",
"player_name": "Hans sama",
"canonical_player_id": "kr_pl_de3702f237cb",
"stat_type": "LOL_KILLS_MAP_1",
"line": 4.5,
"direction": "under",
"grade": "hit",
"actual_value": 3,
"team": "G2 Esports",
"opponent": "Dplus",
"event_time": "2026-10-23T20:00:00.000Z",
"graded_at": "2026-10-23T22:14:54.000Z",
"kr_match_id": "kr_lol_dplus-kia-challengers-vs-g2-esports-23-10-2026",
"opening_line": 4.5,
"opening_odds": -286,
"closing_line": 4.5,
"closing_odds": -192
}
]
}Ways to grade LoL props
Stat sites give the final scoreboard. KashRock keeps the book's line and price history beside the grade so Worlds week models measure what was actually offered.
| Source | Schema | Best use |
|---|---|---|
| Book app / screenshots | Today's board only | Bets you remember placing |
| Stat trackers | Final scores, no book lines | Checking one result by hand |
| KashRock results | Normalized rows + open/close tape | Grading every posted line at scale |
How KashRock grades a prop
- —Hit / miss — the map record contained the stat and the line resolved.
- —Push — the stat landed exactly on the threshold.
- —Pending / error — not finalized, or no evidence.
Running a grader in production
- —Bind propId + direction at placement; grades arrive after settlement.
- —LoL grades need Hobby+; Sandbox is CS2 eval only.
- —Filter book, stat_type, or grade=hit|miss|push for hit-rate views.
Quick reference
GET /v7/lol/results returns hit/miss/push with actual_value and open/close. Get your free key to start on Sandbox, then upgrade for LoL.
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.