Deadlock API
Community API, not Valve. Everything below is run by the community and is neither affiliated with nor endorsed by Valve. It broke for weeks in September 2024 when Valve tightened rate limits, and can break again without notice. Provenance and caveats: note 0010, note 0011.
Base URL https://api.deadlock-api.com ·
upstream interactive docs ·
source ·
spec https://api.deadlock-api.com/openapi.json
Patches 3
Endpoints that return data about game patches.
GET /v1/patches Notes deprecated
Deprecated: Use /v2/patches instead, which returns a unified feed combining the Forum changelog and the Steam news feed.
Returns the parsed result of the RSS Feed from the official Forum.
RSS-Feed: https://forums.playdeadlock.com/forums/changelog.10/index.rss
Returns Patch[]
authorstringcategoryPatchCategorycontent_encodedstringdc_creatorstringguidPatchGuidlinkstringpub_datestringslash_commentsstringtitlestring
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/patches"GET /v1/patches/big-days Big Days
Returns a list of dates where Deadlock's "big" patch days were, usually bi-weekly. The exact date is the time when the announcement forum post was published.
This list is manually maintained, and so new patch dates may be delayed by a few hours.
Returns string[]
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/patches/big-days"GET /v2/patches Notes
Returns a unified feed combining patch notes from the official Forum changelog and the Steam news feed.
Each entry is tagged with a source field (forum or steam).
- Forum RSS: https://forums.playdeadlock.com/forums/changelog.10/index.rss
- Steam News RSS: https://store.steampowered.com/feeds/news/app/1422450/
Returns FeedItem[]
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v2/patches"Matches 10
Comprehensive match data endpoints for retrieving detailed information about games.
GET /v1/matches/active Active
Returns active matches that are currently being played.
Fetched from the watch tab in game, which is limited to the top 200 matches.
| name | in | type | required |
|---|---|---|---|
account_id | query | int32 | no |
account_ids | query | int32[] | no |
Returns ActiveMatch[]
compat_version?int32duration_s?int32game_mode?int32game_mode_parsed?ActiveMatchGameModegame_mode_version?int32lobby_id?int64match_id?int64match_mode?int32match_mode_parsed?ActiveMatchModematch_score?int32net_worth_team_0?int32net_worth_team_1?int32objectives_mask_team0?int64objectives_mask_team1?int64open_spectator_slots?int32playersActiveMatchPlayer[]region_mode?int32region_mode_parsed?RegionModespectators?int32start_time?int32winning_team?int32winning_team_parsed?ActiveMatchTeam
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/matches/active"GET /v1/matches/active/raw Active as Protobuf
Returns active matches that are currently being played, serialized as protobuf message.
Fetched from the watch tab in game, which is limited to the top 200 matches.
You have to decode the protobuf message.
Protobuf definitions can be found here: https://github.com/SteamDatabase/Protobufs
Relevant Protobuf Message:
- CMsgClientToGcGetActiveMatchesResponse
Returns int32[]
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/matches/active/raw"GET /v1/matches/live/urls Live Broadcast URLs
Returns a list of all currently available live broadcast URLs.
These can be used in any demofile broadcast parser:
Returns LiveUrl[]
broadcast_urlstringlobby_id?int64match_idint64started_at?int64updated_at?int64
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/matches/live/urls"POST /v1/matches/live/urls Ingest Live Broadcast URLs
Submit one or more live broadcast URLs so they show up in the GET /live/urls listing.
Each submitted URL is stored for 15 minutes; re-submit periodically to keep a match listed while it is still live. Existing entries for the same match_id are overwritten.
These URLs can be used in any demofile broadcast parser:
- IP
- 100req/s
- Key
- -
- Global
- -
curl -X POST "https://api.deadlock-api.com/v1/matches/live/urls"GET /v1/matches/metadata Bulk Metadata
This endpoints lets you fetch multiple match metadata at once. The response is a JSON array of match metadata.
When player info is included, each player object contains a hero_build_id field (if available) from demo analysis.
> Note: The hero_build_id represents the first build the player had selected when the game started. It does not reflect any build changes made during the match.
| name | in | type | required |
|---|---|---|---|
include_info | query | boolean | no |
include_more_info | query | boolean | no |
include_objectives | query | boolean | no |
include_mid_boss | query | boolean | no |
include_player_info | query | boolean | no |
include_player_kda | query | boolean | no |
include_player_items | query | boolean | no |
include_player_stats | query | boolean | no |
include_player_final_stats | query | boolean | no |
include_player_death_details | query | boolean | no |
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
match_ids | query | int64[] | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
is_high_skill_range_parties | query | boolean | no |
is_low_pri_pool | query | boolean | no |
is_new_player_pool | query | boolean | no |
account_ids | query | int32[] | no |
hero_ids | query | string | no |
item_filter_hero_id | query | int32 | no |
include_item_ids | query | string | no |
exclude_item_ids | query | string | no |
extra_match_columns | query | string | no |
extra_player_columns | query | string | no |
order_by | query | enum(match_id, start_time, average_badge) | no |
order_direction | query | enum(desc, asc) | no |
limit | query | int32 | no |
format | query | enum(json, ndjson) | no |
Returns int32[]
- IP
- 10req/min
- Key
- 10req/10s
- Global
- 100req/min
curl "https://api.deadlock-api.com/v1/matches/metadata"GET /v1/matches/recently-fetched Recently Fetched
This endpoint returns a list of match ids that have been fetched within the last 10 minutes.
Returns ClickhouseMatchInfo[]
average_badge?int32average_badge_team0?int32average_badge_team1?int32duration_sint32game_modeint32match_idint64match_modeint32playersMatchPlayer[]start_timeint32
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/matches/recently-fetched"GET /v1/matches/{match_id}/live/url Live Broadcast URL
This endpoints spectates a match and returns the live URL to be used in any demofile broadcast parser.
Example Parsers:
| name | in | type | required |
|---|---|---|---|
match_id | path | int64 | yes |
Returns MatchSpectateResponse
broadcast_urlstringlobby_id?int64
- IP
- 6req/h
- Key
- 20req/10m, 100req/h
- Global
- 100req/10m, 500req/h
curl "https://api.deadlock-api.com/v1/matches/{match_id}/live/url"GET /v1/matches/{match_id}/metadata Metadata
This endpoint returns the match metadata for the given match_id parsed into JSON.
Each player object is enriched with a hero_build_id field (if available) from demo analysis.
> Note: The hero_build_id represents the first build the player had selected when the game started. It does not reflect any build changes made during the match.
Protobuf definitions can be found here: https://github.com/SteamDatabase/Protobufs
Relevant Protobuf Messages:
- CMsgMatchMetaData
- CMsgMatchMetaDataContents
| name | in | type | required |
|---|---|---|---|
match_id | path | int64 | yes |
is_custom | query | boolean | no |
disable_steam | query | boolean | no |
- IP
- From Cache: 100req/s · From S3: 100req/10s · From Steam: 3req/h
- Key
- From Cache: 100req/s · From S3: 100req/s · From Steam: 300req/h
- Global
- From Cache: 100req/s · From S3: 700req/s · From Steam: 1500req/h
curl "https://api.deadlock-api.com/v1/matches/{match_id}/metadata"GET /v1/matches/{match_id}/metadata/raw Metadata as Protobuf
This endpoints returns the raw .meta.bz2 file for the given match_id.
You have to decompress it and decode the protobuf message.
Protobuf definitions can be found here: https://github.com/SteamDatabase/Protobufs
Relevant Protobuf Messages:
- CMsgMatchMetaData
- CMsgMatchMetaDataContents
| name | in | type | required |
|---|---|---|---|
match_id | path | int64 | yes |
is_custom | query | boolean | no |
disable_steam | query | boolean | no |
Returns int32[]
- IP
- From Cache: 100req/s · From S3: 100req/10s · From Steam: 3req/h
- Key
- From Cache: 100req/s · From S3: 100req/s · From Steam: 300req/h
- Global
- From Cache: 100req/s · From S3: 700req/s · From Steam: 1500req/h
curl "https://api.deadlock-api.com/v1/matches/{match_id}/metadata/raw"GET /v1/matches/{match_id}/salts Salts
This endpoints returns salts that can be used to fetch metadata and demofile for a match.
Note: We currently fetch many matches without salts, so for these matches we do not have salts stored.
| name | in | type | required |
|---|---|---|---|
match_id | path | int64 | yes |
disable_steam | query | boolean | no |
Returns MatchSaltsResponse
cluster_id?int32demo_url?stringmatch_idint64metadata_salt?int32metadata_url?stringreplay_salt?int32
- IP
- From DB: 100req/s · From Steam: 10req/30mins
- Key
- From DB: - · From Steam: 10req/min
- Global
- From DB: - · From Steam: 10req/10s
curl "https://api.deadlock-api.com/v1/matches/{match_id}/salts"Custom Matches 6
Custom Match related endpoints
POST /v1/matches/custom/create Create Match
This endpoint creates a custom match using a bot account.
Process: 1. A party is created with your provided settings. 2. The system waits for the party code to be generated. 3. The party code is returned in the response. 4. The bot switches to spectator mode. 5. The bot marks itself as ready. 6. You and other players join, ready up, and start the match.
Callbacks: If a callback URL is provided, POST requests will be sent to it:
- settings: When lobby settings change, a POST is sent to
{callback_url}/settingswith theCsoCitadelPartyprotobuf message as JSON. - match start: When the match starts, a POST is sent to
{callback_url}with the match ID.
_Protobuf definitions: https://github.com/SteamDatabase/Protobufs_
Note: The bot will leave the match 15 minutes after creation, regardless of match state.
Returns CreateCustomResponse
callback_secret?stringparty_codestringparty_idstring
- IP
- 10req/h
- Key
- 100req/30min
- Global
- 1000req/h
curl -X POST "https://api.deadlock-api.com/v1/matches/custom/create"POST /v1/matches/custom/{lobby_id}/leave Leave Lobby
This endpoint makes the bot leave the custom match lobby early. By default the bot leaves automatically after 15 minutes, but this endpoint allows you to trigger it sooner.
| name | in | type | required |
|---|---|---|---|
lobby_id | path | string | yes |
- IP
- 10req/h
- Key
- 100req/30min
- Global
- 1000req/h
curl -X POST "https://api.deadlock-api.com/v1/matches/custom/{lobby_id}/leave"POST /v1/matches/custom/{lobby_id}/ready Ready Up
This endpoint allows you to ready up for a custom match.
| name | in | type | required |
|---|---|---|---|
lobby_id | path | string | yes |
- IP
- 10req/h
- Key
- 100req/30min
- Global
- 1000req/h
curl -X POST "https://api.deadlock-api.com/v1/matches/custom/{lobby_id}/ready"POST /v1/matches/custom/{lobby_id}/start Start Match
This endpoint starts a custom match.
| name | in | type | required |
|---|---|---|---|
lobby_id | path | string | yes |
- IP
- 10req/h
- Key
- 100req/30min
- Global
- 1000req/h
curl -X POST "https://api.deadlock-api.com/v1/matches/custom/{lobby_id}/start"POST /v1/matches/custom/{lobby_id}/unready Unready
This endpoint allows you to unready for a custom match.
| name | in | type | required |
|---|---|---|---|
lobby_id | path | string | yes |
- IP
- 10req/h
- Key
- 100req/30min
- Global
- 1000req/h
curl -X POST "https://api.deadlock-api.com/v1/matches/custom/{lobby_id}/unready"GET /v1/matches/custom/{party_id}/match-id Get Match ID
This endpoint allows you to get the match id of a custom match.
| name | in | type | required |
|---|---|---|---|
party_id | path | int64 | yes |
Returns GetCustomMatchIdResponse
match_idint64
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/matches/custom/{party_id}/match-id"Demo 4
Query and inspect match demo files: discover the queryable schema and run SQL extractions
GET /v1/matches/demo/live/query Live Demo Query (SSE)
Run a SQL query over a match's live broadcast and stream result rows over Server-Sent Events as the match plays, instead of waiting for the demo to finish (see the async /demo/query).
Provide either match_id (the server spectates the lobby to obtain the broadcast URL) or an explicit broadcast_url from /live/urls.
Projection/filter queries emit rows continuously as they are decoded. A whole-match aggregation (GROUP BY / ORDER BY) can only produce its final rows once the broadcast ends.
| name | in | type | required |
|---|---|---|---|
query | query | string | yes |
match_id | query | int64 | no |
broadcast_url | query | string | no |
- IP
- With broadcast_url: 20req/m · With match_id: 6req/h
- Key
- With broadcast_url: - · With match_id: 20req/10m, 100req/h
- Global
- With broadcast_url: 100req/m · With match_id: 100req/10m, 500req/h
curl "https://api.deadlock-api.com/v1/matches/demo/live/query?query=<query>"POST /v1/matches/demo/query Demo Query
Submit a SQL query against a match's demo file. The work (download + decompress + parse + query) takes ~55s, so this is asynchronous: the endpoint returns a job_id you poll via /demo/query/{job_id}. Once done, the status response carries a public URL to the result artifact (Parquet or NDJSON).
Identical (match_id, query, format) submissions are deduplicated and reuse a cached result.
Returns DemoQueryJobResponse
job_idstringstatusJobStatus
- IP
- 20req/h
- Key
- 200req/h
- Global
- 400req/h
curl -X POST "https://api.deadlock-api.com/v1/matches/demo/query"GET /v1/matches/demo/query/{job_id} Demo Query Status
Returns the status of a demo query job. While queued/running it includes a rough estimated_wait_seconds; when done it includes result_url (a public link to the Parquet artifact, or the zstd-compressed .ndjson.zst artifact); when failed it includes error.
| name | in | type | required |
|---|---|---|---|
job_id | path | string | yes |
Returns DemoQueryStatusResponse
error?stringestimated_wait_seconds?int64formatOutputFormatjob_idstringmatch_idint64result_url?stringstatusJobStatus
curl "https://api.deadlock-api.com/v1/matches/demo/query/{job_id}"GET /v1/matches/demo/schema Demo Schema
Returns the queryable schema of a match's demo file: every entity and event table with its columns and Arrow types.
By default this returns the schema of the most recent match we have a demo for. Optionally pass match_id to read the schema for a specific match; if we don't already have its salts, they are fetched from Steam (rate limited, see /{match_id}/salts).
| name | in | type | required |
|---|---|---|---|
match_id | query | int64 | no |
Returns DemoSchemaResponse
demo_urlstringmatch_idint64tablesTableSchemaResponse[]
curl "https://api.deadlock-api.com/v1/matches/demo/schema"Players 12
Player related endpoints
GET /v1/players/hero-stats Hero Stats
This endpoint returns statistics for each hero played by a given player account.
| name | in | type | required |
|---|---|---|---|
account_ids | query | int32[] | yes |
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
hero_ids | query | string | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_networth | query | int64 | no |
max_networth | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
Returns HeroStats[]
account_idint32accuracynumberassistsint64assists_per_minnumbercreeps_per_minnumbercrit_shot_ratenumberdamage_mitigated_per_minnumberdamage_per_minnumberdamage_per_soulnumberdamage_taken_per_minnumberdamage_taken_per_soulnumberdeathsint64deaths_per_minnumberdenies_per_matchnumberdenies_per_minnumberending_levelnumberhero_idint32killsint64kills_per_minnumberlast_hits_per_minnumberlast_playedint32matchesint64[]matches_playedint64networth_per_minnumberobj_damage_per_minnumberobj_damage_per_soulnumbertime_playedint64total_boss_damageint64total_creep_damageint64total_neutral_damageint64total_player_damageint64total_player_damage_takenint64winsint64
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/players/hero-stats?account_ids=<account_ids>"GET /v1/players/rank-predict/image Rank Predict Avg Image (Deprecated) deprecated
Deprecated alias of /v1/players/rank/image. The rank is no longer predicted, it is read from each player's latest ranked match.
| name | in | type | required |
|---|---|---|---|
account_ids | query | int32[] | yes |
format | query | enum(png, webp) | no |
Returns int32[]
curl "https://api.deadlock-api.com/v1/players/rank-predict/image?account_ids=<account_ids>"GET /v1/players/rank/image Rank Avg Image
Returns the average rank badge image (binary) for a comma-separated list of account IDs. Accounts without a rank are left out of the average; if none of them has one, the Obscurus image is returned. Use ?format=webp for WebP.
| name | in | type | required |
|---|---|---|---|
account_ids | query | int32[] | yes |
format | query | enum(png, webp) | no |
Returns int32[]
curl "https://api.deadlock-api.com/v1/players/rank/image?account_ids=<account_ids>"GET /v1/players/{account_id}/account-stats Account Stats
This endpoint returns the player account stats for the given account_id.
!THIS IS A PATREON ONLY ENDPOINT!
You have to be friend with one of the bots to use this endpoint. On first use this endpoint will return an error with a list of invite links to add the bot as friend. From then on you can use this endpoint.
Protobuf definitions can be found here: https://github.com/SteamDatabase/Protobufs
Relevant Protobuf Messages:
- CMsgClientToGcGetAccountStats
- CMsgAccountStats
| name | in | type | required |
|---|---|---|---|
account_id | path | int32 | yes |
Returns PlayerAccountStats
account_idint32statsPlayerAccountHeroStats[]
- IP
- 5req/min
- Key
- 20req/min & 800req/h
- Global
- 200req/min
curl "https://api.deadlock-api.com/v1/players/{account_id}/account-stats"GET /v1/players/{account_id}/card Card
This endpoint returns the player card for the given account_id.
!THIS IS A PATREON ONLY ENDPOINT!
You have to be friend with one of the bots to use this endpoint. On first use this endpoint will return an error with a list of invite links to add the bot as friend. From then on you can use this endpoint.
Protobuf definitions can be found here: https://github.com/SteamDatabase/Protobufs
Relevant Protobuf Messages:
- CMsgClientToGcGetProfileCard
- CMsgCitadelProfileCard
| name | in | type | required |
|---|---|---|---|
account_id | path | int32 | yes |
Returns PlayerCard
account_idint32ranked_badge_level?int32ranked_rank?int32ranked_subrank?int32slotsPlayerCardSlot[]
- IP
- 5req/min
- Key
- 20req/min & 800req/h
- Global
- 200req/min
curl "https://api.deadlock-api.com/v1/players/{account_id}/card"GET /v1/players/{account_id}/enemy-stats Enemy Stats
This endpoint returns the enemy stats.
| name | in | type | required |
|---|---|---|---|
account_id | path | int32 | yes |
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
min_matches_played | query | int64 | no |
max_matches_played | query | int64 | no |
Returns EnemyStats[]
enemy_idint32matchesint64[]matches_playedint64winsint64
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/players/{account_id}/enemy-stats"GET /v1/players/{account_id}/match-history Match History
This endpoint returns the player match history for the given account_id.
If the account is friends with one of our bots, the match history is a combination of the data from Steam and ClickHouse, so you always get the most up-to-date data and full history. If the account is not friends with a bot, only the stored match history from ClickHouse is returned.
Protobuf definitions can be found here: https://github.com/SteamDatabase/Protobufs
Relevant Protobuf Messages:
- CMsgClientToGcGetMatchHistory
- CMsgClientToGcGetMatchHistoryResponse
| name | in | type | required |
|---|---|---|---|
account_id | path | int32 | yes |
force_refetch | query | boolean | no |
Returns PlayerMatchHistoryEntry[]
abandoned_time_s?int32account_idint32brawl_avg_round_time_s?int32brawl_score_team0?int32brawl_score_team1?int32deniesint32game_modeint32hero_idint32hero_levelint32last_hitsint32match_duration_sint32match_idint64match_modeint32match_resultint32net_worthint32objectives_mask_team0int32objectives_mask_team1int32player_assistsint32player_deathsint32player_killsint32player_match_outcomeint32player_teamint32ranked_calibration_match?int32ranked_delta?int32ranked_display_badge?int32ranked_used_demotion_protection?booleanstart_timeint32team_abandoned?boolean
- IP
- 100req/s · Bot-Friend: 10req/h · With `force_refetch=true`: 1req/h
- Key
- - · Bot-Friend: 300req/h · With `force_refetch=true`: 5req/h
- Global
- - · Bot-Friend: 1500req/h · With `force_refetch=true`: 10req/h
curl "https://api.deadlock-api.com/v1/players/{account_id}/match-history"GET /v1/players/{account_id}/mate-stats Mate Stats
This endpoint returns the mate stats.
| name | in | type | required |
|---|---|---|---|
account_id | path | int32 | yes |
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
min_matches_played | query | int64 | no |
max_matches_played | query | int64 | no |
same_party | query | boolean | no |
Returns MateStats[]
matchesint64[]matches_playedint64mate_idint32winsint64
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/players/{account_id}/mate-stats"GET /v1/players/{account_id}/rank Rank
Returns the player's rank at the end of their latest ranked match, i.e. the rank they entered that match with plus the progress the match awarded. A subrank spans 1000 progress points, so a single match can move the badge.
Only ranked matches carry a rank, and it stays unset while the player is in placement games. When none of the player's recent ranked matches reports a rank, badge, rank and subrank are all 0, which is the Obscurus (unranked) tier, and last_match is null.
last_match carries the rank metadata Valve reported on that match, e.g. rank progress, remaining placement games and demotion protection.
| name | in | type | required |
|---|---|---|---|
account_id | path | int32 | yes |
Returns RankResponse
badgeint32last_match?LastRankedMatchrankint32subrankint32
curl "https://api.deadlock-api.com/v1/players/{account_id}/rank"GET /v1/players/{account_id}/rank-predict Rank Predict (Deprecated) deprecated
Deprecated alias of /v1/players/{account_id}/rank. The rank is no longer predicted, it is read from the player's latest ranked match.
| name | in | type | required |
|---|---|---|---|
account_id | path | int32 | yes |
Returns RankResponse
badgeint32last_match?LastRankedMatchrankint32subrankint32
curl "https://api.deadlock-api.com/v1/players/{account_id}/rank-predict"GET /v1/players/{account_id}/rank-predict/image Rank Predict Image (Deprecated) deprecated
Deprecated alias of /v1/players/{account_id}/rank/image. The rank is no longer predicted, it is read from the player's latest ranked match.
| name | in | type | required |
|---|---|---|---|
account_id | path | int32 | yes |
format | query | enum(png, webp) | no |
Returns int32[]
curl "https://api.deadlock-api.com/v1/players/{account_id}/rank-predict/image"GET /v1/players/{account_id}/rank/image Rank Image
Returns the rank badge image directly (binary), not a URL, with the player's I-VI division numeral drawn on it. Players whose recent ranked matches carry no rank, and players still in placement, get the plain tier badge. Use ?format=webp for WebP.
| name | in | type | required |
|---|---|---|---|
account_id | path | int32 | yes |
format | query | enum(png, webp) | no |
Returns int32[]
curl "https://api.deadlock-api.com/v1/players/{account_id}/rank/image"MMR 6
# DEPRECATED! READ THIS FIRST!
GET /v1/players/mmr Batch MMR (Deprecated) deprecated
Deprecated. The MMR estimate is gone, this now returns the rank Valve reported for each player at the end of their latest ranked match. Players without a ranked match carrying a rank are left out.
Use /v1/players/{account_id}/rank instead.
| name | in | type | required |
|---|---|---|---|
account_ids | query | int32[] | yes |
max_match_id | query | int64 | no |
Returns MMRHistory[]
account_idint32divisionint32division_tierint32match_idint64player_scorenumberrankint32start_timeint32
curl "https://api.deadlock-api.com/v1/players/mmr?account_ids=<account_ids>"GET /v1/players/mmr/distribution MMR Distribution (Deprecated) deprecated
Deprecated. The MMR estimate is gone, this now counts players by the rank Valve reported at the end of their latest ranked match within the filtered range.
Use /v1/analytics/badge-distribution instead.
| name | in | type | required |
|---|---|---|---|
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
is_high_skill_range_parties | query | boolean | no |
is_low_pri_pool | query | boolean | no |
is_new_player_pool | query | boolean | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
Returns DistributionEntry[]
playersint64rankint32
curl "https://api.deadlock-api.com/v1/players/mmr/distribution"GET /v1/players/mmr/distribution/{hero_id} Hero MMR Distribution (Deprecated) deprecated
Deprecated. Valve reports a single account-wide rank, not a per-hero one, so this counts players by the rank they had on their latest ranked match played on that hero.
Use /v1/analytics/badge-distribution instead.
| name | in | type | required |
|---|---|---|---|
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
is_high_skill_range_parties | query | boolean | no |
is_low_pri_pool | query | boolean | no |
is_new_player_pool | query | boolean | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
hero_id | path | int32 | yes |
Returns DistributionEntry[]
playersint64rankint32
curl "https://api.deadlock-api.com/v1/players/mmr/distribution/{hero_id}"GET /v1/players/mmr/{hero_id} Batch Hero MMR (Deprecated) deprecated
Deprecated. Valve reports a single account-wide rank, not a per-hero one, so this returns each player's rank on their latest ranked match played on that hero.
Use /v1/players/{account_id}/rank instead.
| name | in | type | required |
|---|---|---|---|
account_ids | query | int32[] | yes |
max_match_id | query | int64 | no |
hero_id | path | int32 | yes |
Returns MMRHistory[]
account_idint32divisionint32division_tierint32match_idint64player_scorenumberrankint32start_timeint32
curl "https://api.deadlock-api.com/v1/players/mmr/{hero_id}?account_ids=<account_ids>"GET /v1/players/{account_id}/mmr-history MMR History (Deprecated) deprecated
Deprecated. The MMR estimate is gone, this now returns one entry per ranked match with the rank Valve reported for the player at the end of that match.
Use the ranked_display_badge and ranked_delta fields of /v1/players/{account_id}/match-history instead.
| name | in | type | required |
|---|---|---|---|
account_id | path | int32 | yes |
Returns MMRHistory[]
account_idint32divisionint32division_tierint32match_idint64player_scorenumberrankint32start_timeint32
curl "https://api.deadlock-api.com/v1/players/{account_id}/mmr-history"GET /v1/players/{account_id}/mmr-history/{hero_id} Hero MMR History (Deprecated) deprecated
Deprecated. Valve reports a single account-wide rank, not a per-hero one, so this returns the player's rank at the end of each ranked match they played on that hero.
Use the ranked_display_badge and ranked_delta fields of /v1/players/{account_id}/match-history instead.
| name | in | type | required |
|---|---|---|---|
account_id | path | int32 | yes |
hero_id | path | int32 | yes |
Returns MMRHistory[]
account_idint32divisionint32division_tierint32match_idint64player_scorenumberrankint32start_timeint32
curl "https://api.deadlock-api.com/v1/players/{account_id}/mmr-history/{hero_id}"Steam 2
Steam related endpoints
GET /v1/players/steam Batch Steam Profile
This endpoint returns Steam profiles of players.
Pass refresh=true to force a live refresh of the listed accounts from the Steam Web API (GetPlayerSummaries + GetFriendList) before returning. The refreshed rows are persisted to the steam_profiles table and returned in the response with last_updated set to the current time. Refresh requests are rate limited and capped at 100 account ids per call to stay inside the shared Steam Web API key budget.
See: https://developer.valvesoftware.com/wiki/Steam_Web_API#GetPlayerSummaries_(v0002)
| name | in | type | required |
|---|---|---|---|
account_ids | query | int64[] | yes |
refresh | query | boolean | no |
Returns SteamProfile[]
account_idint32avatarstringavatarfullstringavatarmediumstringcountrycode?stringfriendsSteamFriend[]last_team_avg_badge?int32last_updatedstringmatches_played_last_30dint64personanamestringprofileurlstringrealname?string
- IP
- 100req/s (read path), 3req/min + 15req/h (refresh)
- Key
- - (read path), 10req/min + 60req/h (refresh)
- Global
- - (read path), 30req/min + 200req/h (refresh)
curl "https://api.deadlock-api.com/v1/players/steam?account_ids=<account_ids>"GET /v1/players/steam-search Steam Profile Search
This endpoint lets you search for Steam profiles by account_id or personaname.
See: https://developer.valvesoftware.com/wiki/Steam_Web_API#GetPlayerSummaries_(v0002)
| name | in | type | required |
|---|---|---|---|
search_query | query | string | yes |
limit | query | int32 | no |
min_matches_played_last_30d | query | int32 | no |
min_last_team_avg_badge | query | int32 | no |
matches_played_weight | query | number | no |
Returns SteamProfile[]
account_idint32avatarstringavatarfullstringavatarmediumstringcountrycode?stringfriendsSteamFriend[]last_team_avg_badge?int32last_updatedstringmatches_played_last_30dint64personanamestringprofileurlstringrealname?string
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/players/steam-search?search_query=<search_query>"Leaderboard 4
Endpoints for retrieving global and hero-specific leaderboards.
GET /v1/leaderboard/{region} Leaderboard
Returns the leaderboard.
Valve updates the leaderboard once per hour.
| name | in | type | required |
|---|---|---|---|
region | path | enum(Europe, Asia, NAmerica, SAmerica, … +1) | yes |
Returns Leaderboard
entriesLeaderboardEntry[]
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/leaderboard/{region}"GET /v1/leaderboard/{region}/raw Leaderboard as Protobuf
Returns the leaderboard, serialized as protobuf message.
You have to decode the protobuf message.
Protobuf definitions can be found here: https://github.com/SteamDatabase/Protobufs
Relevant Protobuf Message:
- CMsgClientToGcGetLeaderboardResponse
Valve updates the leaderboard once per hour.
| name | in | type | required |
|---|---|---|---|
region | path | enum(Europe, Asia, NAmerica, SAmerica, … +1) | yes |
Returns int32[]
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/leaderboard/{region}/raw"GET /v1/leaderboard/{region}/{hero_id} Hero Leaderboard
Returns the leaderboard for a specific hero.
Valve updates the leaderboard once per hour.
| name | in | type | required |
|---|---|---|---|
region | path | enum(Europe, Asia, NAmerica, SAmerica, … +1) | yes |
hero_id | path | int32 | yes |
Returns Leaderboard
entriesLeaderboardEntry[]
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/leaderboard/{region}/{hero_id}"GET /v1/leaderboard/{region}/{hero_id}/raw Hero Leaderboard as Protobuf
Returns the leaderboard for a specific hero, serialized as protobuf message.
You have to decode the protobuf message.
Protobuf definitions can be found here: https://github.com/SteamDatabase/Protobufs
Relevant Protobuf Message:
- CMsgClientToGcGetLeaderboardResponse
Valve updates the leaderboard once per hour.
| name | in | type | required |
|---|---|---|---|
region | path | enum(Europe, Asia, NAmerica, SAmerica, … +1) | yes |
hero_id | path | int32 | yes |
Returns int32[]
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/leaderboard/{region}/{hero_id}/raw"Analytics 20
Comprehensive game statistics and analysis endpoints.
GET /v1/analytics/ability-order-stats Ability Order Stats
Retrieves statistics for the ability order of a hero.
| name | in | type | required |
|---|---|---|---|
hero_id | query | int32 | yes |
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_ability_upgrades | query | int64 | no |
max_ability_upgrades | query | int64 | no |
min_networth | query | int64 | no |
max_networth | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
min_matches | query | int32 | no |
account_id | query | int32 | no |
account_ids | query | int32[] | no |
include_item_ids | query | int32[] | no |
exclude_item_ids | query | int32[] | no |
Returns AnalyticsAbilityOrderStats[]
abilitiesint32[]lossesint64matchesint64playersint64total_assistsint64total_deathsint64total_killsint64winsint64
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/ability-order-stats?hero_id=<hero_id>"GET /v1/analytics/badge-distribution Badge Distribution
This endpoint returns the player badge distribution.
total_matches counts matches by their average badge, while unique_players counts players by the rank Valve reported at the end of their latest ranked match within the filtered range. Since only ranked matches carry a rank, unique_players ignores the match_mode filter and always looks at ranked matches.
Ranks exist only from the first ranked season on, so min_unix_timestamp is clamped to its start.
| name | in | type | required |
|---|---|---|---|
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
is_high_skill_range_parties | query | boolean | no |
is_low_pri_pool | query | boolean | no |
is_new_player_pool | query | boolean | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
Returns BadgeDistribution[]
badge_levelint32total_matchesint64unique_playersint64
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/badge-distribution"GET /v1/analytics/build-item-stats Build Item Stats
Retrieves item statistics from hero builds.
Results are cached for 1 hour based on the unique combination of query parameters provided. Subsequent identical requests within this timeframe will receive the cached response.
| name | in | type | required |
|---|---|---|---|
hero_id | query | int32 | no |
min_last_updated_unix_timestamp | query | int64 | no |
max_last_updated_unix_timestamp | query | int64 | no |
Returns BuildItemStats[]
buildsint64item_idint64
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/build-item-stats"GET /v1/analytics/game-stats Game Stats
Retrieves aggregate game-level statistics.
| name | in | type | required |
|---|---|---|---|
bucket | query | enum(no_bucket, avg_badge, start_time_hour, start_time_day, … +2) | no |
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
min_networth | query | int64 | no |
max_networth | query | int64 | no |
hero_ids | query | int32[] | no |
include_item_ids | query | int32[] | no |
exclude_item_ids | query | int32[] | no |
account_ids | query | int32[] | no |
Returns AnalyticsGameStats[]
abandon_ratenumberavg_accuracynumberavg_assistsnumberavg_boss_damagenumberavg_creep_damagenumberavg_creep_killsnumberavg_crit_ratenumberavg_damage_absorbednumberavg_damage_mitigatednumberavg_deathsnumberavg_deniesnumberavg_duration_snumberavg_ending_levelnumberavg_first_mid_boss_time_snumberavg_first_objective_destroyed_time_snumberavg_gold_bossnumberavg_gold_boss_orbnumberavg_gold_death_lossnumberavg_gold_deniednumberavg_gold_lane_creepnumberavg_gold_lane_creep_orbsnumberavg_gold_neutral_creepnumberavg_gold_neutral_creep_orbsnumberavg_gold_playernumberavg_gold_player_orbsnumberavg_gold_treasurenumberavg_heal_preventednumberavg_kd_rationumberavg_killsnumberavg_last_hitsnumberavg_max_healthnumberavg_net_worthnumberavg_neutral_damagenumberavg_neutral_killsnumberavg_player_damagenumberavg_player_damage_takennumberavg_player_healingnumberavg_possible_creepsnumberavg_self_healingnumberavg_tech_powernumber- … 7 more fields
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/game-stats"GET /v1/analytics/hero-ban-stats Hero Ban Stats
Retrieves ban statistics for each hero based on historical match data from demo analysis.
Only matches with successfully extracted ban data are included. Matches where ban extraction failed (empty banned_hero_ids) are excluded entirely.
Results are cached for 1 hour based on the combination of query parameters provided.
| name | in | type | required |
|---|---|---|---|
match_mode | query | string | no |
bucket | query | enum(no_bucket, avg_badge, start_time_hour, start_time_day, … +2) | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
Returns HeroBanStats[]
bansint64bucketint32hero_idint32
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/hero-ban-stats"GET /v1/analytics/hero-build-stats/{hero_id} Hero Build Stats
Retrieves performance statistics for hero builds based on historical match data from demo analysis.
Only includes builds that exist in the hero builds database.
The hero_build_id is the first build the player had selected when the game started. It does not reflect any build changes made during the match.
Results are cached for 1 hour based on the combination of query parameters provided.
| name | in | type | required |
|---|---|---|---|
hero_id | path | int32 | yes |
match_mode | query | string | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
hero_build_id | query | int64 | no |
min_matches | query | int64 | no |
account_id | query | int32 | no |
account_ids | query | int32[] | no |
Returns HeroBuildStats[]
hero_build_idint64hero_idint32lossesint64matchesint64playersint64winsint64
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/hero-build-stats/{hero_id}"GET /v1/analytics/hero-comb-stats Hero Comb Stats
Retrieves overall statistics for each hero combination.
Results are cached for 1 hour. The cache key is determined by the specific combination of filter parameters used in the query. Subsequent requests using the exact same filters within this timeframe will receive the cached response.
| name | in | type | required |
|---|---|---|---|
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_networth | query | int64 | no |
max_networth | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
include_hero_ids | query | int32[] | no |
exclude_hero_ids | query | int32[] | no |
include_enemy_hero_ids | query | int32[] | no |
exclude_enemy_hero_ids | query | int32[] | no |
min_matches | query | int32 | no |
max_matches | query | int32 | no |
comb_size | query | int32 | no |
account_id | query | int32 | no |
account_ids | query | int32[] | no |
Returns HeroCombStats[]
hero_idsint32[]lossesint64matchesint64winsint64
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/hero-comb-stats"GET /v1/analytics/hero-counter-stats Hero Counter Stats
Retrieves hero-versus-hero matchup statistics based on historical match data.
This endpoint analyzes completed matches to calculate how often a specific hero (hero_id) wins against an enemy hero (enemy_hero_id) and the total number of times they have faced each other under the specified filter conditions.
Results are cached for 1 hour based on the combination of query parameters provided. Subsequent identical requests within this timeframe will receive the cached response.
| name | in | type | required |
|---|---|---|---|
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_networth | query | int64 | no |
max_networth | query | int64 | no |
min_enemy_networth | query | int64 | no |
max_enemy_networth | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
same_lane_filter | query | boolean | no |
min_matches | query | int64 | no |
max_matches | query | int32 | no |
account_id | query | int32 | no |
account_ids | query | int32[] | no |
Returns HeroCounterStats[]
assistsint64creepsint64deathsint64deniesint64enemy_assistsint64enemy_creepsint64enemy_deathsint64enemy_deniesint64enemy_hero_idint32enemy_killsint64enemy_last_hitsint64enemy_networthint64enemy_obj_damageint64hero_idint32killsint64last_hitsint64matches_playedint64networthint64obj_damageint64winsint64
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/hero-counter-stats"GET /v1/analytics/hero-stats Hero Stats
Retrieves performance statistics for each hero based on historical match data.
| name | in | type | required |
|---|---|---|---|
bucket | query | enum(no_bucket, avg_badge, start_time_hour, start_time_day, … +2) | no |
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_networth | query | int64 | no |
max_networth | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
min_hero_matches | query | int64 | no |
max_hero_matches | query | int64 | no |
min_hero_matches_total | query | int64 | no |
max_hero_matches_total | query | int64 | no |
include_item_ids | query | int32[] | no |
exclude_item_ids | query | int32[] | no |
account_id | query | int32 | no |
account_ids | query | int32[] | no |
Returns AnalyticsHeroStats[]
bucketint32hero_idint32lossesint64matchesint64matches_per_bucketint64total_assistsint64total_boss_damageint64total_creep_damageint64total_deathsint64total_deniesint64total_killsint64total_last_hitsint64total_max_healthint64total_net_worthint64total_neutral_damageint64total_player_damageint64total_player_damage_takenint64total_shots_hitint64total_shots_missedint64winsint64
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/hero-stats"GET /v1/analytics/hero-synergy-stats Hero Synergy Stats
Retrieves hero pair synergy statistics based on historical match data.
This endpoint analyzes completed matches to calculate how often a specific pair of heroes (hero_id1 and hero_id2) won when playing *together on the same team*, and the total number of times they have played together under the specified filter conditions.
Results are cached for 1 hour based on the combination of query parameters provided. Subsequent identical requests within this timeframe will receive the cached response.
| name | in | type | required |
|---|---|---|---|
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_networth | query | int64 | no |
max_networth | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
same_lane_filter | query | boolean | no |
min_matches | query | int64 | no |
max_matches | query | int32 | no |
account_id | query | int32 | no |
account_ids | query | int32[] | no |
Returns HeroSynergyStats[]
assists1int64assists2int64creeps1int64creeps2int64deaths1int64deaths2int64denies1int64denies2int64hero_id1int32hero_id2int32kills1int64kills2int64last_hits1int64last_hits2int64matches_playedint64networth1int64networth2int64obj_damage1int64obj_damage2int64winsint64
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/hero-synergy-stats"GET /v1/analytics/item-flow-stats Item Flow Stats
Retrieves item build-flow statistics: per-phase item win/pick rates and the transitions between them.
Items are grouped into columns by the in-match phase they were bought in (controlled by phase_interval_s and phase_count). The response contains nodes (items aggregated within a phase) and edges (transitions between an item and items in the next phase). A locked build path can be supplied via locked_item_ids / locked_columns to restrict the population to players who bought those items in the given stage columns.
Each node also carries adjusted_win_rate: the item's win rate standardized to the stage's net-worth-at-buy distribution. Because players who are already ahead have more souls and buy items sooner, raw win rate is heavily confounded by wealth; the adjusted figure re-weights each item's win rate across net-worth buckets to the stage-wide distribution, isolating the item's contribution from the buyer's lead. It is still observational, not a controlled/causal estimate. reached_per_column gives the distinct baseline games that bought any upgrade in each column, so consumers can show how survivorship-selected (e.g. long-game-only) a late stage is.
Results are cached for 1 hour based on the unique combination of query parameters provided.
| name | in | type | required |
|---|---|---|---|
phase_interval_s | query | int32 | no |
phase_count | query | int32 | no |
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
hero_ids | query | string | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_networth | query | int64 | no |
max_networth | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
min_matches | query | int32 | no |
account_ids | query | int32[] | no |
include_item_ids | query | int32[] | no |
exclude_item_ids | query | int32[] | no |
locked_item_ids | query | int32[] | no |
locked_columns | query | int32[] | no |
Returns ItemFlowStats
baselineItemFlowSummaryedgesItemFlowEdge[]nodesItemFlowNode[]reached_per_columnint64[]summaryItemFlowSummary
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/item-flow-stats"GET /v1/analytics/item-permutation-stats Item Permutation Stats
Retrieves item permutation statistics based on historical match data.
Results are cached for 1 hour based on the unique combination of query parameters provided. Subsequent identical requests within this timeframe will receive the cached response.
| name | in | type | required |
|---|---|---|---|
item_ids | query | int32[] | no |
comb_size | query | int32 | no |
min_matches | query | int32 | no |
max_matches | query | int32 | no |
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
hero_ids | query | string | no |
hero_id | query | int32 | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_networth | query | int64 | no |
max_networth | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
account_id | query | int32 | no |
account_ids | query | int32[] | no |
Returns ItemPermutationStats[]
item_idsint32[]lossesint64matchesint64winsint64
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/item-permutation-stats"GET /v1/analytics/item-stats Item Stats
Retrieves item statistics based on historical match data.
Results are cached for 6 hours based on the unique combination of query parameters provided. Subsequent identical requests within this timeframe will receive the cached response.
| name | in | type | required |
|---|---|---|---|
bucket | query | enum(no_bucket, hero, team, start_time_hour, … +10) | no |
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
hero_ids | query | string | no |
hero_id | query | int32 | no |
enemy_hero_ids | query | string | no |
enemy_hero_ids_all_match | query | boolean | no |
min_enemy_networth | query | int64 | no |
max_enemy_networth | query | int64 | no |
same_lane_filter | query | boolean | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_networth | query | int64 | no |
max_networth | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
include_item_ids | query | int32[] | no |
exclude_item_ids | query | int32[] | no |
min_matches | query | int32 | no |
max_matches | query | int32 | no |
account_id | query | int32 | no |
account_ids | query | int32[] | no |
min_bought_at_s | query | int32 | no |
max_bought_at_s | query | int32 | no |
item_order | query | string[] | no |
Returns ItemStats[]
avg_buy_time_relativenumberavg_buy_time_snumberavg_sell_time_relativenumberavg_sell_time_snumberbucketint32item_idint32lossesint64matchesint64playersint64winsint64
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/item-stats"GET /v1/analytics/kill-death-stats Kill Death Stats
This endpoint returns the kill-death statistics across a 128x128 pixel raster.
| name | in | type | required |
|---|---|---|---|
team | query | int32 | no |
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
account_ids | query | int32[] | no |
hero_ids | query | string | no |
min_networth | query | int64 | no |
max_networth | query | int64 | no |
is_high_skill_range_parties | query | boolean | no |
is_low_pri_pool | query | boolean | no |
is_new_player_pool | query | boolean | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_kills_per_raster | query | int32 | no |
max_kills_per_raster | query | int32 | no |
min_deaths_per_raster | query | int32 | no |
max_deaths_per_raster | query | int32 | no |
min_game_time_s | query | int32 | no |
max_game_time_s | query | int32 | no |
Returns KillDeathStats[]
deathsint64killer_teamint32killsint64position_xint32position_yint32
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/kill-death-stats"GET /v1/analytics/lane-matchup-stats Lane Matchup Stats (Subject to Change)
> ⚠️ Subject to change: This endpoint is newly added and not yet stable. Its parameters, response fields and semantics may change or be removed without notice.
Retrieves duo-versus-duo lane statistics: how a pair of heroes sharing a lane performed against the pair of heroes they laned against.
Win rate covers the whole match. Everything else is read at sample_time_s (900 by default, the last sample before the game's recording cadence coarsens) off the matchups that lasted that long, counted by sample_matches. Souls are always reported, in net_worth_diff; pass stats for any other per-tick stat the game records — kills, denies, player damage, healing, level and so on — each as the duo's own combined value *and* as its lead over the enemy duo.
Only lanes where *both* sides fielded exactly two players are counted, and each lane contributes one row per side, so every matchup appears twice with the two sides swapped.
group_by chooses what a row stands for. The default groups all three dimensions, giving one row per duo-versus-duo matchup per lane. Dropping enemy_hero_ids gives a duo's record across every opponent, dropping hero_ids gives what a duo is up against, and dropping assigned_lane merges the lanes. Folded dimensions come back as 0 / an empty array.
Pass hero_ids and enemy_hero_ids to scope the response to the duos you care about. Without them the full duo-versus-duo matrix is computed, which is a considerably more expensive query.
Results are cached for 1 hour. The cache key is determined by the specific combination of filter parameters used in the query. Subsequent requests using the exact same filters within this timeframe will receive the cached response.
| name | in | type | required |
|---|---|---|---|
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
sample_time_s | query | int32 | no |
assigned_lanes | query | string | no |
hero_ids | query | int32[] | no |
enemy_hero_ids | query | int32[] | no |
stats | query | string | no |
group_by | query | string | no |
min_matches | query | int64 | no |
max_matches | query | int64 | no |
account_ids | query | int32[] | no |
Returns LaneMatchupStats[]
assigned_laneint32enemy_hero_idsint32[]hero_idsint32[]matches_playedint64net_worth_diffnumbersample_matchesint64sample_time_sint32statsobjectwinsint64
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/lane-matchup-stats"GET /v1/analytics/lane-soul-curve Lane Soul Curve (Subject to Change)
> ⚠️ Subject to change: This endpoint is newly added and not yet stable. Its parameters, response fields and semantics may change or be removed without notice.
Retrieves how a duo's lead over the duo they laned against develops over the course of the match.
The curve is not interpolated: it carries exactly the samples the game records, which are every 180 seconds up to the 15 minute mark and every 300 seconds after that. It runs from min_time_s (180 by default) to max_time_s, which is open by default, so a matchup is followed until its matches end. sample_matches reports how many matchups were still running at each point, and thins out towards the end of the curve.
Only lanes where *both* sides fielded exactly two players are counted, and each lane contributes one row per side, so every matchup appears twice with the two sides swapped.
Souls are always reported, in net_worth_diff. Pass stats for curves of any other per-tick stat the game records — kills, denies, player damage, healing, level and so on — each as the duo's own combined value *and* as its lead over the enemy duo.
group_by chooses what a row stands for. The default groups all three dimensions, giving one row per duo-versus-duo matchup per lane. Dropping enemy_hero_ids gives a duo's curve across every opponent, dropping hero_ids gives what a duo is up against, and dropping assigned_lane merges the lanes. Folded dimensions come back as 0 / an empty array.
Pass hero_ids and enemy_hero_ids to scope the response to the duos you care about. Without them the full duo-versus-duo matrix is computed, which is a considerably more expensive query.
Results are cached for 1 hour based on the combination of query parameters provided. Subsequent identical requests within this timeframe will receive the cached response.
| name | in | type | required |
|---|---|---|---|
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
min_time_s | query | int32 | no |
max_time_s | query | int32 | no |
assigned_lanes | query | string | no |
hero_ids | query | int32[] | no |
enemy_hero_ids | query | int32[] | no |
stats | query | string | no |
group_by | query | string | no |
min_matches | query | int64 | no |
max_matches | query | int64 | no |
account_ids | query | int32[] | no |
Returns LaneSoulCurve[]
assigned_laneint32enemy_hero_idsint32[]hero_idsint32[]matches_playedint64net_worth_diffnumber[]net_worth_diff_stdnumber[]sample_matchesint64[]sample_times_sint32[]statsobject
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/lane-soul-curve"GET /v1/analytics/player-performance-curve Player Performance Curve
Retrieves player performance statistics (net worth, kills, deaths, assists) over time throughout matches.
Results are cached for 1 hour based on the unique combination of query parameters provided.
| name | in | type | required |
|---|---|---|---|
resolution | query | int32 | no |
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_networth | query | int64 | no |
max_networth | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
hero_ids | query | string | no |
include_item_ids | query | int32[] | no |
exclude_item_ids | query | int32[] | no |
account_ids | query | int32[] | no |
Returns PlayerPerformanceCurvePoint[]
assists_avgnumberassists_stdnumberdeaths_avgnumberdeaths_stdnumbergame_timeint32gold_boss_avgnumbergold_boss_orb_avgnumbergold_death_loss_avgnumbergold_denied_avgnumbergold_lane_creep_avgnumbergold_lane_creep_orbs_avgnumbergold_neutral_creep_avgnumbergold_neutral_creep_orbs_avgnumbergold_player_avgnumbergold_player_orbs_avgnumbergold_treasure_avgnumberkills_avgnumberkills_stdnumbernet_worth_avgnumbernet_worth_stdnumber
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/player-performance-curve"GET /v1/analytics/player-stats/metrics Player Stats Metrics
Returns comprehensive statistical analysis of player performance.
Results are cached for 1 hour based on the unique combination of query parameters provided. Subsequent identical requests within this timeframe will receive the cached response.
> Note: Quantiles are calculated using the DDSketch algorithm, so they are not exact but have a maximum relative error of 0.01.
| name | in | type | required |
|---|---|---|---|
hero_ids | query | string | no |
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_networth | query | int64 | no |
max_networth | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
max_matches | query | int32 | no |
include_item_ids | query | int32[] | no |
exclude_item_ids | query | int32[] | no |
account_ids | query | int32[] | no |
Returns HashMap
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/player-stats/metrics"GET /v1/analytics/scoreboards/heroes Hero Scoreboard
This endpoint returns the hero scoreboard.
| name | in | type | required |
|---|---|---|---|
sort_by | query | enum(matches, wins, losses, winrate, … +57) | yes |
sort_direction | query | enum(desc, asc) | no |
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
min_matches | query | int32 | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_networth | query | int64 | no |
max_networth | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
account_id | query | int32 | no |
account_ids | query | int32[] | no |
Returns HeroEntry[]
hero_idint32matchesint64rankint64valuenumber
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/scoreboards/heroes?sort_by=<sort_by>"GET /v1/analytics/scoreboards/players Player Scoreboard
This endpoint returns the player scoreboard.
| name | in | type | required |
|---|---|---|---|
sort_by | query | enum(matches, wins, losses, winrate, … +57) | yes |
sort_direction | query | enum(desc, asc) | no |
game_mode | query | enum(normal, street_brawl, explore_n_y_c, internal) | no |
match_mode | query | string | no |
hero_id | query | int32 | no |
min_matches | query | int32 | no |
max_matches | query | int32 | no |
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_duration_s | query | int64 | no |
max_duration_s | query | int64 | no |
min_networth | query | int64 | no |
max_networth | query | int64 | no |
min_average_badge | query | int32 | no |
max_average_badge | query | int32 | no |
min_match_id | query | int64 | no |
max_match_id | query | int64 | no |
start | query | int32 | no |
limit | query | int32 | no |
account_ids | query | int32[] | no |
Returns PlayerEntry[]
account_idint32matchesint64rankint64valuenumber
- IP
- 200req/min
- Key
- 400req/min
- Global
- 2000req/min
curl "https://api.deadlock-api.com/v1/analytics/scoreboards/players?sort_by=<sort_by>"Builds 1
Search and retrieve hero builds with comprehensive filtering options.
GET /v1/builds Search
Search for builds based on various criteria.
| name | in | type | required |
|---|---|---|---|
min_unix_timestamp | query | int64 | no |
max_unix_timestamp | query | int64 | no |
min_published_unix_timestamp | query | int64 | no |
max_published_unix_timestamp | query | int64 | no |
sort_by | query | enum(weekly_favorites, favorites, ignores, reports, … +3) | no |
start | query | int32 | no |
limit | query | int32 | no |
sort_direction | query | enum(desc, asc) | no |
search_name | query | string | no |
search_description | query | string | no |
only_latest | query | boolean | no |
language | query | int32 | no |
build_language | query | enum(English, German, French, Italian, … +14) | no |
build_id | query | int32 | no |
version | query | int32 | no |
hero_id | query | int32 | no |
tag | query | int32 | no |
rollup_category | query | int32 | no |
author_id | query | int32 | no |
Returns Build[]
hero_buildBuildHeronum_favorites?int32num_ignores?int32num_reports?int32num_weekly_favorites?int32rollup_category?int32
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/builds"Commands 4
Integration endpoints for the Deadlock Streamkit.
GET /v1/commands/resolve Resolve Command
Resolves a command and returns the resolved command.
| name | in | type | required |
|---|---|---|---|
region | query | enum(Europe, Asia, NAmerica, SAmerica, … +1) | no |
account_id | query | int32 | yes |
template | query | string | no |
hero_name | query | string | no |
Returns string
- IP
- 60req/60s
- Key
- -
- Global
- 300req/60s
curl "https://api.deadlock-api.com/v1/commands/resolve?account_id=<account_id>"GET /v1/commands/variables/available Available Variables
Returns a list of available variables that can be used in the command endpoint.
Returns VariableDescription[]
categoryVariableCategorydefault_label?stringdescriptionstringextra_argsstring[]namestring
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/commands/variables/available"GET /v1/commands/variables/resolve Resolve Variables
Resolves variables and returns a map of variable name to resolved value.
| name | in | type | required |
|---|---|---|---|
region | query | enum(Europe, Asia, NAmerica, SAmerica, … +1) | no |
account_id | query | int32 | yes |
variables | query | string | no |
hero_name | query | string | no |
Returns object
- IP
- 60req/min
- Key
- -
- Global
- 300req/min
curl "https://api.deadlock-api.com/v1/commands/variables/resolve?account_id=<account_id>"GET /v1/commands/widgets/versions Widget Versions
Returns a map of str->int of widget versions.
Returns object
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/commands/widgets/versions"Info 2
System status and info endpoints.
GET /v1/info API Info
Returns information about the API.
Returns APIInfo
fetched_matches_per_day?int64table_sizes?objectuser_ingested_matches_last24h?int64
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/info"GET /v1/info/health Health Check
Checks the health of the services.
Returns Status
servicesStatusServices
- IP
- 100req/s
- Key
- -
- Global
- -
curl "https://api.deadlock-api.com/v1/info/health"SQL 3
Database exploration endpoints for direct SQL access.
GET /v1/sql Query
Executes a SQL query on the database.
| name | in | type | required |
|---|---|---|---|
query | query | string | yes |
format | query | enum(json, ndjson) | no |
Returns string
- IP
- 2req/min, 20req/hr
- Key
- 10req/min
- Global
- 30req/min
curl "https://api.deadlock-api.com/v1/sql?query=<query>"GET /v1/sql/tables List Tables
Lists all tables in the database.
Returns string[]
- IP
- 10req/min
- Key
- -
- Global
- 60req/min
curl "https://api.deadlock-api.com/v1/sql/tables"GET /v1/sql/tables/{table}/schema Table Schema
Returns the schema of a table.
| name | in | type | required |
|---|---|---|---|
table | path | string | yes |
Returns object
- IP
- 10req/min
- Key
- -
- Global
- 60req/min
curl "https://api.deadlock-api.com/v1/sql/tables/{table}/schema"Servers 4
Game server status and listing endpoints.
GET /v1/servers List Game Servers
Returns all currently active game servers.
Returns ListServersResponse
serversGameServerInfo[]
curl "https://api.deadlock-api.com/v1/servers"POST /v1/servers/metrics Game Server Metric Ingest
Ingests a single metric event reported by a game server. The schema is intentionally flexible: metric_value carries the primary numeric measurement and metadata holds arbitrary key/value context that varies per game mode or metric. Optional map and game_mode_version let callers segment leaderboards per map or per ruleset revision. Requires a valid game server secret as a Bearer token.
curl -X POST "https://api.deadlock-api.com/v1/servers/metrics"POST /v1/servers/status Game Server Status
Reports the current status of a game server. Game servers must call this endpoint at least once every 30 seconds to remain active. Requires a valid game server secret as a Bearer token.
Returns ServerStatusResponse
server_idstringttl_secsint64
curl -X POST "https://api.deadlock-api.com/v1/servers/status"GET /v1/servers/steam List Steam Game Servers
Returns the list of Deadlock game servers registered with the Steam master server (IGameServersService/GetServerList), filtered to Deadlock's appid.
Returns SteamServer[]
addrstringappidint32botsint32dedicatedbooleangamedirstringgameportint32gametypestringmapstringmax_playersint32namestringosstringplayersint32productstringregionint32securebooleansteamidstringversionstring
curl "https://api.deadlock-api.com/v1/servers/steam"Accolades 3
Accolade definitions derived from per-version game data files.
GET /v1/assets/accolades List Accolades
Returns the per-accolade metadata used by the game client, parsed from the patch's KV3 source files.
| name | in | type | required |
|---|---|---|---|
language | query | enum(brazilian, bulgarian, czech, danish, … +25) | no |
client_version | query | int32 | no |
Returns Accolade[]
class_namestringdescriptionstringenabled_game_modes?string[]flavor_namestringidint32threshold_typestringtracked_stat_namestring
curl "https://api.deadlock-api.com/v1/assets/accolades"GET /v1/assets/accolades/by-name/{name} Get Accolade By Name
Returns a single accolade by class_name or tracked_stat_name (case-insensitive).
| name | in | type | required |
|---|---|---|---|
name | path | string | yes |
language | query | enum(brazilian, bulgarian, czech, danish, … +25) | no |
client_version | query | int32 | no |
Returns Accolade
class_namestringdescriptionstringenabled_game_modes?string[]flavor_namestringidint32threshold_typestringtracked_stat_namestring
curl "https://api.deadlock-api.com/v1/assets/accolades/by-name/{name}"GET /v1/assets/accolades/{accolade_id} Get Accolade
Returns a single accolade by id.
| name | in | type | required |
|---|---|---|---|
accolade_id | path | int32 | yes |
language | query | enum(brazilian, bulgarian, czech, danish, … +25) | no |
client_version | query | int32 | no |
Returns Accolade
class_namestringdescriptionstringenabled_game_modes?string[]flavor_namestringidint32threshold_typestringtracked_stat_namestring
curl "https://api.deadlock-api.com/v1/assets/accolades/{accolade_id}"Build Tags 3
Build tag definitions derived from per-version localization keys.
GET /v1/assets/build-tags List Build Tags
Returns the build tag taxonomy used by the game client, derived from per-version localization keys.
| name | in | type | required |
|---|---|---|---|
language | query | enum(brazilian, bulgarian, czech, danish, … +25) | no |
client_version | query | int32 | no |
Returns BuildTag[]
class_namestringiconstringidint32labelstring
curl "https://api.deadlock-api.com/v1/assets/build-tags"GET /v1/assets/build-tags/by-name/{name} Get Build Tag By Name
Returns a single build tag by class_name (case-insensitive).
| name | in | type | required |
|---|---|---|---|
name | path | string | yes |
language | query | enum(brazilian, bulgarian, czech, danish, … +25) | no |
client_version | query | int32 | no |
Returns BuildTag
class_namestringiconstringidint32labelstring
curl "https://api.deadlock-api.com/v1/assets/build-tags/by-name/{name}"GET /v1/assets/build-tags/{build_tag_id} Get Build Tag
Returns a single build tag by id.
| name | in | type | required |
|---|---|---|---|
build_tag_id | path | int32 | yes |
language | query | enum(brazilian, bulgarian, czech, danish, … +25) | no |
client_version | query | int32 | no |
Returns BuildTag
class_namestringiconstringidint32labelstring
curl "https://api.deadlock-api.com/v1/assets/build-tags/{build_tag_id}"Client Versions 1
Known Deadlock client/game versions with versioned assets available.
GET /v1/assets/client-versions List Client Versions
Returns all known Deadlock client/game versions for which versioned assets are available, sorted ascending (oldest first).
Returns int32[]
curl "https://api.deadlock-api.com/v1/assets/client-versions"Colors 1
Panorama color palette from per-version citadel_base_styles.css.
GET /v1/assets/colors List Colors
Panorama color palette (@define <name>: #RRGGBB[AA]; declarations from citadel_base_styles.css), keyed by snake_case name.
| name | in | type | required |
|---|---|---|---|
client_version | query | int32 | no |
Returns object
curl "https://api.deadlock-api.com/v1/assets/colors"Generic Data 1
Game-wide generic configuration derived from per-version generic_data.vdata.
GET /v1/assets/generic-data Get Generic Data
Returns the game-wide generic configuration (street brawl, lane info, glitch settings, damage flash, item draft, etc.) parsed from the patch's generic_data.vdata KV3 source file.
| name | in | type | required |
|---|---|---|---|
client_version | query | int32 | no |
Returns GenericData
aim_spring_strengthnumber[]armor_groupsItemGroup[]damage_flashDamageFlashenemy_objectives_and_zipline_color?Colorenemy_objectives_color?Colorenemy_zipline_color?Colorglitch_settingsGlitchSettingshero_kill_gold_share_fracnumber[]item_price_per_tierint64[]lane_infoLaneInfo[]mini_map_offsetsMiniMapOffsets[]minimap_team_combine_color?Colorminimap_team_rebels_color?Colornew_player_metricsNewPlayerMetrics[]objective_paramsObjectiveParamsrejuv_paramsRejuvParamsspirit_groupsItemGroup[]street_brawl?StreetBrawltargeting_spring_strengthnumber[]trooper_kill_gold_share_fracnumber[]weapon_groupsItemGroup[]
curl "https://api.deadlock-api.com/v1/assets/generic-data"Heroes 3
Hero metadata derived from per-version game data files.
GET /v1/assets/heroes List Heroes
Returns the per-hero metadata used by the game client, parsed from the patch's KV3 source files.
| name | in | type | required |
|---|---|---|---|
language | query | enum(brazilian, bulgarian, czech, danish, … +25) | no |
client_version | query | int32 | no |
only_active | query | boolean | no |
Returns Hero[]
assigned_players_onlybooleanclass_namestringcolorsHeroColorscomplexityint64cost_bonuses?HashMap_ItemSlotType_Vec_MapModCostBonusdescriptionHeroDescriptiondisabledbooleangun_tag?stringhero_stats_uiHeroStatsUIhero_type?HeroTypehideout_rich_presence?stringidint32imagesHeroImagesin_developmentbooleanitem_draft_bucketing?HashMap_String_Option_DraftBucketingitem_draft_weights?HashMap_String_f64item_slot_infoHashMap_ItemSlotType_ItemSlotInfoitemsHashMap_HeroItemType_Stringlevel_infoHashMap_String_LevelInfolimited_testingbooleannamestringneeds_testingbooleanphysicsHeroPhysicsplayer_selectablebooleanprerelease_only?booleanpurchase_bonusesHashMap_ItemSlotType_Vec_PurchaseBonusscaling_statsHashMap_String_ScalingStatshop_stat_displayShopStatDisplayskinint64standard_level_up_upgradesHashMap_String_f64starting_statsStartingStatsstats_displayStatsDisplaytagsstring[]
curl "https://api.deadlock-api.com/v1/assets/heroes"GET /v1/assets/heroes/by-name/{name} Get Hero By Name
Returns a single hero by class_name or display name. Matches the bare value as well as the hero_-prefixed form.
| name | in | type | required |
|---|---|---|---|
name | path | string | yes |
language | query | enum(brazilian, bulgarian, czech, danish, … +25) | no |
client_version | query | int32 | no |
Returns Hero
assigned_players_onlybooleanclass_namestringcolorsHeroColorscomplexityint64cost_bonuses?HashMap_ItemSlotType_Vec_MapModCostBonusdescriptionHeroDescriptiondisabledbooleangun_tag?stringhero_stats_uiHeroStatsUIhero_type?HeroTypehideout_rich_presence?stringidint32imagesHeroImagesin_developmentbooleanitem_draft_bucketing?HashMap_String_Option_DraftBucketingitem_draft_weights?HashMap_String_f64item_slot_infoHashMap_ItemSlotType_ItemSlotInfoitemsHashMap_HeroItemType_Stringlevel_infoHashMap_String_LevelInfolimited_testingbooleannamestringneeds_testingbooleanphysicsHeroPhysicsplayer_selectablebooleanprerelease_only?booleanpurchase_bonusesHashMap_ItemSlotType_Vec_PurchaseBonusscaling_statsHashMap_String_ScalingStatshop_stat_displayShopStatDisplayskinint64standard_level_up_upgradesHashMap_String_f64starting_statsStartingStatsstats_displayStatsDisplaytagsstring[]
curl "https://api.deadlock-api.com/v1/assets/heroes/by-name/{name}"GET /v1/assets/heroes/{hero_id} Get Hero
Returns a single hero by id.
| name | in | type | required |
|---|---|---|---|
hero_id | path | int32 | yes |
language | query | enum(brazilian, bulgarian, czech, danish, … +25) | no |
client_version | query | int32 | no |
Returns Hero
assigned_players_onlybooleanclass_namestringcolorsHeroColorscomplexityint64cost_bonuses?HashMap_ItemSlotType_Vec_MapModCostBonusdescriptionHeroDescriptiondisabledbooleangun_tag?stringhero_stats_uiHeroStatsUIhero_type?HeroTypehideout_rich_presence?stringidint32imagesHeroImagesin_developmentbooleanitem_draft_bucketing?HashMap_String_Option_DraftBucketingitem_draft_weights?HashMap_String_f64item_slot_infoHashMap_ItemSlotType_ItemSlotInfoitemsHashMap_HeroItemType_Stringlevel_infoHashMap_String_LevelInfolimited_testingbooleannamestringneeds_testingbooleanphysicsHeroPhysicsplayer_selectablebooleanprerelease_only?booleanpurchase_bonusesHashMap_ItemSlotType_Vec_PurchaseBonusscaling_statsHashMap_String_ScalingStatshop_stat_displayShopStatDisplayskinint64standard_level_up_upgradesHashMap_String_f64starting_statsStartingStatsstats_displayStatsDisplaytagsstring[]
curl "https://api.deadlock-api.com/v1/assets/heroes/{hero_id}"Items 5
Item, ability, and weapon definitions parsed from the patch's KV3 source files. Mirrors the previous Python /v2/items endpoint.
GET /v1/assets/items List Items
Returns the full per-patch item list — abilities, weapons, and upgrades.
| name | in | type | required |
|---|---|---|---|
language | query | enum(brazilian, bulgarian, czech, danish, … +25) | no |
client_version | query | int32 | no |
Returns Item[]
curl "https://api.deadlock-api.com/v1/assets/items"GET /v1/assets/items/by-hero-id/{id} List Items By Hero
Hero-bound abilities, excluding the generic movement abilities.
| name | in | type | required |
|---|---|---|---|
id | path | int32 | yes |
language | query | enum(brazilian, bulgarian, czech, danish, … +25) | no |
client_version | query | int32 | no |
Returns Item[]
curl "https://api.deadlock-api.com/v1/assets/items/by-hero-id/{id}"GET /v1/assets/items/by-slot-type/{slot_type} List Items By Slot Type
| name | in | type | required |
|---|---|---|---|
slot_type | path | ItemSlotType | yes |
language | query | enum(brazilian, bulgarian, czech, danish, … +25) | no |
client_version | query | int32 | no |
Returns Item[]
curl "https://api.deadlock-api.com/v1/assets/items/by-slot-type/{slot_type}"GET /v1/assets/items/by-type/{type} List Items By Type
| name | in | type | required |
|---|---|---|---|
type | path | ItemType | yes |
language | query | enum(brazilian, bulgarian, czech, danish, … +25) | no |
client_version | query | int32 | no |
Returns Item[]
curl "https://api.deadlock-api.com/v1/assets/items/by-type/{type}"GET /v1/assets/items/{id_or_class_name} Get Item
| name | in | type | required |
|---|---|---|---|
id_or_class_name | path | string | yes |
language | query | enum(brazilian, bulgarian, czech, danish, … +25) | no |
client_version | query | int32 | no |
Returns Item
curl "https://api.deadlock-api.com/v1/assets/items/{id_or_class_name}"Loot Tables 1
Loot table definitions derived from per-version game data files.
GET /v1/assets/loot-tables List Loot Tables
Returns the per-table loot definitions used by the game client, parsed from the patch's KV3 source files. Keyed by table class_name.
| name | in | type | required |
|---|---|---|---|
client_version | query | int32 | no |
Returns object
curl "https://api.deadlock-api.com/v1/assets/loot-tables"Map 1
Map metadata: minimap radius, image-layer URLs, objective marker positions (from per-version objectives_map.css), and the zip-line lane splines.
GET /v1/assets/map Map
Map metadata for a client version: the minimap radius, image-layer CDN URLs, the relative positions of every objective/tower marker, and the three zip-line lane cubic splines. Defaults to the latest known client version.
| name | in | type | required |
|---|---|---|---|
client_version | query | int32 | no |
Returns MapData
imagesMapImagesobjective_positionsobjectradiusint32zipline_pathsZiplanePath[]
curl "https://api.deadlock-api.com/v1/assets/map"Misc Entities 2
Misc entity definitions (powerup spawners, breakable props, neutral camps, capture points, …) derived from per-version game data files.
GET /v1/assets/misc-entities List Misc Entities
Returns the per-misc-entity metadata used by the game client, parsed from the patch's KV3 source files.
| name | in | type | required |
|---|---|---|---|
client_version | query | int32 | no |
Returns MiscEntity[]
break_on_dodge_touch?booleanclass_namestringcollision_radius?numbercolor?Colordamaged_by_abilities?booleandamaged_by_bullets?booleandamaged_by_melee?booleanexpiration_duration?CurveOrFloatgold_amount?numbergold_per_minute_amount?numberhealth?int64idint32initial_spawn_delay_in_seconds?int64initial_spawn_delay_seconds?int64initial_spawn_time?numberis_mantleable?booleanlifetime?numberloot_list_deck_size?int64m_vecPickups_lv2?Pickup[]m_vecPickups_lv3?Pickup[]match_time_mins_for_level2_pickups?int64match_time_mins_for_level3_pickups?int64modifier?Subclass_ModifierDefinitionorb_spawn_delay_max?numberorb_spawn_delay_min?numberpickup_radius?CurveOrFloatprimary_drop_chance?numberprimary_pickups?Pickup[]render_after_death?booleanrespawn_time?numberroll_type?RollTypeshow_on_minimap?booleansolid_after_death?booleanspawn_interval?numberspawn_interval_in_seconds?int64
curl "https://api.deadlock-api.com/v1/assets/misc-entities"GET /v1/assets/misc-entities/{id_or_classname} Get Misc Entity
Returns a single misc entity by numeric id or by class_name (case-insensitive).
| name | in | type | required |
|---|---|---|---|
id_or_classname | path | string | yes |
client_version | query | int32 | no |
Returns MiscEntity
break_on_dodge_touch?booleanclass_namestringcollision_radius?numbercolor?Colordamaged_by_abilities?booleandamaged_by_bullets?booleandamaged_by_melee?booleanexpiration_duration?CurveOrFloatgold_amount?numbergold_per_minute_amount?numberhealth?int64idint32initial_spawn_delay_in_seconds?int64initial_spawn_delay_seconds?int64initial_spawn_time?numberis_mantleable?booleanlifetime?numberloot_list_deck_size?int64m_vecPickups_lv2?Pickup[]m_vecPickups_lv3?Pickup[]match_time_mins_for_level2_pickups?int64match_time_mins_for_level3_pickups?int64modifier?Subclass_ModifierDefinitionorb_spawn_delay_max?numberorb_spawn_delay_min?numberpickup_radius?CurveOrFloatprimary_drop_chance?numberprimary_pickups?Pickup[]render_after_death?booleanrespawn_time?numberroll_type?RollTypeshow_on_minimap?booleansolid_after_death?booleanspawn_interval?numberspawn_interval_in_seconds?int64
curl "https://api.deadlock-api.com/v1/assets/misc-entities/{id_or_classname}"NPC Units 2
NPC unit definitions derived from per-version game data files.
GET /v1/assets/npc-units List NPC Units
Returns the per-NPC-unit metadata used by the game client, parsed from the patch's KV3 source files.
| name | in | type | required |
|---|---|---|---|
client_version | query | int32 | no |
Returns NpcUnit[]
acceleration?numberattack_t1_boss_max_range?numberattack_t3_boss_max_range?numberattack_t3_boss_phase2_max_range?numberattack_trooper_max_range?numberbackdoor_bullet_resist_modifier?Subclass_BulletResistModifierbarrack_boss_dps?numberbarrack_guardian_damage_resist_pct?numberbound_abilities?objectclass_namestringempowered_modifier_level1?Subclass_EmpoweredModifierLevelempowered_modifier_level2?Subclass_EmpoweredModifierLevelenemy_trooper_damage_reduction?Subclass_TrooperDamageReductionenemy_trooper_protection_range?numbergenerator_boss_dps?numbergold_reward?numbergold_reward_bonus_percent_per_minute?numberhealth_bar_color_enemy?Colorhealth_bar_color_friend?Colorhealth_bar_color_team1?Colorhealth_bar_color_team2?Colorhealth_bar_color_team_neutral?Coloridint32intrinsic_modifiers?Subclass_IntrinsicModifiers[]laser_dps_max_health?numberlaser_dps_to_players?numbermax_health?int64max_health_final?int64max_health_generator?int64melee_attempt_range?numbermelee_damage?numbermelee_duration?numbermelee_hit_range?numbernear_death_duration?numberno_shield_laser_dps_to_players?numberobjective_health_growth_phase1?Subclass_ObjectiveHealthGrowthPhaseobjective_health_growth_phase2?Subclass_ObjectiveHealthGrowthPhaseobjective_regen?Subclass_ObjectiveRegenphase2_health?int64player_damage_resist_pct?number- … 26 more fields
curl "https://api.deadlock-api.com/v1/assets/npc-units"GET /v1/assets/npc-units/{id_or_classname} Get NPC Unit
Returns a single NPC unit by numeric id or by class_name (case-insensitive).
| name | in | type | required |
|---|---|---|---|
id_or_classname | path | string | yes |
client_version | query | int32 | no |
Returns NpcUnit
acceleration?numberattack_t1_boss_max_range?numberattack_t3_boss_max_range?numberattack_t3_boss_phase2_max_range?numberattack_trooper_max_range?numberbackdoor_bullet_resist_modifier?Subclass_BulletResistModifierbarrack_boss_dps?numberbarrack_guardian_damage_resist_pct?numberbound_abilities?objectclass_namestringempowered_modifier_level1?Subclass_EmpoweredModifierLevelempowered_modifier_level2?Subclass_EmpoweredModifierLevelenemy_trooper_damage_reduction?Subclass_TrooperDamageReductionenemy_trooper_protection_range?numbergenerator_boss_dps?numbergold_reward?numbergold_reward_bonus_percent_per_minute?numberhealth_bar_color_enemy?Colorhealth_bar_color_friend?Colorhealth_bar_color_team1?Colorhealth_bar_color_team2?Colorhealth_bar_color_team_neutral?Coloridint32intrinsic_modifiers?Subclass_IntrinsicModifiers[]laser_dps_max_health?numberlaser_dps_to_players?numbermax_health?int64max_health_final?int64max_health_generator?int64melee_attempt_range?numbermelee_damage?numbermelee_duration?numbermelee_hit_range?numbernear_death_duration?numberno_shield_laser_dps_to_players?numberobjective_health_growth_phase1?Subclass_ObjectiveHealthGrowthPhaseobjective_health_growth_phase2?Subclass_ObjectiveHealthGrowthPhaseobjective_regen?Subclass_ObjectiveRegenphase2_health?int64player_damage_resist_pct?number- … 26 more fields
curl "https://api.deadlock-api.com/v1/assets/npc-units/{id_or_classname}"Ranked Seasons 1
Ranked season definitions derived from per-version game data files.
GET /v1/assets/ranked-seasons List Ranked Seasons
Returns the ranked season definitions used by the game client, parsed from the patch's KV3 source files. Each season carries its eligibility requirements and the intervals it runs for, as unix timestamps in seconds.
| name | in | type | required |
|---|---|---|---|
language | query | enum(brazilian, bulgarian, czech, danish, … +25) | no |
client_version | query | int32 | no |
Returns RankedSeason[]
calibration_matchesint32class_namestringintervalsSeasonInterval[]min_hero_unlocksint32min_hero_winsint32min_winsint32namestringranked_typestringvalid_party_sizesint32[]
curl "https://api.deadlock-api.com/v1/assets/ranked-seasons"Ranks 3
Per-rank metadata (name, tier color, badge image URLs) derived from per-version game data files.
GET /v1/assets/ranks List Ranks
Returns the 12 player ranks (tier, localized name, badge image URLs, hex color).
| name | in | type | required |
|---|---|---|---|
language | query | enum(brazilian, bulgarian, czech, danish, … +25) | no |
client_version | query | int32 | no |
Returns Rank[]
colorstringimagesRankImagesnamestringtierint32
curl "https://api.deadlock-api.com/v1/assets/ranks"GET /v1/assets/ranks/{tier} Get Rank
Returns a single rank by tier index.
| name | in | type | required |
|---|---|---|---|
tier | path | int32 | yes |
language | query | enum(brazilian, bulgarian, czech, danish, … +25) | no |
client_version | query | int32 | no |
Returns Rank
colorstringimagesRankImagesnamestringtierint32
curl "https://api.deadlock-api.com/v1/assets/ranks/{tier}"GET /v1/assets/ranks/{tier}/{subrank}/image Rank Subrank Image
Returns the tier badge with its I-VI division numeral drawn on it (binary, not a URL). Use ?format=webp for WebP.
| name | in | type | required |
|---|---|---|---|
tier | path | int32 | yes |
subrank | path | int32 | yes |
format | query | enum(png, webp) | no |
Returns int32[]
curl "https://api.deadlock-api.com/v1/assets/ranks/{tier}/{subrank}/image"Steam Info 2
Per-version steam.inf manifest (client/server version, app IDs, build timestamp).
GET /v1/assets/steam-info Get Steam Info
Returns the steam.inf manifest published with the patch (client/server version, app IDs, source revision, build timestamp).
| name | in | type | required |
|---|---|---|---|
client_version | query | int32 | no |
Returns SteamInfo
app_idint32client_versionint32product_namestringserver_app_idint32server_versionint32source_revisionint64tools_app_idint32version_datestringversion_datetimestringversion_timestring
curl "https://api.deadlock-api.com/v1/assets/steam-info"GET /v1/assets/steam-info/all Get All Steam Infos
Returns the steam.inf manifest for every known patch as a single array, newest version first. Replaces the legacy /v1/steam-info/all endpoint.
Returns SteamInfo[]
app_idint32client_versionint32product_namestringserver_app_idint32server_versionint32source_revisionint64tools_app_idint32version_datestringversion_datetimestringversion_timestring
curl "https://api.deadlock-api.com/v1/assets/steam-info/all"GraphQL 1
GraphQL API for flexible match and player queries.
GET /v1/graphql GraphQL Playground
Interactive GraphiQL playground for exploring the GraphQL API.
Open this endpoint in a browser to access the playground. Send GraphQL queries via POST /v1/graphql with a JSON body of the form { "query": "...", "variables": {...} }.
- IP
- 10req/min
- Key
- 10req/10s
- Global
- 100req/min
curl "https://api.deadlock-api.com/v1/graphql"Assets Bucket 4
GET /v1/assets/fonts Fonts Index
Nested file-tree of all hosted fonts, mapping each name to its public CDN URL.
Returns object
curl "https://api.deadlock-api.com/v1/assets/fonts"GET /v1/assets/icons Icons Index
Nested file-tree of all hosted icons, mapping each name to its public CDN URL.
Returns object
curl "https://api.deadlock-api.com/v1/assets/icons"GET /v1/assets/images Images Index
Nested file-tree of all hosted images, mapping each name to its public CDN URL.
Returns object
curl "https://api.deadlock-api.com/v1/assets/images"GET /v1/assets/sounds Sounds Index
Nested file-tree of all hosted sounds, mapping each name to its public CDN URL.
Returns object
curl "https://api.deadlock-api.com/v1/assets/sounds"Internal 2
POST /v1/feedback Submit Website Feedback
Stores a component annotation or general feedback submitted from deadlock-api.com.
- IP
- 10req/min, 100req/h
- Key
- -
- Global
- 2000req/h
curl -X POST "https://api.deadlock-api.com/v1/feedback"POST /v1/matches/salts Match Salts Ingest
You can use this endpoint to help us collecting data.
The endpoint accepts a list of MatchSalts objects, which contain the following fields:
match_id: The match IDcluster_id: The cluster IDmetadata_salt: The metadata saltreplay_salt: The replay saltusername: The username of the person who submitted the match
- IP
- 100req/s
- Key
- -
- Global
- -
curl -X POST "https://api.deadlock-api.com/v1/matches/salts"