+Esports API
Valorant and League of Legends match schedules, results, teams, rosters, player stats and standings as JSON.
The API.SH Esports API covers Valorant and League of Legends. For Valorant (from vlr.gg) you get upcoming, live and finished matches with map scores, vetoes and VOD links, team pages with rosters, ranking and winnings, pro player profiles with agent stats, and event standings with group tables and prize money. For League of Legends (from lolesports.com) you get every league, its schedule and results, team rosters and tournament standings.
- 5 endpoints
- from $1 / 1,000 calls
- 1,000 free credits / month
- failed calls free
GET https://api.api.sh/esports/v1/ standings
{ "success": true } What you can build with the Esports API
Match schedules and live scores
Show upcoming, live and finished Valorant matches with teams, map scores and event, or a LoL league's schedule with game wins and outcomes.
Fantasy and stats sites
Pull a Valorant pro's agent stats (rating, ACS, K/D, KAST, ADR, first kills) and recent matches to rank players.
Team pages and rosters
Get a team's roster with roles and countries, Valorant regional rank, record and winnings, and recent results.
Tournament tables and brackets
Read group tables, final placements and prize money for a Valorant event, or a LoL tournament's stages and standings.
Esports data you get
Field names from real responses. Numbers come parsed, URLs absolute, dates in ISO 8601.
Esports API endpoints and prices
Every Esports endpoint costs 1 credit per call: credits are $1 per 1,000 on a monthly plan, $2 pay-as-you-go. Pricing
| Valorant player: agents, teams and recent matches /esports/ | $1 · $2 PAYG 1 credit |
| Esports standings: group tables and final placements /esports/ | $1 · $2 PAYG 1 credit |
| League of Legends leagues /esports/ | $1 · $2 PAYG 1 credit |
| Valorant and League of Legends matches /esports/ | $1 · $2 PAYG 1 credit |
| Esports team: roster, ranking and results /esports/ | $1 · $2 PAYG 1 credit |
Call the Esports API
Esports standings: group tables and final placements: GET https://api.api.sh/esports/
curl "https://api.api.sh/esports/v1/standings?game=valorant&id=2004" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/esports/v1/standings",
params={"game": "valorant", "id": "2004"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/esports/v1/standings");
url.searchParams.set("game", "valorant");
url.searchParams.set("id", "2004");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); # Google Sheets (API.SH add-on)
=APISH("/esports/v1/standings", "game", "valorant", "id", "2004")
# Zapier, Make, n8n (verified node): pick the API.SH app,
# choose "Esports" and "Esports standings: group tables and final placements".
# AI agents (Claude, ChatGPT, Cursor): add the
# API.SH MCP server https://api.sh/mcp - Create a free accountConfirm your email and get 1,000 free credits every month. No card needed.
- Create an API keyOne key works for all 483 platforms.
- Send the requestJSON back in one call. Add
output=csvoroutput=ndjsonfor files.
Why API.SH for Esports data
- Public data only: no Esports login, cookies or account needed
- One key and one response shape for Esports and 482 other platforms
- Built and maintained by API.SH, not third-party publishers
- Pay per call; errors on our side cost nothing
- Live status for every endpoint
API.SH vs the official Esports API
Riot's developer API covers in-game and account data, not esports results, and Riot does not offer public access to its esports feed; official live data is licensed through partners such as GRID. API.SH reads the public vlr.gg and lolesports.com pages and returns them as JSON with no license deal.
PandaScore, GRID, DSG and odds providers sell licensed real-time feeds across many games, often aimed at betting. Community projects on GitHub scrape vlr.gg or the unofficial LoL Esports API but you have to host and fix them. API.SH sits between: Valorant and LoL data, maintained, at a fixed price per call; it does not cover CS2, Dota 2 or odds.
Esports API questions
What esports data can I get?+
Matches and results (/esports/v1/matches), LoL leagues (/esports/v1/leagues), teams and rosters (/esports/v1/team), Valorant player profiles and stats (/esports/v1/player) and standings (/esports/v1/standings).
Which games are covered?+
Valorant and League of Legends only. Player profiles are Valorant; leagues are League of Legends.
How much does the Esports API cost?+
Every Esports endpoint costs 1 credit per call. On a monthly plan 1,000 credits cost $1 (Starter is $50/month for 50,000 credits). Pay-as-you-go is $2 per 1,000 credits, with top-ups from $15 that never expire.
Is there a free esports API?+
Yes. Every account gets 1,000 free credits every month. That is 1,000 calls to /esports/v1/leagues at 1 credit each. Free community projects exist for vlr.gg and LoL Esports, but you run and maintain them yourself.
Is there an official League of Legends esports API?+
Riot does not offer public access to its esports data; the lolesports.com site is the public source. This API returns its leagues, schedules, teams and standings as JSON.
Where does the data come from?+
vlr.gg for Valorant and lolesports.com for League of Legends, read from their public pages. You do not need keys for either: one API.SH key covers them.
Does it include betting odds?+
No. It returns schedules, scores, rosters, player stats and standings, not odds.
How do I get started?+
1. Sign up at api.sh. 2. Copy your API key. 3. Call /esports/v1/matches with game=valorant. Request examples and every parameter are in the docs at https://api.sh/docs. You can also use the JS or Python SDK, Google Sheets, Zapier, Make, n8n or the MCP server at https://api.sh/mcp.