Esports Data Analytics API
KashRock is an enterprise esports data analytics platform — normalized event schedules, market props, player game logs, outcome verification, and media with stable IDs.
Event Schedules
Upcoming, live, and completed esports event schedules with normalized data structures.
Market Props
Normalized statistical metrics and market props across all major esports titles and data providers.
Player Game Logs
Comprehensive player statistics and historical performance data.
Outcome Verification
Automated data integrity checks (verified/unmatched/push) for all statistical props with result processing.
Player headshots + team logos
High-quality media assets for all players and teams across every supported title.
Quick Start
Use any standard HTTP client to access our endpoints. All requests must be made over HTTPS.
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://backend.kashrock.com/v6/esports/matches?discipline=cs2"Authentication
KashRock uses API keys to authenticate requests. You can view and manage your API keys in theConsole.
Your API keys carry significant privileges. Please keep them secure and do not share them in publicly accessible areas such as GitHub or client-side code.
Fixtures
Retrieve live and scheduled fixtures across all supported esports disciplines.
| Param | Type | Description |
|---|---|---|
| sport | string | One of: cs2, valorant, lol, dota2 |
| status | string | Filter by status: upcoming, live, finished |
{
"source": "kashrock",
"sport": "cs2",
"fixtures": [
{
"fixture_id": "fix_1447265",
"discipline": "cs2",
"status": "finished",
"event_time": "2026-04-19T21:03:37Z",
"competition": "CCT South America",
"team1": "Vasco Esports",
"team2": "UNO MILLE",
"score1": 0,
"score2": 2,
"best_of": 3,
"has_streams": true,
"streams": [
{
"language": "en",
"raw_url": "https://kick.com/cct_cs6",
"official": true
}
]
}
]
}Rankings
Current player rankings for a given discipline, sourced and normalized by KashRock.
| Param | Type | Description |
|---|---|---|
| sport | string | Required. e.g. cs2, valorant |
| limit | integer | Max results to return (default 50) |
{
"source": "kashrock",
"sport": "cs2",
"rankings": [
{
"rank": 1,
"player_id": 3,
"nickname": "s1mple",
"team": "NAVI",
"rating": 1.31,
"maps_played": 84,
"country": "UA"
}
],
"total": 50,
"generated_at": "2026-04-20T19:00:52Z"
}Player Profile
Fetch a player's profile including team, performance rating, and social links.
| Param | Type | Description |
|---|---|---|
| sport | string | Required. e.g. cs2 |
| limit | integer | Max results to return |
{
"source": "kashrock",
"players": [
{
"player_id": 17497,
"nickname": "FalleN",
"first_name": "Gabriel",
"last_name": "Toledo",
"slug": "fallen",
"team_id": 648,
"rank": 86,
"six_month_avg_rating": 5.51,
"country_id": 14,
"social": {
"twitter": "@FalleNCS",
"twitch": "gafallen",
"instagram": "fallen"
}
}
]
}Props
Normalized market props across 10+ sportsbooks into a single canonical system with hit/miss tracking.
| Param | Type | Description |
|---|---|---|
| sport | string | Required. e.g. cs2, valorant |
| limit | integer | Max props to return |
{
"source": "kashrock",
"sport": "cs2",
"props": [
{
"prop_id": "kr_prop_5992b0df9d7afc33",
"player_name": "fear",
"stat_type": "ESPORTS_KILLS_MAPS_1_2",
"prop_value": 25.5,
"direction": "over",
"actual_value": 28,
"status": "hit",
"team": "Fnatic",
"opponent": "G2",
"event_time": "2026-04-21T13:30:00Z",
"links": {
"bet": "https://app.prizepicks.com/"
}
}
]
}Active Markets Dictionary
An exhaustive list of all officially supported stat canonicalization mappings. Use stat_type identifiers when filtering props.
ID System
Every prop response contains five IDs. Each operates at a different layer and serves a distinct purpose.
| Field | Example | Layer | Purpose |
|---|---|---|---|
| eventId | kr_event_dd6a... | Match | Canonical ID for a game. Identical across every book offering that same match — use this to group or deduplicate by event. |
| propId | kr_prop_5992... | Market | Canonical ID for a player market (player + stat + line). Shared by the Over and Under — use this to compare the same bet across multiple books. |
| offerId | kr_prop_5992..._2_over | Selection | Unique per book + direction. Use this as the key when tracking a specific bet selection or building a bet slip. |
| source_event_id | evt_646491... | Provider | The raw event ID from the upstream provider (e.g. PrizePicks, Underdog). Useful for debugging or cross-referencing against a provider's own API. |
| source_prop_id | prop_b60b2e... | Provider | The raw prop ID from the upstream provider. Allows tracing a KashRock prop back to its original source record. |
How they relate
One eventId maps to many propIds (one per player market in that match). One propId maps to many offerIds (one per book × direction). The kr_ IDs are deterministic hashes, so the same match will always produce the same eventId regardless of which book surfaced it.
Error Codes
All API errors return standard HTTP status codes with a JSON body containing a detail field.
| Status | Name | Description |
|---|---|---|
| 401 | Unauthorized | Missing or invalid Bearer token. Verify your API key. |
| 403 | Forbidden | Your API key does not have permission to access this resource. |
| 422 | Validation Error | A required parameter is missing or has an invalid value. |
| 429 | Rate Limited | Too many requests. Slow down and retry after a short delay. |
| 503 | Service Unavailable | Workers are re-indexing live data. Retry in 60 seconds. |