Unofficial VALORANT API using the VALORANT Ingame API
The last big update is now around one year old, which is due to limited time on dev side, but also because there is not that much more stuff to implement... So here is v4 :D
V4 is completly written in rust, which should improve stability and performance.
Here are the things that will change on your side [WIP]:
updated_at: Date
?name
- Search for all premier teams with this name (case insensitive)?tag
- Search for all premier teams with this tag (case insensitive)?division
- Search for all premier teams in this divisions (must be a number between 1 and 20)?conference
- Search for all premier teams in this conference (for example: EU_CENTRAL_EAST
)?primary
- Primary Color of the Icon (Format: HEX (without the # in the beginning) | Default Color: #ff0000)?secondary
- Secondary Color of the Icon (Format: HEX (without the # in the beginning) | Default Color: #00ff00)?tertiary
- Tertiary Color of the Icon (Format: HEX (without the # in the beginning) | Default Color: #0000ff)snowball
is now snowballfight
(due to an internal change on how available modes are fetched)filter
query will be renamed to a more matching/understandable name (based on the endpoint)filter
query will still work another two to four weeks after this update is deployed to give all devs enough time to switch
/valorant/v2/by-puuid/mmr/:region/:puuid
=> season
/valorant/v3/by-puuid/matches/:region/:puuid
=> mode
/valorant/v3/matches/:region/:name/:tag
=> mode
/valorant/v2/mmr/:region/:name/:tag
=> season
/valorant/v1/website/:countrycode
=> category
tournament_id
and matchup_id
are strings if it's a tournament!!! premier match
"metadata": {
"map": "Ascent",
"game_version": "release-05.10-shipping-11-796984",
"game_length": 2428,
"game_start": 1668895467,
"game_start_patched": "Saturday, November 19, 2022 11:04 PM",
"rounds_played": 23,
"mode": "Competitive",
+ "mode_id": "competitive"
"queue": "Standard",
"season_id": "aca29595-40e4-01f5-3f35-b1b3d304c96e",
"platform": "PC",
"matchid": "db7e3bd2-8be8-4f3d-a95c-253fbc4fa4cc",
+ "premier_info": {
+ "tournament_id": null,
+ "matchup_id": null
+ },
"region": "eu",
"cluster": "Paris"
},
+ "observers": [
+ {
+ "puuid": "2c374684-b7f2-54fd-ab99-c58a0270f11b",
+ "name": "p0ly",
+ "tag": "biffy",
+ "platform": {
+ "type": "PC",
+ "os": {
+ "name": "Windows",
+ "version": "10.0.19044.1.768.64bit"
+ }
+ },
+ "session_playtime": {
+ "minutes": 552,
+ "seconds": 33120,
+ "milliseconds": 33120000
+ },
+ "team": "Neutral",
+ "level": 408,
+ "player_card": "72f9b137-41f1-ef95-853a-798212f064ee",
+ "player_title": "224f0e96-475d-165d-3ca6-8481a4cb7629",
+ "party_id": "f09891bb-fca7-46d2-a6f9-6fe800d1d9b8"
+ }
+ ]
+ "coaches": [
+ {
+ "puuid": "d9edbd46-5a7a-55df-867d-92aa1b8b95b2",
+ "team": "Blue"
+ },
+ {
+ "puuid": "964e5160-aa54-54a6-8665-e38b06e2099d",
+ "team": "Red"
+ }
+ ]
roster
can be null
if it's not a premier match
"teams": {
"red": {
"has_won": false,
"rounds_won": 4,
"rounds_lost": 13,
+ "roster": {
+ "members": [
+ "15dd6c64-0797-518a-bf42-01bcced3b7e1",
+ "54942ced-1967-5f66-8a16-1e0dae875641",
+ "aa14daf6-9cf0-53dc-a64e-eb6c30f3044a",
+ "260d28b4-e8c8-58e2-9ccd-bd28c10e2217",
+ "71d18afb-6abb-5093-8f39-b4328e02be0c",
+ "861c8885-6d5f-5a33-9ba7-a823bf16da13"
+ ],
+ "name": "VALO DE",
+ "tag": "VALO",
+ "customization": {
+ "icon": "5f94f2cd-417a-eea6-2bfe-3f809ca12395",
+ "image": "https://cdn.henrikdev.xyz/valorant/v1/premier/team-icon/5f94f2cd-417a-eea6-2bfe-3f809ca12395?primary=e20d0d&secondary=0d0c0d&tertiary=d6cec0",
+ "primary_color": "#e20d0d",
+ "secondary_color": "#0d0c0d",
+ "tertiary_color": "#d6cec0"
+ }
+ }
},
}
These endpoints provide a compact list of all games a user has ever played, provided these games have been retrieved from this API, for example via the /matches endpoints in the past.
Possible queries:
?mode
= Filters for a mode
?map
= Filters for a map
?page
= [NEEDED for Pagination, needs ?size
] The page used in pagination
?size
= [NEEDED for Pagination, does not need ?page
] Amount of returned matches
If ?page
is used, you also need to use ?size
IMPORTANT: This may be not a complete list of all matches the requested user has played as explained above
The API now runs on the new server in helsinki. Based on your location in the world, you may experience a higher or lower latency (between -20ms and +20ms on average)
metadata.game_length
is now returned in seconds like metadata.game_start
to reduce confusionbust
in the player objects now returns a valid image?map
query now correctly returns all matches that were played on the given map in the past games{
currenttier: number,
currenttier_patched: string,
images: {
small: string,
large: string,
triangle_down: string,
triangle_up: string,
},
+ match_id: string,
+ map: {
+ name: string,
+ id: string
+ },
+ season_id: string,
ranking_in_tier: number,
mmr_change_to_last_game: number,
elo: number,
date: string,
date_raw: number,
}
expires_at
highest_rank
object in /valorant/v2/mmr/{region}/{name}/{tag} or /valorant/v2/by-puuid/mmr/{region}/{puuid} was wrong under certain conditions/v1/esports/schedule
endpoint
vrl_france
and vrl_dach
games:https://api.henrikdev.xyz/valorant/v1/esports/schedule?league=vrl_dach&league=vrl_france
/v2/store-offers
endpoint
highest_rank
object to the mmr endpoints/v1/store-offers
endpointCreate an issue or report it at the support server
Create an issue or tell me at the support server
by-puuid
and via name
) for the beginningThese Changes will change the average response times to the following: