Unofficial Valorant Api Versions Save

Unofficial VALORANT API using the VALORANT Ingame API

v2.5.0

1 year ago

New

  • Support for name and tag filtering in v2/leaderboard
  • Support for puuid filtering in v2/leaderboard
  • Retry system for leaderboard/v2 to counter random null entries in the json (should now happen less often)

Improvments

  • Current Leaderboard data is now loaded from memory instead of the file directly, speeding up the response

Fix

  • Fixed an issue when requesting leaderboard/v2 with the current season id (?season=e5a3) would fail with an 500 error
  • Fixed an issue where the calculation of the damage_made field in the match/v2 was incorrect (#62)

v2.4.0

1 year ago

Improvments

  • Better / faster puuid fetching from database based on name and tag
    • Could come with some new issues, please report them on the support server
  • Improved riot id tracking throughout the API
    • Name and Tag are now always updated if for example a MMR Request for that user is made instead of just updating every hour via the account endpoint
  • Improved error tracking
    • New header: X-Request-ID
    • Saved for 4 weeks
    • Details can be viewed on the support server via the managment bot: /lookup [ID]

Changes

  • Support for E5A3
  • Added E5A1 and E5A2 for the leaderboard v2 endpoint
  • is_available on the v3/matches endpoints are now also populated if the match is available with is_available: true for better error checking

Fixes

  • Fixes an issue where patch note were marked as game_updates instead of patch_notes on the website endpoint
  • Multiple small bug fixes for the account endpoint (which is definitly the one with the most bugs)

v2.3.0

1 year ago

Information

  • Release: 07.08.2022 evening (Timezone: MESZ)

Swagger

Node.js Library

  • The library was updated to v2.3.0
  • Breaking change: getFeaturedItems() now takes an object as a parameter ==> getFeaturedItems({version})
  • New function: getAccountByPUUID({puuid, force?})
  • Updated: getCrosshair({code, size?})

Account by PUUID Endpoint

  • New endpoint: https://api.henrikdev.xyz/valorant/v1/by-puuid/account/:puuid
  • Returns the same account data as /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
  }
}

Account by Name Endpoint

  • Internal changes for fetching users without region field.
    • Should result in less global 429 errors

Crosshair Endpoint

  • New query: ?size
    • Can be as low as zero (idk who tf would do this) and up to 4096, base size without the query remains 1024

New fields on all MMR Endpoints

  • Including the following:
    • /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
  • New Image field/object
"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",
}
  • The field is nullable if no data is available (same as the other fields on error)
"images": null

Store Featured Bundle v2

  • New Endpoint https://api.henrikdev.xyz/valorant/v2/store-featured
  • This endpoint could have some bugs as soon as https://valorant-api.com is not updated when a new patch get's released
  • This endpoint is also not tested with sprays, buddies and playercards. The needed logic exists but due to a lack of response data with these items i was not able to test it before release. If bugs occurre please report them on the discord server, i will fix it then.
  • Returns a https://valorant-api.com compatible json of the current bundle
{
  "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
    }
  ]
}

v2.2.1

1 year ago

Leaderboard endpoint

  • v2 now also supports the ?season query back to E2A1

Ratelimiting

  • Fixed a bug where the retry-after header could be negative

v2.2

1 year ago

Improved Error Messages

{
  "status": 400,
  "errors": [
    {
      "message": "Missing tag",
      "code": 110,
      "details": "If you want to filter for name and tag you need to enter both values"
    }
  ]
}
  • Added error codes
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

Rate Limiting

Account Endpoint

New fields

  • last_update_raw: unix timestamp

Leaderboard v1

New query

  • Support now the ?season=SEASONID query param
  • IMPORTANT: Riot doesnt support E1A1 to E1A3 anymore, which means any season between E1A1 to E1A3 will return a 404 status code
https://api.henrikdev.xyz/valorant/v1/leaderboard/eu?season=e2a1

v2.1.1

1 year ago

NPM Package

The NPM Package was updated to support the current API Version.

Additional changes:

  • Now uses a class
  • Function parameters are now always objects
  • Add some typings
  • Changed the response object
  • Cleaner code

VALORANT Update 5.0

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:

  • The API now shows the correct rank of the user in the seasons without the new rank Ascendant by using two different tier to name mapping lists
  • Added additional old property fields in the mmr responses (boolean) that describes if the tier values are from the old mapping list or not:
    • V1
      • data.old
    • V2
      • data.current_data.old
      • data.by_season[x].old

For sure there are also some bugs/changes in riots API:

  • The values for the mmr property 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 image

v2.1.0

1 year ago

Release

  • This version will be released on the 22th of June with the new patch (except new rate limiting)

