Pokémon GO’s search bar supports filter syntax that goes far beyond typing a Pokémon’s name — and learning even a handful of these strings makes managing storage, finding trade fodder, and building PvP teams dramatically faster.
Basic Filters
| Search Term | What It Finds |
|---|---|
| shiny | All Shiny Pokémon in your storage |
| legendary | All Legendary Pokémon |
| mythical | All Mythical Pokémon |
| cp1500 | Pokémon with exactly 1500 CP |
| cp100-500 | Pokémon with CP between 100 and 500 |
| 0* | Pokémon with 0% IVs (all three stats at 0) |
| 4* | Pokémon with perfect 100% IVs (“hundos”) |
| age0 | Pokémon caught today |
Combining Filters with Operators
The real power comes from combining terms with three operators: & for “and,” | for “or,” and ! to exclude a term entirely.
| Search String | What It Finds |
|---|---|
| shiny&legendary | Shiny Legendary Pokémon only |
| shiny&age0 | Shiny Pokémon caught today |
| !legendary&trade | Tradeable Pokémon, excluding Legendaries |
| cp-1500&3*,4* | Great League-eligible Pokémon (under 1500 CP) with 3-star or 4-star IVs — a fast way to find PvP-worthy candidates |
| cp-2500&3*,4* | The same, for Ultra League’s 2500 CP cap |
Why This Is Worth Learning
Beyond just organizing storage, search strings are genuinely useful for PvP prep — searching by CP cap and IV star rating is a much faster way to shortlist Great League or Ultra League candidates than scrolling through your entire collection. It also makes clearing out low-value transfer fodder (low CP, non-shiny, non-legendary duplicates) much faster before Pokémon Storage fills up.
Pair this with a search for a specific type — typing a type name like “water” or “dragon” also filters by typing — and you can build combinations like water&4* to instantly find your best Water-type Pokémon when hunting for raid counters from our Best Attackers by Type guide.
Status and Origin Filters
Beyond the four basic keywords above, the search bar recognizes a full set of status keywords that work the same way — type the word on its own, or combine it with other terms using the operators below.
| Search Term | What It Finds |
|---|---|
| lucky | Lucky Pokémon |
| shadow | Shadow Pokémon |
| purified | Purified Pokémon |
| favorite | Pokémon marked as a favorite |
| defender | Pokémon currently defending a Gym |
| evolve | Pokémon that can be evolved right now |
| costume | Pokémon wearing an event costume |
| traded | Pokémon received through trading |
| hatched | Pokémon hatched from Eggs |
| buddy1 through buddy5 | Pokémon that have reached that buddy heart level (buddy5 = All-time Best Buddy) |
These work whether or not the Pokémon is your current buddy — buddy5 pulls up every Pokémon that has ever reached the top friendship tier with you, not just the one walking beside you today.
Range Syntax, in Full
The hyphen behaves differently depending on where it sits, and it’s easy to get backwards:
- cp1500-2500 — between the two numbers, inclusive
- cp-1500 — that number and below (leading hyphen)
- cp1500- — that number and above (trailing hyphen)
The same pattern applies to hp, distance, and Pokédex number ranges (for example, 1-9 pulls up every Pokémon from Bulbasaur through Blastoise).
Building Search Strings for Real Situations
The individual filters are useful on their own, but they earn their keep once you start chaining them for a specific job:
- Finding safe trade fodder:
!favorite&!lucky&!legendary&!mythical&0*,1*— everything with low IVs that isn’t a favorite, isn’t already Lucky, and isn’t a Legendary or Mythical you’d regret losing. - Great League roster building:
cp-1500&3*,4*narrows a full Pokédex-worth of catches down to Great League-legal Pokémon with strong IVs in seconds — pair it with a type name (cp-1500&water&3*,4*) to shortlist by role. - Post-Community Day cleanup: typing the species name plus
&!lucky&!favorite&0*,1*,2*(for examplemankey&!lucky&!favorite&0*,1*,2*) isolates the low-IV duplicates from a catch spree while leaving anything you’ve favorited or already made Lucky untouched. - Checking your best relationships:
buddy5on its own is a quick way to see every Pokémon that’s reached All-time Best Buddy, which is also a fast sanity check before a Community Day you’re planning to buddy-walk for the exclusive move bonus.
Common Mistakes
A few habits cause search strings to silently return the wrong list instead of erroring out, which makes them easy to miss:
- Using a space instead of an operator. “shiny legendary” is read as two separate words, not a combined filter — use
&(AND) or a comma (OR) instead. - Mixing up comma and ampersand. A comma returns anything matching either term (shiny, lucky shows shinies and luckies);
&only returns Pokémon matching all of them. - Forgetting this only searches your storage. None of these strings touch the Pokédex, Nearby, or Gifts screen — they filter the Pokémon you already own.
- Assuming filters stack indefinitely without checking the result. Long chained strings are powerful, but it’s worth scrolling the result once before mass-transferring anything a filter turns up.





