Advanced Search Syntax

RotomLabs uses a powerful token system for complex queries. Filter Pokémon, moves, and abilities using simple prefixes and logical operators.

Basic & Exact Search

Words without a prefix search by name.

Name Match (Fuzzy)

Standard words look for partial name matches.

  • pikachu - Finds anything with "pikachu" in the name (e.g., Pikachu, Alolan Pikachu, etc.).
  • charizard blastoise - Finds Pokémon matching both names (AND). Unlikely to provide results, but still available. More powerful with the OR operator (see below).
  • !pikachu - Excludes Pokémon with "pikachu" in their name.

Exact Match (=)

Use the = operator for a strict match. This requires the item's slug (lowercase with hyphens, used with site URLs). This is perfect for avoiding unwanted variants or partial matches.

  • p=pikachu - Matches only The Pikachu species exactly (includes form variants).
  • f=mega-y - Matches the exact form slug mega-y.
  • move=earthquake - Matches the exact move slug earthquake.
  • a=sturdy - Matches the exact ability slug sturdy.
What's a slug?

A slug is a unique identifier: lowercase, no spaces, and hyphens for special characters. Site URLs use these slugs as well.
Examples: Great Tusk = great-tusk | Extreme Speed = extreme-speed | Farfetch'd = farfetch-d.

Identity & Types

Filter by National ID, elemental types, and abilities.

FieldPrefixesOperatorsExample
National ID#, national: = > < >= <= !=#25 or national>151
Type (Any)t:, type:: = !=t:fire
Primary Typept:, type1:: = !=pt:grass
Secondary Typest:, type2:: = !=st:poison
Ability (Any)a:, ability:: = !=a:sturdy
Note

Secondary and Hidden abilities only support the = operator.

Base Stats & Yields

Search by base stats or the Effort Values (EVs) granted when defeated.

FieldPrefixesExample
Hit Pointshp:hp>100
Attackatk:, attack:atk<=50
Defensedef:, defense:def:100
Sp. Atkspatk:spatk>=120
Sp. Defspdef:spdef!=80
Speedspd:, speed:spd>130
Base Stat Totalbst:bst>=500
EV Yieldsevhp:, evatk:, evspd:, etc.evatk:3

Calculated Stats

RotomLabs can estimate stats at any level. By default, it assumes Level 50.

Max Stats

Assumes 31 IV, 252 EV, and a beneficial nature.

StatPrefixExample
Max HPmaxhpmaxhp>200
Max Attackmaxatkmaxatk>150
Max Defensemaxdefmaxdef>150
Max Sp. Atkmaxspatkmaxspatk>150
Max Sp. Defmaxspdefmaxspdef>150
Max Speedmaxspdmaxspd>200

Min Stats

Assumes 0 IV, 0 EV, and a hindering nature.

StatPrefixExample
Min HPminhpminhp:100
Min Attackminatkminatk<50
Min Speedminspdminspd:50
Pro Tip: Specific Levels

Add [level] to any prefix to calculate at that level.
Example: maxspd[100]>400 (Top speed at level 100).

Note: Champions Data

For competitive "Champions" data, calculations always assume 31 IVs, regardless of whether you search for min or max stats.

Learnsets & Moves

Find Pokémon based on what they can learn and how they learn it.

MethodPrefix / OperatorExample
Any Methodmove: (fuzzy)
move= (exact)
move:earthquake
move=earthquake
Level Upmove[level]:
move[level]=
move[level]:"thunder punch"
move[level]="thunder-punch"
Egg Movemove[egg]:
move[egg]=
move[egg]:"dragon dance"
move[egg]="dragon-dance"
TM / HMmove[tm]:
move[tm]=
move[tm]:toxic
move[tm]=toxic
Tutormove[tutor]:move[tutor]:"draco meteor"
Fuzzy vs. Exact

By default, : matches any move containing that text (e.g., move:thunder matches Thunderbolt). Use = with a slug for a strict match (e.g., move=thunder).

Advanced Filters

Target specific matchups, traits, and formats.

FilterKeywordsExample
Matchupsweak:, resist:, immune:weak:fire
Extreme Matchups4xweak:, 4xresist:4xweak:water
Move Types (Physical/Special)has_phys:, has_spec:has_spec:fire
Trait Tagsis:is:legendary, is:baby, is:final
Entries From Regionregion:, r:r:sinnoh (DPP & BDSP)
Resistances, Immunities, and Weaknesses

The weak:, resist:, and immune: tags will match any Pokémon that may have an ability that affects immunity. For example, immune:ground will include Pokémon that could have levitate (e.g.immune:ground rotom will show Rotom).

Logical Operators

Combine filters with simple logic.