Unofficial Valorant Api Versions Save

Unofficial VALORANT API using the VALORANT Ingame API

v4.0.0

1 month ago

Long time, no see...

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]:

[ERROR HANDLING & ERROR CODES]

  • Error messages should be now more clear and reliable, no more random 500 error codes except real code issues
  • Due to this, the error codes have changed and there are some few more of them, you can find them [here]

[PREMIER]

/valorant/v1/premier/search

  • The API now only returns 50 entries if no query parameters are provided instead of the whole database
    • This was a bug in v3 and not intentional
  • Added a new property to each object: updated_at: Date

/valorant/v1/premier/:name/:tag & /valorant/v1/premier/:id

  • These endpoints will now not return the 500 error code anymore
  • You can still only find teams that are enrolled and indexed in the ingame leaderboard
  • The leaderboard is getting scanned for updated/teams every three hours

v3.0.1

6 months ago

Note: Next major patch/update/content will come with the upcoming Rust rewrite

CDN

  • Rewrite to Rust
  • Performance increased from 3 seconds per newly generated premier icon to an average of 100ms

API

Premier

  • Added a scheduled_events object in the valorant/v1/premier/seasons/:affinity endpoint

v3.0.0

1 year ago

New Endpoints

Premier API

  • /valorant/v1/premier/:team_name/:team_tag
  • /valorant/v1/premier/:team_name/:team_tag/history
  • /valorant/v1/premier/:id
  • /valorant/v1/premier/:id/history
  • /valorant/v1/premier/search
    • ?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)
  • /valorant/v1/premier/conferences
  • /valorant/v1/premier/seasons/:affinity
  • /valorant/v1/premier/leaderboard/:affinity
  • /valorant/v1/premier/leaderboard/:affinity/:conference
  • /valorant/v1/premier/leaderboard/:affinity/:conference/:division

Premier CDN (Base URL: https://cdn.henrikdev.xyz)

  • /valorant/v1/premier/team-icon/:id
    • ?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)
  • /valorant/v1/premier/conference/:id

Queue Status

  • /valorant/v1/queue-status/:affinity

Lifetime

  • /valorant/v1/lifetime/mmr-history/:region/:name/:tag
  • /valorant/v1/by-puuid/lifetime/mmr-history/:region/:puuid

Querys

Changes

filter/mode

  • The value snowball is now snowballfight (due to an internal change on how available modes are fetched)

Deprecations

filter

  • The filter query will be renamed to a more matching/understandable name (based on the endpoint)
  • The 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

Field Changes

All matches endpoints (excluding lifetime)

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"
+         }
+     }
  },
}

v2.7.0

1 year ago

New Endpoints

  • /valorant/v1/lifetime/matches/:region/:name/:tag
  • /valorant/v1/by-puuid/lifetime/matches/:region/:puuid

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

Server Migration

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)

v2.6.3

1 year ago

Changes

Matches (v3/matches, v2/match and v3/by-puuid/matches)

  • metadata.game_length is now returned in seconds like metadata.game_start to reduce confusion

Fixes

Matches (v3/matches, v2/match and v3/by-puuid/matches)

  • The agent image bust in the player objects now returns a valid image

Matches (v3/matches and v3/by-puuid/matches)

  • The ?map query now correctly returns all matches that were played on the given map in the past games

New fields

MMR-History (both by name and by puuid)

{
    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,
}

v2.6.2

1 year ago

New

Fixes

  • Fixed a bug where when the request response in /valorant/v2/mmr/{region}/{name}/{tag} or /valorant/v2/by-puuid/mmr/{region}/{puuid} would contain null values, the image links would also contain null values which breaks the links. It now returns the image to the unranked image.
  • Fixed a bug where an wrong result would be cached if the data was requested for the wrong region
  • Fixed a bug where the highest_rank object in /valorant/v2/mmr/{region}/{name}/{tag} or /valorant/v2/by-puuid/mmr/{region}/{puuid} was wrong under certain conditions

v2.6.1

1 year ago

Clustering / Load Balancing

  • Splitting the single API instance to multiple instances
    • Reducing the average response latency
    • Reducing the amount of errors in terms of 502 timeouts
    • Adds an additional fallback so that in the event of an error after an update or a general problem, the entire API is not directly affected.

v2.6.0

1 year ago

Added

  • Added the /v1/esports/schedule endpoint
    • Includes all planned esports matches
    • Can be filtered with multiple queries
      • For example: You want to filter for vrl_france and vrl_dach games:
      https://api.henrikdev.xyz/valorant/v1/esports/schedule?league=vrl_dach&league=vrl_france
      
    • Full docs in the OpenAPI Doc: https://app.swaggerhub.com/apis-docs/Henrik-3/HenrikDev-API

v2.5.2

1 year ago

Added

  • Added the /v2/store-offers endpoint
    • A formatted version of v1 with some additional data like cost
    • Will be extended with some additional data with the upcoming updates
  • Added a new highest_rank object to the mmr endpoints

Changes

  • Support for E6A1
  • Added E5A3 data for the leaderboard v2 endpoint

Fixes

  • Fixed the /v1/store-offers endpoint

Found a bug?

Create an issue or report it at the support server

Want a new endpoint or additional data?

Create an issue or tell me at the support server

v2.5.1

1 year ago

Changes

  • Implemented a first beta version of Redis Caching
    • Enabled for the mmr endpoints (by-puuid and via name) for the beginning
    • TTL is 5min
  • Replaced old proxies with new ones (may be reversed if they suck :D)

These Changes will change the average response times to the following:

  • Average Response Time (Old Proxies): 3 sec
  • Average Response Time (New Proxies, uncached): 3 sec
  • Average Response Time (New Proxies, cached): 0.4 sec