Deadlock API.
Valve's newest title, on the same schema.
Deadlock's competitive scene is young — grassroots tournaments and collegiate series — so structured match data barely exists outside scattered organizers. KashRock indexes Deadlock on the same schema as the other eight titles: canonical match and team ids, boxscores, and book markets the moment a venue lists them.
Why Deadlock data needs a schema
Deadlock has no mature data ecosystem — no PandaScore-style incumbent, no dominant stats site. Building on KashRock means the day books start posting Deadlock, your integration is already done: same endpoints, same ids, same schema as the titles you already read.
Practical rule: new titles are where early coverage compounds — a match index that started on day one is worth more than one that starts when the scene is big.
What we normalize today
Match/series structure, canonical team and match ids, and the same response envelope as every other sport. Book markets, when posted, arrive with market_scope and included_maps like everywhere else.
Core Deadlock endpoints
Paths under /v7/deadlock/. Same client and filters as CS2 — nothing new to learn.
| Endpoint | Purpose | Key filters |
|---|---|---|
| GET /v7/deadlock/matches | Schedule / live / completed | status, date, team |
| GET /v7/deadlock/teams | Team directory & records | id, q, include |
| GET /v7/deadlock/lines | Team lines when books list them (Hobby+) | market, view |
| GET /v7/deadlock/props | DFS player props when listed | book, market |
| GET /v7/deadlock/history | Stored contract & lines tapes (Builder+) | kind, match |
Canonical IDs
- —kr_match_id stays valid permanently — provisional ids resolve when the schedule confirms
- —kr_tm_* team ids dedupe organizer name variants
- —boxscore_available flags whether per-map detail exists
Sample Deadlock match
A real finished Deadlock series from the match index — Ohlone Renegades vs University of Toronto, with boxscore available.
| Field | Example | Used for |
|---|---|---|
| kr_match_id | kr_deadlock_ohlone-renegades-vs-… | Permanent canonical match id |
| status | finished | not_started / live / finished |
| boxscore_available | true | Per-map detail exists |
| team1_id | kr_tm_c44867d261c5 | Stable team key |
{
"source": "kashrock",
"sport": "deadlock",
"matches": [
{
"kr_match_id": "kr_deadlock_ohlone-renegades-vs-university-of-toronto-11-07-2026",
"slug": "ohlone-renegades-vs-university-of-toronto-11-07-2026",
"status": "finished",
"event_time": "2026-07-11T00:00:00+00:00",
"team1": "University of Toronto",
"team2": "Ohlone Renegades",
"team1_id": "kr_tm_c44867d261c5",
"team2_id": "kr_tm_aa8efad139fb",
"boxscore_available": true
}
]
}Comparing Deadlock sources
Community stat trackers cover hero-level metrics. Use KashRock for the canonical match record and for book markets as they come online.
| Source | Schema | Best use |
|---|---|---|
| Tracklock / stat sites | Hero and match metrics | Player-level context |
| Tournament discords | Fixtures by hand | Nothing |
| KashRock Deadlock API | Normalized matches + IDs | Apps, records, markets |
Settlement patterns
When books list Deadlock markets, they grade under the same settlement-rules machinery as CS2 — the offer, the rules version and the map record all land on /results.
Operational practices
- —Boards are thin while the scene is grassroots — treat empty as real, not an error
- —Poll /matches?status=finished for the growing history index
- —Same cache discipline as the bigger titles
Quick reference
GET /v7/deadlock/matches for the index, /teams for records, /lines when books post. 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.