Valorant Tracker APIvaloranttracker.com ↗
Access Valorant player search, agent/map meta insights, and rank distribution data via the tracker.gg Valorant API. 4 endpoints, no auth required.
What is the Valorant Tracker API?
This API provides 4 endpoints for querying Valorant competitive data from tracker.gg, covering player lookup by Riot ID, global agent and map meta statistics, and rank distribution by region. The get_agent_insights endpoint alone returns per-agent pick rates, win rates, K/D ratios, and tier classifications for the current patch, giving developers structured access to the data most commonly needed for stat dashboards and meta analysis tools.
curl -X GET 'https://api.parse.bot/scraper/93f8bcdc-9543-4ae3-868c-a568d7b39628/search_player?query=TenZ%230505' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace valoranttracker-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.valorant_tracker_api import ValorantTracker, Player, AgentMeta, MapMeta, RankTier, Region
tracker = ValorantTracker()
# Search for a player by Riot ID
for player in tracker.players.search(query="TenZ#0505"):
print(player.platform_user_handle, player.platform_slug, player.platform_id)
# Get current agent meta insights
agent_meta = tracker.agentmetas.get()
print(agent_meta.patch_version)
for insight in agent_meta.insights:
print(insight.name, insight.class_name, insight.tier, insight.pick_rate, insight.kd_ratio)
# Get current map meta insights
map_meta = tracker.mapmetas.get()
print(map_meta.analyzed_matches)
for map_insight in map_meta.insights:
print(map_insight.name, map_insight.matches_played, map_insight.attackers_kd_ratio, map_insight.defenders_kd_ratio)
# Get rank distribution for a region
for rank in tracker.ranktiers.list(region=Region.NA):
print(rank.tier, rank.pct, rank.count, rank.division_color)
Search for Valorant players by Riot ID. Returns a list of matching players with platform identifiers. Results are prefix/fuzzy matched, so a partial query may return multiple variants. Returns an empty array if no matches are found.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Riot ID to search for (format: Name#Tag, e.g. 'TenZ#0505') |
{
"type": "object",
"fields": {
"data": "array of player objects with platformSlug, platformUserIdentifier, platformUserHandle, platformId, avatarUrl, and status fields"
},
"sample": {
"data": {
"data": [
{
"status": null,
"metadata": null,
"avatarUrl": null,
"platformId": 16,
"titleUserId": null,
"platformSlug": "riot",
"platformUserId": null,
"platformUserHandle": "TenZ#0505",
"additionalParameters": null,
"platformUserIdentifier": "TenZ#0505"
}
]
},
"status": "success"
}
}About the Valorant Tracker API
Player Search
The search_player endpoint accepts a Riot ID string in Name#Tag format (e.g. TenZ#0505) and returns a list of matching player objects. Each result includes platformSlug, platformUserIdentifier, platformUserHandle, platformId, avatarUrl, and status. Matching is prefix/fuzzy, so a single query may return multiple variants — expect to handle arrays even for specific-looking inputs. An empty array is returned when no matches exist.
Agent and Map Meta
The get_agent_insights endpoint requires no inputs and returns the current patchVersion alongside an insights array. Each agent entry includes name, className (role), tier (current meta ranking), pickRate, wlPercentage, and kdRatio. This makes it straightforward to build tier lists or track meta shifts across patches.
The get_map_insights endpoint similarly requires no inputs and returns an analyzedMatches count plus an insights array per map. Map entries include matchesPlayed, wlPercentage, kdRatio, and attacker/defender split K/D values, useful for understanding side-specific performance trends across the map pool.
Rank Distribution
The get_rank_distribution endpoint accepts an optional region parameter with accepted values of na, eu, ap, or kr. It returns an array covering every rank tier from Iron 1 through Radiant. Each object includes tier (rank name), imageUrl, pct (percentage of the player base at that tier), count (number of players), and divisionCo fields. Omitting the region parameter returns global or default distribution data.
The Valorant Tracker API is a managed, monitored endpoint for valoranttracker.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when valoranttracker.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official valoranttracker.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a Valorant agent tier list dashboard using
get_agent_insightspick rates and win rates per patch - Render rank distribution charts by region using
pctandcountfromget_rank_distribution - Implement a player search autocomplete feature using the
search_playerfuzzy match results - Compare attacker vs. defender K/D ratios across maps using
get_map_insightssplit stats - Track meta shifts between patches by periodically storing
patchVersionandtierfields from agent insights - Display a player's avatar and handle in a stats app using
avatarUrlandplatformUserHandlefrom player search results - Analyze map play frequency by sorting
matchesPlayedvalues from the map insights endpoint
| 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 | 100 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 tracker.gg offer an official developer API?+
What does `get_rank_distribution` return if I omit the region parameter?+
region parameter returns distribution data for the default or global aggregate. To get region-specific breakdowns, pass one of the accepted values: na, eu, ap, or kr. The response includes tier name, pct (percentage of players), count, and imageUrl for each rank from Iron 1 through Radiant.Can I retrieve detailed match history or per-player career stats for a specific Riot ID?+
Are agent insights broken down by rank tier or act, or only globally?+
get_agent_insights endpoint returns global aggregate data for the current patch — pick rate, win rate, K/D, and tier classification across all ranks. Rank-bracket or act-specific breakdowns are not exposed. You can fork the API on Parse and revise it to add filtered agent insight endpoints for specific rank ranges.How fresh is the meta data returned by the agent and map insights endpoints?+
get_agent_insights response includes a patchVersion field so you can tell which patch the data corresponds to. The get_map_insights response includes an analyzedMatches count. Neither endpoint exposes a explicit timestamp, so the exact data freshness depends on when tracker.gg last updated its aggregated stats — typically aligned with game patch cycles.