Skip to content

Shiny Tracking

Hails edited this page Jun 18, 2026 · 7 revisions

Shiny Tracking

Shiny tracking spans two pages. The Shiny Dex at /shinydex is a public reference of every shiny released in Pokemon GO, grouped by how each one can be obtained. My Collection at /shinies is a personal checklist for logged in users: mark what you have caught, in which form, and by which method, and see what is still missing.

Shiny Dex (/shinydex)

The dex lists every released shiny with method tabs across the top:

  • All -- every released shiny
  • Wild -- encountered randomly in the overworld
  • Raids -- rare reward after defeating a raid boss
  • Eggs -- hatched from 2km, 5km, 7km, or 12km eggs
  • Research -- reward encounters from field research tasks
  • Evolution -- evolve the base form; cannot be caught directly
  • Photobomb -- appears by surprise when taking a GO Snapshot

Each tab shows its count, and a Pokemon appears under every method that applies to it. The search box filters by name within the active tab.

Click any entry to open the detail modal: a side by side Normal versus Shiny sprite comparison, the Pokemon's name and genus, a Legendary or Mythical badge when relevant, its Pokedex flavor text, the list of methods it is available through, and a cry button with a volume slider so you can hear its call.

My Collection (/shinies)

Log in and open the Collection page to track your own shinies. Three tabs split the view:

  • All Shinies -- the full dex with your caught entries highlighted
  • Caught -- only what you own, with catch dates shown as "time ago", inline editing, and a remove button
  • Missing -- everything you have not caught in any form yet

To record a catch, click a Pokemon and pick a form (Normal, Shadow, or Purified) and a catch method (wild, egg, raid, research, evolution, photobomb, trade, or GO Tour). You can own the same species in multiple forms; forms you have already logged are disabled in the picker, and the first free form is preselected. Entries in the Caught tab can be edited (change form or method) or removed at any time, and a counter tracks how many unique species you have collected.

Collection on trainer cards

When another trainer's profile is public and they have not hidden their collection, a My Collection link appears at the bottom of their profile modal in the Trainer Directory. Clicking it expands the modal inline to show their full shiny collection: each entry shows the shiny sprite, the Pokemon name, a Shadow or Purified badge where the form applies, and the capture method (omitted when set to Any method). Clicking the link again collapses the section.

To opt out, open Settings and enable Hide shiny collection under Privacy. When enabled, the link does not appear on your trainer card and the public collection endpoint returns an empty result.

Under the hood

Shiny availability (which Pokemon are released shiny and through which methods) comes from PoGoAPI (pogoapi.net/api/v1/shiny_pokemon.json), refreshed server side and delivered with the rest of the cached game data; see Data-Sources. The pages are ts/shinydex.ts and ts/shinies.ts.

Sprites and audio come from PokeAPI: grid sprites use the PokeAPI GitHub sprite repository directly (the shiny variant lives under sprites/pokemon/shiny/), while the modal's normal versus shiny pair, the Pokedex flavor text and genus, and the cry audio URL are fetched on demand from the PokeAPI REST API by ts/shared/pokedex.ts, which caches every response in memory for the session. Sprites that 404 simply hide themselves.

Your collection is stored per account through the /api/shinies endpoints: GET lists your entries, POST adds one (pokemon_id, form, method), PUT /api/shinies/{id} updates it, and DELETE /api/shinies/{id} removes it. All mutating calls carry the CSRF token from the page's meta tag.

A separate public endpoint, GET /api/shinies/of/{username}, returns another user's collection when their profile is public and their collection is not hidden. It returns an empty array otherwise. The response includes sprite_url (shiny variant, resolved server side) in addition to the standard fields. See API-Reference for the full endpoint list and Accounts-and-Roles for how accounts work.

Clone this wiki locally