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.
- 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.
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.
| Scope | Short window | Long window | VRC.LOL behaviour |
|---|---|---|---|
| Development / personal baseline | 20 requests / 1 second | 100 requests / 120 seconds | Read from Riot headers at runtime |
| Private VRC.LOL collector | 0.8 requests / second maximum cadence | 54 requests / regional pass | Stops at 80% of any observed bucket |
| Production starting allowance | 500 requests / 10 seconds | 30,000 requests / 10 minutes | Not 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
Independent from Riot Games
This notice is also displayed on the League homepage and in the Terms of use.
Primary sources
Review the Riot documentation directly
This page summarises implementation choices. Riot's current policies, portal records and returned headers always take priority.
