Every prop offer lands here after the match: hit, miss, push or void, the actual stat, opening and closing line, and the settlement rules version that graded it — joined to the same kr_match_id the rest of the API uses.
A real grade from production — m0NESY over 5.5 headshots on map 2, settled hit at 9 under Betway's settlement rules.
Grading runs against the box-score record under each book's own rules version — settlement_rules_version is on the row, so a push on one book and a hit on another is explainable, not a bug.
{
"available": true,
"sport": "cs2",
"total": 653,
"results": [
{
"propId": "kr_prop_800df52e348a",
"player_name": "m0NESY",
"stat_type": "CS2_HEADSHOTS_MAP_2",
"line": 5.5,
"direction": "over",
"book_name": "betway",
"team": "Falcons",
"opponent": "Natus Vincere",
"grade": "hit",
"actual_value": 9,
"opening_line": 5.5,
"opening_odds": -200,
"closing_line": 5.5,
"closing_odds": -200,
"settlement_rules_version": "betway_cs2_map_stats_v1",
"kr_match_id": "kr_cs2_natus-vincere-vs-team-falcons-06-10-2026",
"graded_at": "2026-10-06T23:32:39.738952+00:00"
}
]
}grade hit/miss/push/void plus actual_value — the real stat from the map record, not a screenshot.
opening and closing line and odds on the row — CLV per pick without a tape rebuild.
settlement_rules_version names the exact rules that graded it — book-specific, never averaged.
Settled offers — hit, miss, push, pending or void — with the actual stat, the line you graded against, and the book's settlement rules version. Filter by grade= and by graded_at with from=/to=. Every row carries the propId, the kr_match_id it settled on, and the canonical player or team id.
Yes — each row carries opening_line/opening_odds and closing_line/closing_odds where the quote tape has them, so you can measure whether a pick beat the close without rebuilding the tape yourself.
Kills, deaths, assists, headshots, ADR and first kills across CS2, Valorant, League of Legends, Dota 2, Call of Duty and Rainbow Six — the titles with a wired grading source. Grades come from live and vault box-score data, not self-reported results.
A voided offer comes back with grade: void and a notes reason — a map that didn't play, a rules-version change — so backtests don't silently count it as a miss.
Results is on the free Sandbox tier — 500 requests every UTC day, every graded sport.