VRC.LOL

Riot API transparency

Measured requests, visible safeguards

VRC.LOL keeps Riot credentials on the server, spaces requests deliberately, reads Riot's live limit headers and stops a collection pass before an observed bucket is exhausted.

Public Riot data remains disabled Private prototype only while Riot reviews the Production API application.
Registered productPending Review
Product
VRC.LOL League Tools
App ID
860951
Public lookup
Disabled
Research publication
Disabled

This is a status disclosure, not a claim of Riot approval. Private credentials and the Developer Relations support request are not published here.

0.8 / secondSpacing
54 / routePass cap
80%Headroom
DisabledPublic Riot data

Riot's limit model

Three limits can apply at once

A successful response can carry application and method counts. A 429 response identifies the exhausted scope through Riot's rate-limit type header.

Application

Shared across the product for one routing value. The collector checks the returned application count after every Riot request.

Method

Specific endpoints can have their own bucket. Method counts receive the same 80% headroom protection.

Service

Riot services can enforce additional limits. A 429 is never treated as permission to keep trying immediately.

Implemented controls

What the collector does today

These are current server behaviours, not planned promises.

One process

A filesystem lock prevents overlapping scheduled collectors.

Regional passes stay separate

Americas and Europe run sequentially. Their seed pools and request counters are never blended.

Requests are paced

At least 1.25 seconds separates Riot API calls, limiting this collector to about 0.8 requests per second.

Every pass has a hard cap

A regional pass can issue no more than 54 Riot requests, even when more work is waiting.

Headers decide the remaining headroom

The collector reads application and method limits and counts. At 80% utilisation it ends the pass cleanly.

429 means stop and wait

The collector honours Riot's Retry-After value. Retries are bounded, recorded and never used to bypass a bucket.

Request budget

Documented limits versus our prototype

The Developer Portal and response headers are the source of truth. VRC.LOL does not assume a Production allowance before approval.

ScopeShort windowLong windowVRC.LOL behaviour
Development / personal baseline20 requests / 1 second100 requests / 120 secondsRead from Riot headers at runtime
Private VRC.LOL collector0.8 requests / second maximum cadence54 requests / regional passStops at 80% of any observed bucket
Production starting allowance500 requests / 10 seconds30,000 requests / 10 minutesNot assumed or enabled before approval

Riot may assign different application, method or service limits. The values returned in response headers override assumptions made from a general documentation example.

Game integrity

The build freezes when play begins

The player keeps control of every decision. Live match facts never become automatic coaching.

Allowed before play

Visible completed picks can prepare several matchup and item choices. The player selects the plan before the match starts.

Allowed during play

The Companion may keep that static plan visible, mark items already owned, and show factual information already visible in Riot's client.

Player-selected reference

The player may manually open a general problem such as healing or magic damage and compare multiple static options. The app does not select an answer.

Never automatic

Live KDA, gold, levels, inventory and objectives cannot reorder a build, promote an item, choose a target, rank a threat, trigger coaching audio or calculate a win chance.

Hidden stays hidden

A missing champion-select identity remains "Player not visible". The Companion does not resolve it through a cell ID, PUUID, summoner endpoint, a previous draft cache or an external service. Missing display data is treated as private even when another identifier is present.

No game actions

The Companion cannot pick, ban, trade, lock, move, cast, ping, purchase or otherwise control League for the player.

Feature-by-feature audit

A competitor's feature list is evidence, not transferable permission

Riot requires products and material feature changes to be registered and audited individually. VRC.LOL describes only behavior that is implemented in its current build.

Current: local recognition

The Companion detects the signed-in local League client and its phase without sending the lockfile credential, Riot ID or complete local response to VRC.LOL.

Current: static preparation

Champion select can prepare queue-, role- and matchup-aware build, rune and skill references. The chosen plan freezes when active play begins.

Current: visible facts

The overlay can show factual state already exposed to the player and mark inventory ownership. It does not turn that state into an automatic decision.

Proposed: confirmed rune application

A future champion-select action may preview, confirm and apply a rune page or summoner-spell pair. It remains disabled while the current read-only product description is under review.

Needs separate review

Live tier comparisons, inferred total-item gold differences, healing-item detection and other changing-match analysis require a documented source and an audited user flow before VRC.LOL can claim or ship them.

Excluded: cooldown sharing

VRC.LOL will not provide automatic or manual tracking of enemy ultimate or spell cooldowns that are not already available through regular gameplay. Riot's League policy gives enemy ultimate tracking as a prohibited example.

OP.GG publicly advertises several capabilities. That demonstrates its own service behavior; it does not disclose the approval terms, data contracts or exceptions Riot may have audited for that product.

Product boundary

Private research is not public API access

The site separates prototype collection, public features and local Companion behaviour.

Credentials stay server-side

Riot API keys are held in private server configuration. They are not embedded in HTML, JavaScript, the Windows Companion, downloads or URLs.

Evidence stays private

Collected Match-v5 evidence is not published while the Production API application is pending.

Reuse before requesting

Deduplication, seen-match markers, queue separation and caching prevent unnecessary repeat calls.

The Companion has no Riot key

The invited desktop preview reads permitted local client information on that PC and does not proxy a development key to testers.

Completed-match verification is private

When a tester explicitly enables it, the Companion submits a Match ID and one-way participant proof after play. Match-v5 replaces provisional facts, identities are discarded, and unverified records never enter public pages or aggregate evidence.

Anonymous live contract

The optional live feed rejects player names, Riot IDs, PUUIDs, account IDs, cell IDs and unknown fields. Fresh uploads are signed, replay protected, rate limited and never accepted from spectator mode.

Explicit lookup only

A visitor may search a Riot ID they already know. VRC.LOL does not offer reverse lookup from PUUIDs, concealed draft slots or internal account identifiers, and those identifiers are removed from browser responses.

Not a data broker

VRC.LOL does not resell raw Riot data, expose Riot API access, or act as an API relay for another company. Information is transformed into end-user lookup and learning features.

Permitted game assets

Champion, item and other game-specific static artwork comes from Riot-supported sources such as Data Dragon or permitted Riot materials.

Registration stays current

Material endpoints, client integrations and product features are recorded in the Developer Portal. Features can remain private or paused while Riot review is pending.

One key, one product

A Production key is reserved for its registered VRC.LOL League Tools product and is not shared with unrelated products.

Required notice

This notice is also displayed on the League homepage and in the Terms of use.

VRC.LOL League Tools is not endorsed by Riot Games and does not reflect the views or opinions of Riot Games or anyone officially involved in producing or managing Riot Games properties. Riot Games and all associated properties are trademarks or registered trademarks of Riot Games, Inc.

Primary sources

Review the Riot documentation directly

This page summarises implementation choices. Riot's current policies, portal records and returned headers always take priority.