vlr.gg APIvlr.gg ↗
Access Valorant esports data from VLR.gg: matches, player stats, team rankings, agent pick rates, and event listings via 7 structured endpoints.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/17a280c5-4958-46ad-b697-83a15883a046/get_events' \ -H 'X-API-Key: $PARSE_API_KEY'
Get list of current and upcoming Valorant esports events from vlr.gg.
No input parameters required.
{
"type": "object",
"fields": {
"events": "array of event objects with event_id, name, status, and url"
},
"sample": {
"data": {
"events": [
{
"url": "https://www.vlr.gg/event/2860/vct-2026-americas-stage-1",
"name": "VCT 2026: Americas Stage 1",
"status": "",
"event_id": "2860"
}
]
},
"status": "success"
}
}About the vlr.gg API
The VLR.gg API exposes 7 endpoints covering the full competitive Valorant data surface tracked on VLR.gg, from live event listings and match results to per-map player statistics. The get_match_details endpoint alone returns up to 12 per-player fields per map — including ACS, KAST, ADR, kills, deaths, assists, and headshot percentage — making it practical for building match dashboards or performance-tracking tools without parsing the site manually.
Match and Event Data
The get_matches endpoint returns paginated match listings filtered by status — either 'upcoming' or 'results'. Each match object includes team1, team2, score1, score2, event context, and a match_id slug you can pass directly to get_match_details. Pagination via the page parameter applies only to the 'results' status. The get_events endpoint returns current and upcoming events with event_id, name, status, and url, and those event_id values are the required input for get_agent_stats.
Player and Agent Statistics
get_player_stats returns a global leaderboard of players sorted by rating, with fields covering acs, kd, kast, adr, kpr, apr, fkpr (first-kill-per-round), fdpr (first-death-per-round), hs_percent, and cl_p (clutch percentage). You can filter by region (11 options including na, eu, ap, kr), agent, and timespan (30d, 60d, 90d, or all). The get_agent_stats endpoint scopes pick-rate data to a single event rather than globally, returning each agent's pick_rate percentage for that event.
Team Rankings and Roster Details
get_rankings returns a ranked list of teams per region, with rank, team, team_id, country, and rating. The region parameter accepts slugs like 'north-america', 'europe', 'asia-pacific', and 'korea' among others. Passing a team_id from those results to get_team_details returns the current roster (with player_id and role), a history array of former players, and map_win_rates showing win_rate, wins, and losses per map. The team_id slug format is '<numeric_id>/<team-slug>', consistent with VLR.gg's URL structure.
- Build a match result tracker that polls
get_matcheswithstatus='results'and stores team scores and event context. - Generate per-player performance reports using the 12+ stat fields returned by
get_match_detailsfor a given match. - Create a regional team ranking leaderboard using
get_rankingsfiltered by region and linked to team roster data fromget_team_details. - Track agent meta shifts across events by comparing
pick_ratedata fromget_agent_statsacross multipleevent_idvalues. - Filter the
get_player_statsleaderboard by agent and region to identify top performers on specific agents in a given timespan. - Monitor roster changes for a team by periodically pulling
get_team_detailsand diffing therosterandhistoryarrays. - Analyze map-level team performance by extracting
map_win_ratesfromget_team_detailsacross multiple teams in a region.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does VLR.gg have an official developer API?+
What does `get_match_details` return beyond the series score?+
get_match_details breaks the match down by individual map. For each map it returns the map name, per-team scores, and a player_stats array with fields including rating, acs, kills, deaths, assists, agent, kast, adr, and hs_percent for every player who participated. The match-level fields also include team1, team2, score1, score2, event, and date.Can I retrieve historical player statistics for a specific match period beyond 90 days?+
get_player_stats supports timespan values of 30d, 60d, 90d, and all. The all option covers the full dataset VLR.gg tracks, but arbitrary custom date ranges are not supported. You can fork the API on Parse and revise it to add a date-range filtering endpoint if your use case requires it.Does the API expose individual player profile pages, including career history and social links?+
get_player_stats and as per-match entries in get_match_details, both keyed by player_id. Dedicated player profile pages with career history are not covered. You can fork the API on Parse and revise it to add a player profile endpoint using those player_id values.Is pagination available for all match listing requests?+
page parameter in get_matches only applies when status is set to 'results'. Requests with status='upcoming' return all available upcoming matches without pagination controls.