How to get all medals in Pokémon GO?

You an earn medals by performing some action in Pokémon GO, such as battling in gyms or walking certain distances. At the very least this deserves you some bragging rights, but some medals will give you a nice catch bonus too.

For those into tiny Rattata: only the Extra Small (XS) count for the Youngster medal! Similarly, only Extra Large (XL) Magikarp count for the Fisherman medal. According to some research, the probability to catch a small enough Rattata is about 11 percent, for a large enough Magikarp 14 percent.

The table below – updated for Generation 3 Pokémon and trading – gives you a nice overview of all medals.

Ace TrainerTrain10 times100 times1000 times
BackpackerVisit Pokéstops100 Pokéstops1000 Pokéstops2000 Pokéstop
Battle GirlWin gym battles10 gym battles100 gym battles1000 gym battles
Battle LegendWin Legendary raids10 raids100 raids1000 raids
Berry Master Feed berries at gyms10 berries100 berries1000 berries
BreederHatch eggs10 eggs100 eggs500 eggs
ChampionWin raids10 raids100 raids1000 raids
CollectorCapture Pokémon30 Pokémon500 Pokémon2000 Pokémon
FishermanCatch big Magikarp3 big Magikarp50 big Magikarp300 big Magikarp
GentlemanTrade Pokémon10 Pokémon100 Pokémon1000 Pokémon
Gym LeaderDefend gyms10 hours100 hours1000 hours
HoennRegister Pokémon first discovered in the Johto region to the Pokédex 5 Pokémon40 Pokémon90 Pokémon
HoennRegister Pokémon first discovered in the Hoenn region to the Pokédex 5 Pokémon40 Pokémon90 Pokémon
IdolBecome best friends1 best friend2 best friends3 best friends
JoggerWalk10 km100 km1000 km
JohtoRegister Pokémon first discovered in the Johto region to the Pokédex 5 Pokémon30 Pokémon70 Pokémon
KantoRegister Pokémon first discovered in the Kanto region to the Pokédex 5 Pokémon50 Pokémon100 Pokémon
Pikachu FanCatch Pikachu3 Pikachu50 Pikachu300 Pikachu
PilotEarn km across distance of Pokémon trades1,000 km100,000 km1,000,000 km
Pokémon RangerComplete field research tasks10 tasks100 tasks1000 tasks
ScientistEvolve Pokémon3 Pokémon20 Pokémon200 Pokémon
YoungsterCatch tiny Rattata3 tiny Rattata50 tiny Rattata300 tiny Rattata