ZENKO
Closed beta

Data Usage · League of Legends

How Zenko analyzes League of Legends

What we read from the Riot API, how often we check it, and how one game settles a challenge. This page is for players who want the methodology behind the numbers, the challenge hub itself stays focused on the picks.

What we read from Riot

Zenko reads match history and account data from the Riot Games API using the documented endpoints:

  • Account and Summoner to link your Riot ID, keep it current if you rename, and show your profile icon and level.
  • Match V5 to fetch detailed per-match stats: kills, deaths, assists, CS (creep score), vision score, objective participation (towers and dragons), role and lane, champion, and win or loss.
  • League to read your current tier, division, and LP.
  • Spectator to see when a game you are playing has started, while you have a challenge running.
  • Data Dragon (static assets) to display champion and item artwork. Data Dragon is served directly by Riot and requires no API key.

We do not use any undocumented endpoints. All data is read-only public data tied to your linked League account; Zenko never makes changes to your account or sends commands.

How challenges settle

Most League challenges are settled by one Ranked Solo/Duo game. When you start a challenge, Zenko records the target (for example, "get 8+ kills"). The first qualifying game you begin within 12 hours that meets the target wins it. Many one-game challenges also give you retries, shown on the card: a qualifying game that misses the target uses one, and if your last try misses, or time runs out after a game that missed, the challenge ends as a loss. A challenge to win your next games is settled by those games instead, still within 12 hours. There is nothing to report and nothing to settle by hand.

What qualifies: a Ranked Solo/Duo game on your linked account that begins after you start the challenge and within 12 hours. A game that ends in a surrender counts. Remakes and games shorter than 15 minutes do not, and neither does a game on a role or champion your challenge does not allow. A game that does not qualify does not count and uses no try, so you can keep playing until a game qualifies. A game you leave or go inactive in, other than a remake, is not skipped, whatever its role, champion or length: it counts as a lost game, and uses one of your tries. On a challenge over several games, it counts as one of those games, lost. That means a game where you were active for less than 80% of the match, or one Riot flags for leaving or inactivity.

If time runs out before a game decides a one-game challenge, it ends as a loss if you played any League game in that time, in any queue, whether or not it qualified. If you played no game at all, any entry is returned.

If time runs out on a challenge over several games, the qualifying games you played decide it, and falling short is a loss, as it is when no game you played qualified. If you played no game at all in that time, any entry is returned. On an Off-Meta challenge, if time runs out before you finish the run, it ends as a loss, even if you haven't lost a game.

How often we check

While a challenge is running, Zenko checks about once a minute whether you are in a game. While you play, it looks every 30 seconds; once the game ends it checks your match history every 15 seconds for about six minutes, so your result follows shortly after Riot records the match. With no game in progress it checks every three minutes. Your running challenge in the Activity panel has a "Check for match" button, usable every two minutes.

With no challenge running, your match history and rank refresh on a schedule that follows how recently you played: about every hour if you played in the last day, every six hours if you played in the last week, and once a day otherwise, or once a day however much you play if you have not played a challenge on Zenko in 30 days. Your ranked match history is also brought up to date every six hours.

Every one of these checks runs through Riot's rate limits, reads documented endpoints only, and never sends commands to your account.

Roles and champions

Some League challenges name a role (top, jungle, mid, bot, or support), and only games in that role count. Most do not: they count any role, a few any role but support, and you can add a role yourself with the lane add-on before you start. The card shows the role when it has one, and if it does not suit you, reroll the card.

Targets draw on your stats in the game, such as:

  • Kills, deaths, assists. Your raw KDA in the game.
  • CS. Creep score, or CS per minute.
  • Vision or objective metrics. Ward coverage or participation in drakes and towers.

A challenge can also carry a champion, either built into the card or picked as an add-on in the challenge drawer before you start. A game on another champion does not count and uses no try, on any challenge. An add-on rescales the target and the multiplier with it. Where the picker shows a champion's meta tier, that tier is a hint for choosing and does not change the target. It is not a Riot endorsement or official tier list.

How difficulty adapts to your performance

Targets re-tune to your recent performance history. Each one starts from what you usually reach and asks for a little more, and a harder level asks for more again. A hot streak raises your next targets, a cold streak relaxes them.

This is personal tuning, not an alternate ranking system. Zenko does not publish a public leaderboard, and does not re-rank Riot's Ranked ladder. The difficulty tuning is internal to Zenko and invisible to other players. The performance percentile on your profile is a personal signal: it reflects how your play compares within the Zenko player cohort, derived from your own match history. It is not a skill rating, an MMR or ELO estimate, or a ranking of all League players.

A challenge that names a role reads your baseline in that role once you have played enough games in it, so a mid target reflects how you play mid, not jungle.

Your data and control

What we store: your League account link, the matches we read (for settlement and your match history), your ranked tier, and aggregated analysis metrics. All of this is derived from public match data from the Riot API.

What we do not store: passwords, email addresses tied to your Riot account, or any data from your Riot account besides what the public API returns.

Unlinking: a linked account is locked to your profile. To change or remove it, contact Zenko at support@zenko.gg. When an account is unlinked, we delete the analysis and rank data built from it and mark the link released. The match records we read are kept against that Riot account, so linking it again does not re-read them, and they are cleared if a different Zenko player links it.

For detailed privacy and data retention policies, see /privacy and /legal.

Powered by Riot Games API

League of Legends and Teamfight Tactics are trademarks of Riot Games, Inc. Zenko is not endorsed by, affiliated with, or associated with Riot Games, Inc.

Have a question this page did not answer? Get in touch.