Call of Duty API.
The CDL, normalized like the rest.
Call of Duty esports runs on the CDL — a franchise league with a compact calendar — and its player data sits behind the same problems as every other title: scattered stats, no public book feed, and identity that breaks on nicknames. KashRock serves the COD player directory, match index and settled prop grades on the same canonical schema as CS2.
Why a COD API needs a schema
COD coverage is concentrated: one franchised league, a dozen teams, maps and modes that change per series. That makes identity easy to get wrong — the same player shows up under different nicks across books, and map-scope rules differ from CS2. The schema handles it the same way.
Practical rule: COD roles matter for props — an SMG's kill line prices differently than an AR's, and the directory carries the role so you don't guess.
What we normalize today
Canonical player, team and match ids with COD-prefixed market keys where books post them. The player directory carries role and franchise team, and prop grades resolve to the same kr_match_id the schedule uses.
Core COD endpoints
Paths under /v7/cod/. Same client and filters as the other eight titles.
| Endpoint | Purpose | Key filters |
|---|---|---|
| GET /v7/cod/players | Player directory — nick, team, role | q, id, include |
| GET /v7/cod/matches | Schedule / live / completed | status, date, team |
| GET /v7/cod/props | DFS player props when listed | book, market |
| GET /v7/cod/results | Settled prop grades (kills, deaths) | grade, from, to |
| GET /v7/cod/teams | Team directory, form, roster | id, q, include |
Canonical IDs
- —kr_pl_* player ids survive nick and roster changes
- —kr_tm_* franchise team ids dedupe org branding
- —kr_match_id joins props, lines and results to one series
Sample COD player record
A real COD directory record — aBeZy on 100 Thieves, role SMG, under one canonical player id.
| Field | Example | Used for |
|---|---|---|
| player_id | kr_pl_643cbe6404f5 | Canonical player key — not the nickname |
| nickname | aBeZy | Display name as books list it |
| team_id | kr_tm_ee907e7666aa | Stable franchise team id |
| role | SMG | SMG / AR / Flex |
{
"source": "kashrock",
"sport": "cod",
"players": [
{
"player_id": "kr_pl_643cbe6404f5",
"nickname": "aBeZy",
"slug": "abezy",
"team": "100 Thieves",
"team_id": "kr_tm_ee907e7666aa",
"role": "SMG"
}
]
}Comparing COD sources
The CDL site and broadcast carry standings context. Use KashRock when you need canonical ids, the match index and settled prop grades in one place.
| Source | Schema | Best use |
|---|---|---|
| CDL site / broadcast | Standings and show context | Editorial |
| Community stat trackers | K/D and mode splits | Research |
| KashRock COD API | Normalized ids + book markets | Apps, grading, models |
Settlement patterns
COD prop grades settle from the match record — kills and deaths markets land on /results with the book's settlement rules version attached.
Operational practices
- —COD boards follow the CDL calendar — expect gaps between events
- —Use /results for settled grades instead of re-scoring yourself
- —Filter players by role when comparing kill markets
Quick reference
GET /v7/cod/players for the directory, /matches for schedule, /results for settled grades. Transparent pricing.
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.