Leaderboard

  • Leaderboard v1 now also supports filtering by puuid by using the ?puuid=PUUID query (suggested by Dominik#0001)
    • Note that you can only filter by puuid or name and tag, both at the same time is logically not possible
  • Leaderboard v1 now also supports pagination with ?start=START
    • The API will return the following 1000 entries from the given start value. For example: ?start=1500 ==> Players from 1500-2500

Crosshair Endpoint

  • New endpoint: https://api.henrikdev.xyz/valorant/v1/crosshair/generate?id=CROSSHAIR_CODE
  • Outputs a 1024x1024 pixel image of the crosshair

Match Endpoint

  • Added metadata.queue property (suggested by ! vai#2005)
    • If the match was a custom game, there were no way to find out which gamemode itself was played, like unrated, deathmatch or spike rush for example
    • This property will include the played gamemode type (not gamemode itself)
      • Standard, Deathmatch, Escalation, Replication, Spike Rush, Snowball Fight

VALORANT Update v5.0

  • Support for the new map Pearl and the new rank Ascendant

Authentication and Rate Limits (NOT THIS PATCH, JUST INFO!!!)

Request Limits: (Subject to change)

  • No Key:
    • 30req/min (2 uncached accounts/hour)
    • Suitable for: Twitch Bots | Educational purposes (How do i code etc)
  • Basic Key:
    • 90req/min (unlimited uncached accounts/hour)
    • Suitable for: Private Discord Bots (Servers) / Websites
  • Production Key:
    • Rate Limit you requested
    • Suitable for: Production Discord Bots / Websites
    • PLEASE MAKE SURE THAT YOU ALSO REQUEST AN OFFICIAL VALORANT API KEY AT RIOT TO GET RSO IF YOU HAVE A STATS FEATURE FOR EXAMPLE

How to use the keys in the future? HTTP Header Authorization

{
  "Authorization": "HDEV-0000-0000-0000-00000000"
}

IMPORTANT What is not allowed?

  • Big analytic projects
    • Why? Because of data privacy. Rito set RSO as a requirement for their official API because the VAL Team said they want to protect the users data. Since i dont want to get into trouble with Riot and want to keep up the API as long as possible for normal developers out there this is a requirement
  • Public store trackers / websites / bots
    • Why? Because it's simply not allowed and the risk of scamming accounts is also way to high. If it's a private project for a couple of friends you will receive a key, but as soon as i find out that the project is used in the public the key will get revoked.

v2.0.1

2 years ago

Leaderboard

  • Now also LATAM and BR Regions are available for the leaderboard

Stored matches

  • Stored matches are now available
    • All matches since the 12th of January that were fetched are now accessible
    • All matches that where fetched one time should now be returned in 100-200ms
    • Trying to fetch more matches to save them in the future

Fixes

  • "friendly_fire":{"incoming":null,"outgoing":null} now returns proper values
  • Fixed a bug where fetching of new accounts returned a 500 error code sometimes

v2.0.0

2 years ago

API v2.0 changes

Here you will find all changes for version 2 of this API

Match data storing

I started to save compressed versions of all requested matches so that they are available later

Plans for the future

  • Websockets for rank updates
  • Compression options like brotli or gzip
  • Libary update to v2
  • Implement to send the stored data (currently only storing, not able to send these right now)
    • This will also will make the responses faster

Server Change

I switched my host server to a new server with a 5x better connection and a bit better hardware

Fixes

  • Fixed that the account endpoint /valorant/v1/account/:name/:tag allowed all version codes
  • Fixed that you wont receive a 500 error code anymore when a user changed his riot tag recently
  • Fixed that the date_raw element in the mmr-history dataset was sometimes missing
data: [
  {...},
  {
    "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 
  },
  {...}
]

Added

  • Unofficial support for latam and br regions (get converted to na internally)
  • Added new fields to the /valorant/v2/match/:matchId as follows

player 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
      },
      {...}
    ]
  }
]
  • Added new endpoint: /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"
  }
}

Changes

  • Internal changes for asset data and valorant update handling
  • Internal changes for data fetching (now mostly async)
  • Type of the status element is now an integer
{
- "status": "200",
+ "status": 200 
  "data": {...}
}
  • When the API is unable to find the real name of the user on the server it now returns null instead of "N.A" (Example account endpoint)
{
  "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"
  }
}
  • When the API is unable get data for the v1 mmr endpoint /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
  }
}
  • When the API is unable get current mmr data in /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": {...}
  }
}
  • When the API is unable to find v1 mmr-history data in /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": []
}
  • When the API is unable to find v3 matches data in /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": []
}
  • When the API is unable to get an external link in the endpoint /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/"
    },
    {...}
  ]
}
  • Changed that when the ability cast was unable to get, the API now returns null instead of "N.A"
{
- "c_cast": "N.A"
+ "c_cast": null
}
  • Changed that date_raw in the mmr-history endpoint and game_start in the matches endpoint are now unix time (in seconds)
{
  "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"
    }
  }
}

v1.7.8

2 years ago

Leaderboard v2

  • Complete Leaderboard with all entries
  • Updated every hour
  • Added some additional information
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
        }
        ...
        ...
        ...
    ]
}