A league (more precisely called weekly leaderboard or simply Leaderboards) is an XP competition initially available for Android and iOS users. In May 2019, Leaderboards were added to the web (see image below), only for some users.
Each user is assigned to a league that consists of 50 random participants of a common rank who earned their first XP of the week at a similar time.
Any valid method of XP-earning (except for the placement test) counts toward the overall amount of XP earned for the ongoing competition.
By the end of all competitions those who keep their ranks within promotion zone are promoted one rank higher. Initially, participants must reach the top 10 for promotion. Currently it is as follows: Bronze 20, Silver 15, Gold 10, Sapphire 10, Ruby 10.
In addition, players who earn either 1st, 2nd or 3rd position in their groups will also earn lingots, denoted in the league area by a gold, silver, or bronze chest by their name, by an amount which increases as they progress through the leagues, as shown in the following table. (iOS gems may be awarded in place of lingots, at a rate of 100 gems per 5 lingots elsewhere.)
Some users report earning additional lingots on the Android version of the app, with some reporting earning 15 lingots for getting 3rd place in a league and others reporting receiving 30 lingots instead of 20 for getting first place.
Many bots have been spotted on these leaderboards so be wary and report any suspicious behaviour to the Duolingo Team.