v4.0.0
Notes for v4.0.0
Last updated
Notes for v4.0.0
Last updated
Due to recent botting attacks that impacted everyone in terms of global 429 errors, an API Key is now required. As this would break twitch bots (no ability to set headers), you can authenticate with the ?api_key
query param.
But no worries, you can easily get a key without waiting time, just follow the following steps:
Join on the discord:
Verify
Go to the #get-a-key channel
Select from the dropdown list "VALORANT (Basic Key)"
The bot will now present you an API Key that you can use instantly. If you need a higher rate limit key, please select "VALORANT (Advanced Key)". This type of key needs some information from you and follows an approval workflow and requires some waiting time.
Version 4 is written in Rust, which enables higher performance and lower latency for each request & and the overall ability to handle more requests at the same time.
The amount of backend proxies also were upgraded to 7.5x in comparison to v3, allowing higher limits and more requests to be handled.
The way of how the rate limit is calculated will be changed. Right now it's simply 1 request to API = +1 in your rate limit. As some of these calls require fetches from riot, some do not (cache, database or simply local generated like the crosshair endpoint) this will change. The biggest issue is the rate limit to riot, not the amount of requests the server can handle. So the new rate limiting will look like this:
Endpoint: /valorant/v3/matches/eu/Henrik3/VALO?size=10
7 Matches stored on the server for this user
Hit cache: false
Required Requests to Riot:
1x history
3x matches (the ones not stored on server)
Ratelimit increase: 1 (Call to API) + 4 (Calls to Riot) = 5
Endpoint: /valorant/v3/matches/eu/Henrik3/VALO?size=10
10 Matches stored on the server for this user
Hit cache: true
Required Requests to Riot:
0x history
0x matches (the ones not stored on server)
Ratelimit increase: 1 (Call to API) + 0 (Calls to Riot) = 1
Every Request now contains a X-Cache-Status header, which indicates if the response data was created from the internal cache.
These values can be HIT or MISS.
If the state is HIT, there also is a X-Cache-TTL header, indicating the time in seconds the cache (or if multiple caches used the cache TTL that will expire first) will expire and new data can be fetched. If the state is MISS, this header will not exist.
Error messages should be now more clear and reliable, no more random 500 error codes except real code issues
The following endpoints will be deprecated
These deprecations will have their full effect 3 months after release of the respective patch (in this case v4)
As you may have noticed, there is an issue with routing if you have a Telekom (German, Hungary, Romania) connection. This is related to the peering between Telekom and CF, routing the package via NewArk in every case, resulting in a latency increase by 9x in average in the eu.
The change that should fix this is applied for beta.api
and eu.api
already.
Implement new, more stable way to get the puuid
Streamlined data structure (no more unix timestamps, no formated "X minutes ago")
Query params: name
, tag
, puuid
, season
Will now be fetched directly if it's the current season (and not from 30min update cycle)
Has a cache of 5min to reduce load
Improved fetching performance
Support for pc
and console
Streamlined data structure (no mix between camelCase and under_score properties)
New query params:
start_index
: number
=> Between 1
& amount Of Players (dynamic)
size
: number
=> Defaults to 1000 => Between 1
& amount Of Players (dynamic)
The MMR v2 endpoints will now not have the ability anymore to filter by season with ?season
Streamline property names (like currenttier
=> tier
or ranking_in_tier
=> rr
by_season
is now an array
Skipped v3 for /valorant/:version/match/:region/:id
to align version numbers
Added region
param to the url
This saves (potentially) 3 unnessecary requests to the riot servers => 3 requests less that can be used elsewhere
Removes duplicate data fragments and unnecessary data
/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
Due to this, the error codes have changed and there are some few more of them, you can find them