Back to Blog

VLRdevAPI vs Other Valorant Esports APIs

How VLRdevAPI compares to self-hosted VLR.gg JSON services, the Riot official API, and writing your own scraper, with the cost and upkeep of each.

If you need Valorant esports data in an application, four routes are common, and they suit different jobs. This page compares them on the parts that usually decide the choice: cost, setup, the data you get back, and how much upkeep the source needs.

The options at a glance

The VLRdevAPI column is the one this site is built around, so it is highlighted in each row to make the comparison easy to scan.

VLRdevAPIA self-hosted VLR.gg JSON APIThe Riot official APIYour own scraper
CostFree, MIT licensedFree software, you pay for hostingFree key, approval neededFree, plus your time
LanguagePythonAny client that reads JSONAnyAny
Where it runsIn your processA service you hostCalls RiotIn your process
API keyNot neededNot neededRequiredNot needed
DataVLR.gg pages as typed modelsVLR.gg pages as JSONIn-client match telemetryWhatever you parse
SetupOne pip installDeploy and run a serviceRegister and manage a keyWrite a parser for each page
UpkeepLibrary updatesYou update the serviceYou track Riot versionsYou fix selectors yourself

Is VLRdevAPI free?

Yes, and the same is not true of every option here. VLRdevAPI is free and open source under the MIT licence, installable from PyPI, and usable in commercial projects without a fee, a key, or an approval step. The Riot API is also free but requires an approved key scoped to your application and region. A self-hosted VLR.gg JSON service uses free software while costing you a server to keep running. A scraper costs nothing to write and a lot to maintain over time.

For esports data specifically, that cost difference is the usual reason people land on VLRdevAPI. Esports results, standings, rosters, and prize pools are not in the Riot API at all, and the paid providers that do carry them charge for what VLR.gg already publishes.

VLRdevAPI

VLRdevAPI is a Python library for VLR.gg esports data. It exposes six namespaces: matches, team, player, event, series, and news. Every method returns Pydantic models with field descriptions, so your editor autocompletes field names and a type checker catches mistakes before you run anything.

import vlrdevapi

standings = vlrdevapi.event(2765).standings()
entries = [entry for stage in standings for entry in stage.standings]
if entries:
    for entry in entries:
        prize = entry.prize_money or 0
        print(entry.place, entry.team.name, prize)
else:
    print("No standings available for this event.")

Reach for it when you write Python, want typed data without writing parsers, and would rather not run another service.

A self-hosted VLR.gg JSON API

Community projects wrap VLR.gg in an HTTP service, most of them on Node.js. You run the service yourself and call it over HTTP. That fits a JavaScript frontend, a Go service, a spreadsheet, or anything else that reads JSON but is not Python.

The cost is a second process to own. You deploy it, keep it current, and read its logs when VLR.gg changes. The response shapes are decided by that project, so a field rename upstream can reach your code.

Choose this when you need JSON from a non-Python stack and you are comfortable running and updating a small server.

The Riot official API

Riot's API is the only source for some data, mainly raw match telemetry from the client and account level statistics. It needs a key, it is scoped to your application and region, and it has no notion of esports tournaments. There are no prize pools, event standings, or news articles in it, because those live on VLR.gg rather than inside the game.

Use it when you need in-client telemetry or account data. When you also need esports context, run it alongside VLRdevAPI.

Writing your own scraper

Scraping VLR.gg directly gives you full control. You pick the selectors, the caching, and the retry policy. The cost arrives later: VLR.gg changes its markup, and selectors that worked in January return empty lists in June. Someone has to notice and fix each one.

VLRdevAPI exists to remove that job. Parsing and normalization live in the library, and a free package update replaces the selectors you would otherwise edit by hand.

When to use what

  • Python project that needs esports data: VLRdevAPI.
  • Non-Python service that needs JSON: a self-hosted VLR.gg API.
  • In-client telemetry or account statistics: the Riot official API.
  • A page field that no library exposes: your own scraper, for that one page.

Most projects end up using more than one. VLRdevAPI covers the esports layer for free, and the Riot API covers anything that only exists inside the client.

Next steps

Ready to build with VLRdevAPI?

Install the Python SDK and start fetching Valorant esports data in minutes. No API key required.

Read the Docs