Unofficial VALORANT API using the VALORANT Ingame API
null
entries in the json (should now happen less often)?season=e5a3
) would fail with an 500 errordamage_made
field in the match/v2 was incorrect (#62)X-Request-ID
/lookup [ID]
is_available
on the v3/matches endpoints are now also populated if the match is available with is_available: true
for better error checkinggame_updates
instead of patch_notes
on the website endpoint07.08.2022 evening (Timezone: MESZ)
getFeaturedItems()
now takes an object as a parameter ==> getFeaturedItems({version})
getAccountByPUUID({puuid, force?})
getCrosshair({code, size?})
https://api.henrikdev.xyz/valorant/v1/by-puuid/account/:puuid
/valorant/v1/account/:name/:tag
with the same structure{
"status": 200,
"data": {
"puuid": "54942ced-1967-5f66-8a16-1e0dae875641",
"region": "eu",
"account_level": 154,
"name": "Henrik3",
"tag": "VALO",
"card": {
"small": "https://media.valorant-api.com/playercards/24e9c88c-4ee1-82fc-2048-bb8942f2147d/smallart.png",
"large": "https://media.valorant-api.com/playercards/24e9c88c-4ee1-82fc-2048-bb8942f2147d/largeart.png",
"wide": "https://media.valorant-api.com/playercards/24e9c88c-4ee1-82fc-2048-bb8942f2147d/wideart.png",
"id": "24e9c88c-4ee1-82fc-2048-bb8942f2147d"
},
"last_update": "19 minutes ago",
"last_update_raw": 1659824088
}
}
region
field.
?size
/valorant/v1/by-puuid/mmr/:region/:puuid
/valorant/v2/by-puuid/mmr/:region/:puuid
/valorant/v1/by-puuid/mmr-history/:region/:puuid
/valorant/v1/mmr/:region/:name/:tag
/valorant/v2/mmr/:region/:name/:tag
/valorant/v1/mmr-history/:region/:name/:tag
"images": {
"small": "https://media.valorant-api.com/competitivetiers/03621f52-342b-cf4e-4f86-9350a49c6d04/27/smallicon.png",
"large": "https://media.valorant-api.com/competitivetiers/03621f52-342b-cf4e-4f86-9350a49c6d04/27/largeicon.png",
"triangle_down": "https://media.valorant-api.com/competitivetiers/03621f52-342b-cf4e-4f86-9350a49c6d04/27/ranktriangledownicon.png",
"triangle_up": "https://media.valorant-api.com/competitivetiers/03621f52-342b-cf4e-4f86-9350a49c6d04/27/ranktriangleupicon.png",
}
"images": null
https://api.henrikdev.xyz/valorant/v2/store-featured
{
"status": 200,
"data": [
{
"bundle_uuid": "e143cba0-e6c4-4969-8596-0cfb63501d00",
"items": [
{
"uuid": "81ddbfcd-4081-8341-ff76-ad8cdb26ce4c",
"name": "Gravitational Uranium Neuroblaster Classic",
"image": "https://media.valorant-api.com/weaponskins/81ddbfcd-4081-8341-ff76-ad8cdb26ce4c/displayicon.png",
"type": "skin_level",
"amount": 1,
"discount_percent": 0.33,
"base_price": 1775,
"discounted_price": 1190,
"promo_item": false
},
{
"uuid": "e86bf7e4-4dd3-fbee-533b-fa875344bbaf",
"name": "Ion Phantom",
"image": "https://media.valorant-api.com/weaponskins/e86bf7e4-4dd3-fbee-533b-fa875344bbaf/displayicon.png",
"type": "skin_level",
"amount": 1,
"discount_percent": 0.33,
"base_price": 1775,
"discounted_price": 1190,
"promo_item": false
},
{
"uuid": "8fe5ebbc-4ce7-a248-9766-288441706e0a",
"name": "Ego Stinger",
"image": "https://media.valorant-api.com/weaponskins/8fe5ebbc-4ce7-a248-9766-288441706e0a/displayicon.png",
"type": "skin_level",
"amount": 1,
"discount_percent": 0.33,
"base_price": 1775,
"discounted_price": 1190,
"promo_item": false
},
{
"uuid": "31072cda-4041-b4f0-119a-3692ea598321",
"name": "Radiant Crisis 001 Bucky",
"image": "https://media.valorant-api.com/weaponskins/31072cda-4041-b4f0-119a-3692ea598321/displayicon.png",
"type": "skin_level",
"amount": 1,
"discount_percent": 0.33,
"base_price": 1775,
"discounted_price": 1190,
"promo_item": false
},
{
"uuid": "7e831918-4580-5e2a-089a-84ad58fe1aae",
"name": "Magepunk Operator",
"image": "https://media.valorant-api.com/weaponskins/7e831918-4580-5e2a-089a-84ad58fe1aae/displayicon.png",
"type": "skin_level",
"amount": 1,
"discount_percent": 0.33,
"base_price": 1775,
"discounted_price": 1190,
"promo_item": false
}
],
"seconds_remaining": 327599
}
]
}
?season
query back to E2A1retry-after
header could be negative{
"status": 400,
"errors": [
{
"message": "Missing tag",
"code": 110,
"details": "If you want to filter for name and tag you need to enter both values"
}
]
}
Code | Description |
---|---|
1 | Invalid API Key |
2 | Forbidden endpoint |
3 | Restricted endpoint |
101 | No region found for this Player |
102 | No matches found, can't get puuid |
103 | Possible name change detected, can't get puuid. Please play one match, wait 1-2 minutes and try it again |
104 | Invalid region |
105 | Invalid filter |
106 | Invalid gamemode |
107 | Invalid map |
108 | Invalid locale |
109 | Missing name |
110 | Missing tag |
111 | Player not found in leaderboard |
112 | Invalid raw type |
113 | Invalid match or player id |
114 | Invalid country code |
115 | Invalid season |
unix timestamp
?season=SEASONID
query paramhttps://api.henrikdev.xyz/valorant/v1/leaderboard/eu?season=e2a1
The NPM Package was updated to support the current API Version.
Additional changes:
With the new rank added, riot created some compatibility issues in regards to old seasons on the MMR Endpoints.
Following changes and fixes are the result of it:
Ascendant
by using two different tier to name mapping listsold
property fields in the mmr responses (boolean) that describes if the tier
values are from the old mapping list or not:
data.old
data.current_data.old
data.by_season[x].old
For sure there are also some bugs/changes in riots API:
data.current_data.games_needed_for_rating
returns 0 or 1, even tho there are still 4 or 5 matches to play until being rated
?puuid=PUUID
query (suggested by Dominik#0001
)
?start=START
?start=1500
==> Players from 1500-2500https://api.henrikdev.xyz/valorant/v1/crosshair/generate?id=CROSSHAIR_CODE
metadata.queue
property (suggested by ! vai#2005
)
Request Limits: (Subject to change)
How to use the keys in the future?
HTTP Header Authorization
{
"Authorization": "HDEV-0000-0000-0000-00000000"
}
IMPORTANT What is not allowed?
Here you will find all changes for version 2 of this API
I started to save compressed versions of all requested matches so that they are available later
I switched my host server to a new server with a 5x better connection and a bit better hardware
/valorant/v1/account/:name/:tag
allowed all version codesdate_raw
element in the mmr-history dataset was sometimes missingdata: [
{...},
{
"currenttier": 12,
"currenttierpatched": "Gold 1",
"ranking_in_tier": 47,
"mmr_change_to_last_game": 19,
"elo": 947,
"date": "Friday, December 24, 2021 11:00 AM"
-
+ "date_raw": 1640340004
},
{...}
]
latam
and br
regions (get converted to na
internally)/valorant/v2/match/:matchId
as followsplayer object (for players.all_players, players.red and players.blue)
all_players: [
{...},
{
"puuid": "54942ced-1967-5f66-8a16-1e0dae875641",
"name": "Henrik3",
"tag": "EUW3",
"team": "Blue",
"level": 98,
"character": "KAY/O",
"currenttier": 0,
"currenttier_patched": "Unrated",
"player_card": "c86953ca-4c94-c0f7-fd91-c19e03ff2b9f",
"player_title": "e3ca05a4-4e44-9afe-3791-7d96ca8f71fa",
+ "party_id": "eee67493-8683-4af4-a5a9-4a397e9c749f",
+ "session_playtime": {
+ "minutes": 6,
+ "seconds": 360,
+ "milliseconds": 360000
+ },
+ "behavior": {
+ "afk_rounds": 0,
+ "friendly_fire": {
+ "incoming": 0,
+ "outgoing": 0
+ },
+ "rounds_in_spawn": 0
+ },
+ "platform": {
+ "type": "PC",
+ "os": {
+ "name": "Windows",
+ "version": "10.0.19043.1.768.64bit"
+ }
+ },
"ability_casts": {
"c_cast": 0,
"q_cast": 3,
"e_cast": 16,
"x_cast": 2
},
"assets": {
"card": {
"small": "https://media.valorant-api.com/playercards/58314922-434e-6ed6-0625-cc9e137f7ea0/smallart.png",
"large": "https://media.valorant-api.com/playercards/58314922-434e-6ed6-0625-cc9e137f7ea0/largeart.png",
"wide": "https://media.valorant-api.com/playercards/58314922-434e-6ed6-0625-cc9e137f7ea0/wideart.png"
},
"agent": {
"small": "https://media.valorant-api.com/agents/a3bfb853-43b2-7238-a4f1-ad90e9e46bcc/displayicon.png",
"bust": "https://media.valorant-api.com/agents/a3bfb853-43b2-7238-a4f1-ad90e9e46bcc/bustportrait.png",
"full": "https://media.valorant-api.com/agents/a3bfb853-43b2-7238-a4f1-ad90e9e46bcc/fullportrait.png",
"killfeed": "https://media.valorant-api.com/agents/a3bfb853-43b2-7238-a4f1-ad90e9e46bcc/killfeedportrait.png"
}
},
"stats": {
"score": 2297,
"kills": 7,
"deaths": 16,
"assists": 4,
+ "bodyshots": 20,
+ "headshots": 7,
+ "legshots": 2
},
+ "economy": {
+ "spent": {
+ "overall": 39000,
+ "average": 2438
+ },
+ "loadout_value": {
+ "overall": 45500,
+ "average": 2844
+ }
+ },
"damage_made": 1628,
"damage_received": 2673
},
{...}
]
rounds object
rounds: [
{
"winning_team": "Red",
"end_type": "Eliminated",
"bomb_planted": true,
"bomb_defused": false,
"plant_events": {
"plant_location": {
"x": -2142,
"y": -6293
},
"planted_by": {
+ "puuid": "8d226c30-195c-5da9-8de9-d0f94c723089",
"display_name": "Almeins#4399",
"team": "Red"
},
- "plant_side": "B"
+ "plant_site": "B"
"plant_time_in_round": 26353,
"player_locations_on_plant": [
{...},
{
"player_puuid": "54942ced-1967-5f66-8a16-1e0dae875641",
"player_display_name": "Henrik3#EUW3",
"player_team": "Blue",
"location": {
"x": -842,
"y": -6901
},
+ "view_radians": 2.4077737
},
{...}
]
},
"defuse_events": {
"defuse_location": null,
"defuse_time_in_round": null,
- "player_locations_on_defuse": []
+ "player_locations_on_defuse": null
},
"player_stats": [
{...},
{
"ability_casts": {
"c_casts": 1,
"q_casts": null,
"e_cast": null,
"y_cast": null
},
"player_puuid": "54942ced-1967-5f66-8a16-1e0dae875641",
"player_display_name": "Henrik3#EUW3",
"player_team": "Blue",
"damage_events": [
{...},
{
"receiver_puuid": "00000000-0000-0000-0000-000000000000",
"receiver_display_name": "NAME#TAG",
"receiver_team": "Red",
"bodyshots": 4,
"damage": 104,
"headshots": 0,
"legshots": 0
},
{...}
],
"damage": 104,
"bodyshots": 4,
"headshots": 0,
"legshots": 0,
"kill_events": [
{...},
{
"kill_time_in_round": 32892,
"kill_time_in_match": 87925,
"killer_puuid": "54942ced-1967-5f66-8a16-1e0dae875641",
"killer_display_name": "Henrik3#EUW3",
"killer_team": "Blue",
"victim_puuid": "00000000-0000-0000-0000-000000000000",
"victim_display_name": "NAME#TAG",
"victim_team": "Red",
"victim_death_location": {
"x": -631,
"y": -5881
},
"damage_weapon_id": "29A0CFAB-485B-F5D5-779A-B59F85E204A8",
+ "damage_weapon_name": "Classic",
+ "damage_weapon_assets": {
+ "display_icon": "https://media.valorant-api.com/weapons/29a0cfab-485b-f5d5-779a-b59f85e204a8/displayicon.png",
+ "killfeed_icon": "https://media.valorant-api.com/weapons/29a0cfab-485b-f5d5-779a-b59f85e204a8/killstreamicon.png"
+ },
"secondary_fire_mode": true,
"player_locations_on_kill": [
{...},
{
"player_puuid": "54942ced-1967-5f66-8a16-1e0dae875641",
"player_display_name": "Henrik3#EUW3",
"player_team": "Blue",
"location": {
"x": -490,
"y": -5436
},
+ "view_radians": 4.390636
},
{...}
],
"assistants": [
{...},
{
"assistant_puuid": "00000000-0000-0000-0000-000000000000",
"assistant_display_name": "NAME#TAG",
"assistant_team": "Blue"
},
{...}
]
}
],
"kills": 1,
+ "score": 238,
+ "economy": {
+ "loadout_value": 0,
+ "weapon": {
+ "id": "29A0CFAB-485B-F5D5-779A-B59F85E204A8",
+ "name": "Classic",
+ "assets": {
+ "display_icon": "https://media.valorant-api.com/weapons/29a0cfab-485b-f5d5-779a-b59f85e204a8/displayicon.png",
+ "killfeed_icon": "https://media.valorant-api.com/weapons/29a0cfab-485b-f5d5-779a-b59f85e204a8/killstreamicon.png"
+ }
+ },
+ "armor": {
+ "id": "4DEC83D5-4902-9AB3-BED6-A7A390761157",
+ "name": "Light Shields",
+ "assets": {
+ "display_icon": "https://media.valorant-api.com/gear/4dec83d5-4902-9ab3-bed6-a7a390761157/displayicon.png"
+ }
+ },
+ "remaining": 100,
+ "spent": 0
+ },
+ "was_afk": false,
+ "was_penalized": false,
+ "stayed_in_spawn": false
},
{...}
]
}
]
/valorant/v1/version/:region
{
"status": 200,
"data": {
"version": "03.12.00.649370",
"clientVersion": "release-03.12-shipping-16-649370",
"branch": "release-03.12",
"region": "REGION"
}
}
status
element is now an integer{
- "status": "200",
+ "status": 200
"data": {...}
}
{
"status": 200,
"data": {
"puuid": "54942ced-1967-5f66-8a16-1e0dae875641",
"region": "eu",
"account_level": 103,
- "name": "N.A",
+ "name": null,
- "tag": "N.A",
+ "tag": null,
"card": {
"small": "https://media.valorant-api.com/playercards/8edf22c5-4489-ab41-769a-07adb4c454d6/smallart.png",
"large": "https://media.valorant-api.com/playercards/8edf22c5-4489-ab41-769a-07adb4c454d6/largeart.png",
"wide": "https://media.valorant-api.com/playercards/8edf22c5-4489-ab41-769a-07adb4c454d6/wideart.png",
"id": "8edf22c5-4489-ab41-769a-07adb4c454d6"
},
"last_update": "43 minutes ago"
}
}
/valorant/v1/by-puuid/mmr or /valorant/v1/mmr
, you will now receive a nulled version of the normal response instead of an 204 code- HTTP STATUS: 204
- BODY: ---
+ HTTP STATUS: 200
+ BODY:
{
"status": 200,
"data": {
"currenttier": null,
"currenttierpatched": null,
"ranking_in_tier": null,
"mmr_change_to_last_game": null,
"elo": null,
"name": null,
"tag": null
}
}
/valorant/v2/by-puuid/mmr or /valorant/v2/mmr
, you will now receive a nulled version like in /valorant/v1/mmr
{
"status": 200,
"data": {
"name": "Henrik3",
"tag": "EUW3",
"current_data": {
"currenttier": null,
"currenttierpatched": null,
"ranking_in_tier": null,
"mmr_change_to_last_game": null,
"elo": null,
"games_needed_for_rating": 0
},
"by_season": {...}
}
}
/valorant/v1/by-puuid/mmr-history or valorant/v1/mmr-history
, you will now receive an empty array for the data and a nulled name and tag instead of an 204 code- HTTP STATUS: 204
- BODY: ---
+ HTTP STATUS: 200
+ BODY:
{
"status": 200,
"name": null,
"tag": null,
"data": []
}
/valorant/v3/by-puuid/matches or /valorant/v3/matches
, you will now receive an empty array for the data array instead of an 204 code- HTTP STATUS: 204
- BODY: ---
+ HTTP STATUS: 200
+ BODY:
{
"status": 200,
"data": []
}
/valorant/v1/website
, you will now receive null instead of "N.A"{
"status": 200,
"data": [
{...},
{
"banner_url": "https://images.contentstack.io/v3/assets/bltb6530b271fddd0b1/blt41706b9e9fa842f0/61b3c8682d06ff39b6c63814/Val_Banner_State-of-the-Agents_1920x1080.jpg",
"category": "dev",
"date": "2021-12-23T16:00:00.000Z",
- "external_link": "N.A",
+ "external_link": null,
"title": "Stand der Agenten – Dezember 2021",
"url": "https://playvalorant.com/de-de/news/dev/state-of-the-agents-december-2021/"
},
{...}
]
}
{
- "c_cast": "N.A"
+ "c_cast": null
}
{
"status": 200,
"data": {
metadata: {
"map": "Bind",
"game_version": "release-03.12-shipping-16-649370",
"game_length": 2153653,
- "game_start": 1641794832000,
+ "game_start": 1641794832,
"game_start_patched": "Monday, January 10, 2022 7:07 AM",
"rounds_played": 22,
"mode": "Unrated",
"season_id": "a16955a5-4ad0-f761-5e9e-389df1c892fb",
"platform": "PC",
"matchid": "655f1049-47ec-4c4b-86eb-50679fc23aa4",
"region": "ap",
"cluster": "Singapore 1"
}
}
}
https://api.henrikdev.xyz/valorant/v2/leaderboard/{region}
RESPONSE BODY
{
"last_update": 1636805681,
"next_update": 1636808741,
"total_players": 29872,
"radiant_threshold": 550,
"immortal_3_threshold": 200,
"immortal_2_threshold": 100,
"immortal_1_threshold": 0,
"players": [
{
"PlayerCardID": "1e060f5a-4ce1-9109-3033-ed9aaaffb4ae",
"TitleID": "96bbed0e-426e-2f54-8ce1-ff820ca6b703",
"IsBanned": false,
"IsAnonymized": false,
"puuid": "9d606d6a-cccf-559a-aeaa-8888108833be",
"gameName": "mertz",
"tagLine": "2909",
"leaderboardRank": 1,
"rankedRating": 869,
"numberOfWins": 53,
"competitiveTier": 24
}
...
...
...
]
}