Package-level declarations

Types

Link copied to clipboard
@Serializable
data class Ability(val id: Int, val name: String, val isMainSeries: Boolean, val generation: Handle.Named<Generation>, val names: List<Name>, val effectEntries: List<VerboseEffect>, val effectChanges: List<AbilityEffectChange>, val flavorTextEntries: List<AbilityFlavorText>, val pokemon: List<AbilityPokemon>) : NamedModel

Abilities provide passive effects for Pokémon in battle or in the overworld. Pokémon have multiple possible abilities but only one ability on each individual Pokémon. See: https://pokeapi.co/docs/v2#abilities

Link copied to clipboard
@Serializable
data class AbilityEffectChange(val effectEntries: List<Effect>, val versionGroup: Handle.Named<VersionGroup>)

The effect of an ability listed in different version groups and languages. See: https://pokeapi.co/docs/v2#abilityeffectchange

Link copied to clipboard
@Serializable
data class AbilityFlavorText(val flavorText: String, val language: Handle.Named<Language>, val versionGroup: Handle.Named<VersionGroup>)

The flavor text of an ability listed in different languages and version groups. See: https://pokeapi.co/docs/v2#abilityflavortext

Link copied to clipboard
@Serializable
data class AbilityPokemon(val isHidden: Boolean, val slot: Int, val pokemon: Handle.Named<PokemonVariety>)

Pokémon that could potentially have this ability. See: https://pokeapi.co/docs/v2#abilitypokemon

Link copied to clipboard
@Serializable
data class AwesomeName(val awesomeName: String, val language: Handle.Named<Language>)

The "scientific" name of a Pokémon shape. See: https://pokeapi.co/docs/v2#awesomename

Link copied to clipboard
@Serializable
data class Berry(val id: Int, val name: String, val growthTime: Int, val maxHarvest: Int, val naturalGiftPower: Int, val size: Int, val smoothness: Int, val soilDryness: Int, val firmness: Handle.Named<BerryFirmness>, val flavors: List<BerryFlavorMap>, val item: Handle.Named<Item>, val naturalGiftType: Handle.Named<Type>) : NamedModel

Berries are small fruits that can provide HP and status condition restoration, stat enhancement, and even damage negation when eaten by Pokémon. See: https://pokeapi.co/docs/v2#berries

Link copied to clipboard
@Serializable
data class BerryFirmness(val id: Int, val name: String, val berries: List<Handle.Named<Berry>>, val names: List<Name>) : NamedModel

The firmness of berries, used in making Pokéblocks or Poffins. See: https://pokeapi.co/docs/v2#berry-firmness

Link copied to clipboard
@Serializable
data class BerryFlavor(val id: Int, val name: String, val berries: List<FlavorBerryMap>, val contestType: Handle.Named<ContestType>, val names: List<Name>) : NamedModel

Flavors determine whether a Pokémon will benefit or suffer from eating a berry based on their nature. See: https://pokeapi.co/docs/v2#berry-flavors

Link copied to clipboard
@Serializable
data class BerryFlavorMap(val potency: Int, val flavor: Handle.Named<BerryFlavor>)

A flavor-to-potency mapping for a berry. See: https://pokeapi.co/docs/v2#berryflavormap

Link copied to clipboard
@Serializable
data class BlackWhiteSprites(val animated: GameSprites, val backDefault: String? = null, val backFemale: String? = null, val backShiny: String? = null, val backShinyFemale: String? = null, val frontDefault: String? = null, val frontFemale: String? = null, val frontShiny: String? = null, val frontShinyFemale: String? = null)
Link copied to clipboard
@Serializable
data class ChainLink(val isBaby: Boolean, val species: Handle.Named<PokemonSpecies>, val evolutionDetails: List<EvolutionDetail>, val evolvesTo: List<ChainLink>)

A single link within an evolution chain. Each link represents a Pokémon species and the conditions required for it to evolve. See: https://pokeapi.co/docs/v2#chainlink

Link copied to clipboard
@Serializable
data class Characteristic(val id: Int, val geneModulo: Int, val possibleValues: List<Int>, val descriptions: List<Description>) : Model

Characteristics help determine which stats are likely to be the highest for a Pokémon. See: https://pokeapi.co/docs/v2#characteristics

Link copied to clipboard
@Serializable
data class ContestComboDetail(val useBefore: List<Handle.Named<Move>>?, val useAfter: List<Handle.Named<Move>>?)

Information about moves that can be used before or after this move in contests. See: https://pokeapi.co/docs/v2#contestcombodetail

Link copied to clipboard
@Serializable
data class ContestComboSets(val normalSet: ContestComboDetail, val superSet: ContestComboDetail)

Information about normal and super contest combos for moves. See: https://pokeapi.co/docs/v2#contestcombosets

Link copied to clipboard
@Serializable
data class ContestEffect(val id: Int, val appeal: Int, val jam: Int, val effectEntries: List<Effect>, val flavorTextEntries: List<FlavorText>) : Model

Contest effects refer to the effects of moves when used in contests. See: https://pokeapi.co/docs/v2#contest-effects

Link copied to clipboard
@Serializable
data class ContestName(val name: String, val color: String, val language: Handle.Named<Language>)

The name of a contest type listed in different languages and colors. See: https://pokeapi.co/docs/v2#contestname

Link copied to clipboard
@Serializable
data class ContestType(val id: Int, val name: String, val berryFlavor: Handle.Named<BerryFlavor>, val names: List<ContestName>) : NamedModel

Contest types are categories judges used to weigh a Pokémon's condition in Pokémon contests. See: https://pokeapi.co/docs/v2#contest-types

Link copied to clipboard
@Serializable
data class Description(val description: String, val language: Handle.Named<Language>)

The localized description for an API resource in a specific language. See: https://pokeapi.co/docs/v2#description

Link copied to clipboard
@Serializable
data class Effect(val effect: String, val language: Handle.Named<Language>)

The localized effect text for an API resource in a specific language. See: https://pokeapi.co/docs/v2#effect

Link copied to clipboard
@Serializable
data class EggGroup(val id: Int, val name: String, val names: List<Name>, val pokemonSpecies: List<Handle.Named<PokemonSpecies>>) : NamedModel

Egg Groups are categories which determine which Pokémon are able to interbreed. See: https://pokeapi.co/docs/v2#egggroups

Link copied to clipboard
@Serializable
data class Encounter(val minLevel: Int, val maxLevel: Int, val conditionValues: List<Handle.Named<EncounterConditionValue>>, val chance: Int, val method: Handle.Named<EncounterMethod>)

Encounter details for a Pokémon in a specific location area. See: https://pokeapi.co/docs/v2#encounter

Link copied to clipboard
@Serializable
data class EncounterCondition(val id: Int, val name: String, val names: List<Name>, val values: List<Handle.Named<EncounterConditionValue>>) : NamedModel

Conditions which affect what pokemon might appear in the wild, e.g., day or night. See: https://pokeapi.co/docs/v2#encounter-conditions

Link copied to clipboard
@Serializable
data class EncounterConditionValue(val id: Int, val name: String, val condition: Handle.Named<EncounterCondition>, val names: List<Name>) : NamedModel

Encounter condition values are the various states that an encounter condition can have, i.e., time of day can be either day or night. See: https://pokeapi.co/docs/v2#encounter-condition-values

Link copied to clipboard
@Serializable
data class EncounterMethod(val id: Int, val name: String, val order: Int, val names: List<Name>) : NamedModel

Methods by which the player might can encounter Pokémon in the wild, e.g., walking in tall grass. See: https://pokeapi.co/docs/v2#encounter-methods

Link copied to clipboard
@Serializable
data class EncounterMethodRate(val encounterMethod: Handle.Named<EncounterMethod>, val versionDetails: List<EncounterMethodRateVersionDetail>)

The encounter rate for a specific encounter method in a location area. See: https://pokeapi.co/docs/v2#encountermethodrate

Link copied to clipboard
@Serializable
data class EncounterMethodRateVersionDetail(val rate: Int, val version: Handle.Named<Version>)

The encounter rate for a specific encounter method in a location area and version. See: https://pokeapi.co/docs/v2#encountermethodrateversiondetail

Link copied to clipboard
@Serializable
data class EvolutionChain(val id: Int, val babyTriggerItem: Handle.Named<Item>?, val chain: ChainLink) : Model

Evolution chains are essentially family trees. They start with the lowest stage within a family and detail evolution conditions for each as well as Pokémon they can evolve into up through the hierarchy. See: https://pokeapi.co/docs/v2#evolution-chains

Link copied to clipboard
@Serializable
data class EvolutionDetail(val trigger: Handle.Named<EvolutionTrigger>, val item: Handle.Named<Item>? = null, val gender: Int? = null, val heldItem: Handle.Named<Item>? = null, val knownMove: Handle.Named<Move>? = null, val knownMoveType: Handle.Named<Type>? = null, val location: Handle.Named<Location>? = null, val minLevel: Int? = null, val minHappiness: Int? = null, val minBeauty: Int? = null, val minAffection: Int? = null, val partySpecies: Handle.Named<PokemonSpecies>? = null, val partyType: Handle.Named<Type>? = null, val relativePhysicalStats: Int? = null, val timeOfDay: String = "", val tradeSpecies: Handle.Named<PokemonSpecies>? = null, val needsOverworldRain: Boolean = false, val turnUpsideDown: Boolean = false)

Evolution details specify the conditions under which a Pokémon species will evolve. See: https://pokeapi.co/docs/v2#evolutiondetail

Link copied to clipboard
@Serializable
data class EvolutionTrigger(val id: Int, val name: String, val names: List<Name>, val pokemonSpecies: List<Handle.Named<PokemonSpecies>>) : NamedModel

Evolution triggers are the events and conditions that cause a Pokémon to evolve. See: https://pokeapi.co/docs/v2#evolution-triggers

Link copied to clipboard
@Serializable
data class FlavorBerryMap(val potency: Int, val berry: Handle.Named<Berry>)

A berry-to-potency mapping for a flavor. See: https://pokeapi.co/docs/v2#flavorberrymap

Link copied to clipboard
@Serializable
data class FlavorText(val flavorText: String, val language: Handle.Named<Language>)

The localized flavor text for an API resource in a specific language. See: https://pokeapi.co/docs/v2#flavortext

Link copied to clipboard
@Serializable
data class GameSprites(val animated: GameSprites? = null, val backDefault: String? = null, val backGray: String? = null, val backTransparent: String? = null, val backFemale: String? = null, val backShiny: String? = null, val backShinyTransparent: String? = null, val backShinyFemale: String? = null, val frontDefault: String? = null, val frontGray: String? = null, val frontTransparent: String? = null, val frontFemale: String? = null, val frontShiny: String? = null, val frontShinyTransparent: String? = null, val frontShinyFemale: String? = null)

All available sprites for a Pokémon in a specific game or context. Each game will only have a subset of these sprites present. See: https://pokeapi.co/docs/v2#pokemonsprites

Link copied to clipboard
@Serializable
data class Gender(val id: Int, val name: String, val pokemonSpeciesDetails: List<PokemonSpeciesGender>, val requiredForEvolution: List<Handle.Named<PokemonSpecies>>) : NamedModel

Genders affect whether a Pokémon can breed and what moves it can learn. See: https://pokeapi.co/docs/v2#genders

Link copied to clipboard
@Serializable
data class Generation(val id: Int, val name: String, val abilities: List<Handle.Named<Ability>>, val names: List<Name>, val mainRegion: Handle.Named<Region>, val moves: List<Handle.Named<Move>>, val pokemonSpecies: List<Handle.Named<PokemonSpecies>>, val types: List<Handle.Named<Type>>, val versionGroups: List<Handle.Named<VersionGroup>>) : NamedModel

A generation is a grouping of the Pokémon games that separates them based on the Pokémon they include. In each generation, a new set of Pokémon, moves, abilities and types that did not exist in the previous generation are released. See: https://pokeapi.co/docs/v2#generations

Link copied to clipboard
@Serializable
data class GenerationGameIndex(val gameIndex: Int, val generation: Handle.Named<Generation>)

Generation game index for a resource. See: https://pokeapi.co/docs/v2#generationgameindex

Link copied to clipboard
@Serializable
data class GenerationIGameSprites(val redBlue: GameSprites, val yellow: GameSprites)
Link copied to clipboard
@Serializable
data class GenerationIiGameSprites(val crystal: GameSprites, val gold: GameSprites, val silver: GameSprites)
Link copied to clipboard
@Serializable
data class GenerationIiiGameSprites(val emerald: GameSprites, val fireredLeafgreen: GameSprites, val rubySapphire: GameSprites)
Link copied to clipboard
@Serializable
data class GenerationIiiTypeSprites(val colosseum: TypeSprites, val emerald: TypeSprites, val fireredLeafgreen: TypeSprites, val rubySaphire: TypeSprites, val xd: TypeSprites)
Link copied to clipboard
@Serializable
data class GenerationIvGameSprites(val diamondPearl: GameSprites, val heartgoldSoulsilver: GameSprites, val platinum: GameSprites)
Link copied to clipboard
@Serializable
data class GenerationIvTypeSprites(val diamondPearl: TypeSprites, val heartgoldSoulsilver: TypeSprites, val platinum: TypeSprites)
Link copied to clipboard
@Serializable
data class GenerationIxTypeSprites(val scarletViolet: TypeSprites)
Link copied to clipboard
@Serializable
data class GenerationVGameSprites(val blackWhite: BlackWhiteSprites)
Link copied to clipboard
@Serializable
data class GenerationViGameSprites(val omegaRubyAlphaSapphire: GameSprites, val xY: GameSprites)
Link copied to clipboard
@Serializable
data class GenerationViiGameSprites(val icons: GameSprites, val ultraSunUltraMoon: GameSprites)
Link copied to clipboard
@Serializable
data class GenerationViiiGameSprites(val icons: GameSprites)
Link copied to clipboard
@Serializable
data class GenerationViiiTypeSprites(val brilliantDiamondAndShiningPearl: TypeSprites, val legendsArceus: TypeSprites, val swordShield: TypeSprites)
Link copied to clipboard
@Serializable
data class GenerationViiTypeSprites(val letsGoPikachuLetsGoEevee: TypeSprites, val sunMoon: TypeSprites, val ultraSunUltraMoon: TypeSprites)
Link copied to clipboard
@Serializable
data class GenerationViTypeSprites(val omegaRubyAlphaSapphire: TypeSprites, val xY: TypeSprites)
Link copied to clipboard
@Serializable
data class GenerationVTypeSprites(val black2White2: TypeSprites, val blackWhite: TypeSprites)
Link copied to clipboard
@Serializable
data class Genus(val genus: String, val language: Handle.Named<Language>)

The genus of a Pokémon species listed in different languages. See: https://pokeapi.co/docs/v2#genus

Link copied to clipboard
@Serializable
data class GrowthRate(val id: Int, val name: String, val formula: String, val descriptions: List<Description>, val levels: List<GrowthRateExperienceLevel>, val pokemonSpecies: List<Handle.Named<PokemonSpecies>>) : NamedModel

Growth rates determine how much experience Pokémon need to level up. See: https://pokeapi.co/docs/v2#growthrates

Link copied to clipboard
@Serializable
data class GrowthRateExperienceLevel(val level: Int, val experience: Int)

Experience required for a Pokémon to reach a certain level for a given growth rate. See: https://pokeapi.co/docs/v2#growthrateexperiencelevel

Link copied to clipboard
sealed class Handle<out T : Model>

Represents a reference to a resource in the API by URL.

Link copied to clipboard
@Serializable
data class Item(val id: Int, val name: String, val cost: Int, val flingPower: Int?, val flingEffect: Handle.Named<ItemFlingEffect>?, val attributes: List<Handle.Named<ItemAttribute>>, val category: Handle.Named<ItemCategory>, val effectEntries: List<VerboseEffect>, val flavorTextEntries: List<VersionGroupFlavorText>, val gameIndices: List<GenerationGameIndex>, val names: List<Name>, val heldByPokemon: List<ItemHolderPokemon>, val babyTriggerFor: Handle.Unnamed<EvolutionChain>?, val sprites: ItemSprites, val machines: List<MachineVersionDetail>) : NamedModel

An item is an object in the games which the player can pick up, keep in their bag, and use in some manner. They have various uses, including healing, powering up, helping catch Pokémon, or to access a new area. See: https://pokeapi.co/docs/v2#items

Link copied to clipboard
@Serializable
data class ItemAttribute(val id: Int, val name: String, val items: List<Handle.Named<Item>>, val names: List<Name>, val descriptions: List<Description>) : NamedModel

Natural attributes of items, such as being countable or being usable in battle. See: https://pokeapi.co/docs/v2#item-attributes

Link copied to clipboard
@Serializable
data class ItemCategory(val id: Int, val name: String, val items: List<Handle.Named<Item>>, val names: List<Name>, val pocket: Handle.Named<ItemPocket>) : NamedModel

Item categories determine where items will be placed in the players bag. See: https://pokeapi.co/docs/v2#item-categories

Link copied to clipboard
@Serializable
data class ItemFlingEffect(val id: Int, val name: String, val effectEntries: List<Effect>, val items: List<Handle.Named<Item>>) : NamedModel

The various effects of the move "Fling" when used with different items. See: https://pokeapi.co/docs/v2#item-fling-effects

Link copied to clipboard
@Serializable
data class ItemHolderPokemon(val pokemon: Handle.Named<PokemonVariety>, val versionDetails: List<ItemHolderPokemonVersionDetail>)

A Pokémon that may be found in the wild holding an item. See: https://pokeapi.co/docs/v2#itemholderpokemon

Link copied to clipboard
@Serializable
data class ItemHolderPokemonVersionDetail(val rarity: Int, val version: Handle.Named<Version>)

The details of the version in which a Pokémon holds an item. See: https://pokeapi.co/docs/v2#itemholderpokemonversiondetail

Link copied to clipboard
@Serializable
data class ItemPocket(val id: Int, val name: String, val categories: List<Handle.Named<ItemCategory>>, val names: List<Name>) : NamedModel

Pockets within the players bag used for storing items by category. See: https://pokeapi.co/docs/v2#item-pockets

Link copied to clipboard
@Serializable
data class ItemSprites(val default: String?)

The sprites used to depict an item in the game. See: https://pokeapi.co/docs/v2#itemsprites

Link copied to clipboard
@Serializable
data class Language(val id: Int, val name: String, val official: Boolean, val iso639: String, val iso3166: String, val names: List<Name>) : NamedModel

Languages are resources for translating API resource information into different languages. They have an identifier and several codes for different language standards. See: https://pokeapi.co/docs/v2#languages

Link copied to clipboard
@Serializable
data class Location(val id: Int, val name: String, val region: Handle.Named<Region>?, val names: List<Name>, val gameIndices: List<GenerationGameIndex>, val areas: List<Handle.Named<LocationArea>>) : NamedModel

Locations that can be visited within the games. They make up sizable portions of regions, like cities or routes. See: https://pokeapi.co/docs/v2#locations

Link copied to clipboard
@Serializable
data class LocationArea(val id: Int, val name: String, val gameIndex: Int, val encounterMethodRates: List<EncounterMethodRate>, val location: Handle.Named<Location>, val names: List<Name>, val pokemonEncounters: List<PokemonEncounter>) : NamedModel

Location areas are sections of locations, such as floors in a building or cave. Each area has its own set of possible Pokémon encounters. See: https://pokeapi.co/docs/v2#location-areas

Link copied to clipboard
@Serializable
data class LocationAreaEncounter(val locationArea: Handle.Named<LocationArea>, val versionDetails: List<VersionEncounterDetail>)

Details about a Pokémon's encounters in a location area. See: https://pokeapi.co/docs/v2#locationareaencounter

Link copied to clipboard
@Serializable
data class Machine(val id: Int, val item: Handle.Named<Item>, val move: Handle.Named<Move>, val versionGroup: Handle.Named<VersionGroup>) : Model

Machines are the representation of items that teach moves to Pokémon. They vary from version to version, so it is not certain that one specific TM or TR works in every game. See: https://pokeapi.co/docs/v2#machines

Link copied to clipboard
@Serializable
data class MachineVersionDetail(val machine: Handle.Unnamed<Machine>, val versionGroup: Handle.Named<VersionGroup>)

Machine and version group details. See: https://pokeapi.co/docs/v2#machineversiondetail

Link copied to clipboard
@Serializable
sealed interface Model
Link copied to clipboard
@Serializable
data class Move(val id: Int, val name: String, val accuracy: Int?, val effectChance: Int?, val pp: Int?, val priority: Int, val power: Int?, val contestCombos: ContestComboSets?, val contestType: Handle.Named<ContestType>?, val contestEffect: Handle.Unnamed<ContestEffect>?, val superContestEffect: Handle.Unnamed<SuperContestEffect>?, val damageClass: Handle.Named<MoveDamageClass>, val effectEntries: List<VerboseEffect>, val effectChanges: List<AbilityEffectChange>, val generation: Handle.Named<Generation>, val learnedByPokemon: List<Handle.Named<PokemonVariety>>, val meta: MoveMetaData?, val names: List<Name>, val pastValues: List<PastMoveStatValues>, val statChanges: List<MoveStatChange>, val target: Handle.Named<MoveTarget>, val type: Handle.Named<Type>, val machines: List<MachineVersionDetail>, val flavorTextEntries: List<MoveFlavorText>) : NamedModel

Moves are the skills of Pokémon in battle. In battle, a Pokémon uses one move each turn. Some moves (including those learned by Hidden Machine) can be used outside of battle as well, usually for the purpose of removing obstacles or exploring new areas. See: https://pokeapi.co/docs/v2#moves

Link copied to clipboard
@Serializable
data class MoveAilment(val id: Int, val name: String, val moves: List<Handle.Named<Move>>, val names: List<Name>) : NamedModel

Status conditions that can be inflicted on a Pokémon by using certain moves. See: https://pokeapi.co/docs/v2#move-ailments

Link copied to clipboard
@Serializable
data class MoveBattleStyle(val id: Int, val name: String, val names: List<Name>) : NamedModel

Styles of moves when used in the Battle Palace. See the bulbapedia article for greater detail. See: https://pokeapi.co/docs/v2#move-battle-styles

Link copied to clipboard
@Serializable
data class MoveBattleStylePreference(val lowHpPreference: Int, val highHpPreference: Int, val moveBattleStyle: Handle.Named<MoveBattleStyle>)

Move battle style preferences for a given nature. See: https://pokeapi.co/docs/v2#movebattlestylepreference

Link copied to clipboard
@Serializable
data class MoveCategory(val id: Int, val name: String, val moves: List<Handle.Named<Move>>, val descriptions: List<Description>) : NamedModel

Very general categories that loosely group move effects. See: https://pokeapi.co/docs/v2#move-categories

Link copied to clipboard
@Serializable
data class MoveDamageClass(val id: Int, val name: String, val descriptions: List<Description>, val moves: List<Handle.Named<Move>>, val names: List<Name>) : NamedModel

Damage classes moves can have, e.g. physical, special, or non-damaging. See: https://pokeapi.co/docs/v2#move-damage-classes

Link copied to clipboard
@Serializable
data class MoveFlavorText(val flavorText: String, val language: Handle.Named<Language>, val versionGroup: Handle.Named<VersionGroup>)

The flavor text of a move listed in different languages and version groups. See: https://pokeapi.co/docs/v2#moveflavortext

Link copied to clipboard
@Serializable
data class MoveLearnMethod(val id: Int, val name: String, val descriptions: List<Description>, val names: List<Name>, val versionGroups: List<Handle.Named<VersionGroup>>) : NamedModel

Methods by which Pokémon can learn moves. See: https://pokeapi.co/docs/v2#move-learn-methods

Link copied to clipboard
@Serializable
data class MoveMetaData(val ailment: Handle.Named<MoveAilment>, val category: Handle.Named<MoveCategory>, val minHits: Int?, val maxHits: Int?, val minTurns: Int?, val maxTurns: Int?, val drain: Int, val healing: Int, val critRate: Int, val ailmentChance: Int, val flinchChance: Int, val statChance: Int)

Additional metadata and statistics for a move. See: https://pokeapi.co/docs/v2#movemetadata

Link copied to clipboard
@Serializable
data class MoveStatAffect(val change: Int, val move: Handle.Named<Move>)

A move that affects a stat and how it affects it. See: https://pokeapi.co/docs/v2#movestataffect

Link copied to clipboard
@Serializable
data class MoveStatAffectSets(val increase: List<MoveStatAffect>, val decrease: List<MoveStatAffect>)

A set of moves that affect a stat and how they affect it. See: https://pokeapi.co/docs/v2#movestataffectsets

Link copied to clipboard
@Serializable
data class MoveStatChange(val change: Int, val stat: Handle.Named<Stat>)

A stat change that can be caused by a move. See: https://pokeapi.co/docs/v2#movestatchange

Link copied to clipboard
@Serializable
data class MoveTarget(val id: Int, val name: String, val descriptions: List<Description>, val moves: List<Handle.Named<Move>>, val names: List<Name>) : NamedModel

Information about different types of targets that moves can be directed at during battle. Targets can be Pokémon, environments or even other moves. See: https://pokeapi.co/docs/v2#move-targets

Link copied to clipboard
@Serializable
data class Name(val name: String, val language: Handle.Named<Language>)

The localized name for an API resource in a specific language. See: https://pokeapi.co/docs/v2#name

Link copied to clipboard
@Serializable
sealed interface NamedModel : Model
Link copied to clipboard
@Serializable
data class Nature(val id: Int, val name: String, val decreasedStat: Handle.Named<Stat>?, val increasedStat: Handle.Named<Stat>?, val hatesFlavor: Handle.Named<BerryFlavor>?, val likesFlavor: Handle.Named<BerryFlavor>?, val pokeathlonStatChanges: List<NatureStatChange>, val moveBattleStylePreferences: List<MoveBattleStylePreference>, val names: List<Name>) : NamedModel

Natures influence how a Pokémon's stats grow. See: https://pokeapi.co/docs/v2#natures

Link copied to clipboard
@Serializable
data class NaturePokeathlonStatEffect(val maxChange: Int, val nature: Handle.Named<Nature>)

Nature and the amount it affects a Pokeathlon stat. See: https://pokeapi.co/docs/v2#naturepokeathlonstataffect

Link copied to clipboard
@Serializable
data class NaturePokeathlonStatEffectSets(val increase: List<NaturePokeathlonStatEffect>, val decrease: List<NaturePokeathlonStatEffect>)

A set of natures and how they affect a Pokeathlon stat. See: https://pokeapi.co/docs/v2#naturepokeathlonstataffectsets

Link copied to clipboard
@Serializable
data class NatureStatAffectSets(val increase: List<Handle.Named<Nature>>, val decrease: List<Handle.Named<Nature>>)

A set of natures that affect a stat and how they affect it. See: https://pokeapi.co/docs/v2#naturestataffectsets

Link copied to clipboard
@Serializable
data class NatureStatChange(val maxChange: Int, val pokeathlonStat: Handle.Named<PokeathlonStat>)

Change to a Pokeathlon stat for a given nature. See: https://pokeapi.co/docs/v2#naturestatchange

Link copied to clipboard
@Serializable
data class OtherGameSprites(val dreamWorld: GameSprites, val home: GameSprites, val officialArtwork: GameSprites, val showdown: GameSprites)

Other sprites for a Pokémon, such as Dream World and official artwork. See: https://pokeapi.co/docs/v2#pokemonsprites

Link copied to clipboard
sealed class PaginatedList<out T : Model>

Represents a paginated list of Handle, similar to the paginated resource list objects in the PokeAPI. See: https://pokeapi.co/docs/v2#resource-listspagination-section

Link copied to clipboard
@Serializable
data class PalParkArea(val id: Int, val name: String, val names: List<Name>, val pokemonEncounters: List<PalParkEncounterSpecies>) : NamedModel

Areas used for grouping Pokémon encounters in Pal Park. They're like habitats that are specific to Pal Park. See: https://pokeapi.co/docs/v2#pal-park-areas

Link copied to clipboard
@Serializable
data class PalParkEncounterArea(val baseScore: Int, val rate: Int, val area: Handle.Named<PalParkArea>)

Areas used for grouping Pokémon encounters in Pal Park. See: https://pokeapi.co/docs/v2#palparkencounterarea

Link copied to clipboard
@Serializable
data class PalParkEncounterSpecies(val baseScore: Int, val rate: Int, val pokemonSpecies: Handle.Named<PokemonSpecies>)

A Pokémon species that can be encountered in a specific Pal Park area. See: https://pokeapi.co/docs/v2#palparkencounterspecies

Link copied to clipboard
@Serializable
data class PastMoveStatValues(val accuracy: Int?, val effectChance: Int?, val power: Int?, val pp: Int?, val effectEntries: List<VerboseEffect>, val type: Handle.Named<Type>?, val versionGroup: Handle.Named<VersionGroup>)

The stat values of a move in previous versions of the games. See: https://pokeapi.co/docs/v2#pastmovestatvalues

Link copied to clipboard
@Serializable
data class PokeathlonStat(val id: Int, val name: String, val names: List<Name>, val affectingNatures: NaturePokeathlonStatEffectSets) : NamedModel

Pokeathlon stats are different qualities a Pokémon can have in the Pokeathlon competitions. See: https://pokeapi.co/docs/v2#pokeathlonstat

Link copied to clipboard
@Serializable
data class Pokedex(val id: Int, val name: String, val isMainSeries: Boolean, val descriptions: List<Description>, val names: List<Name>, val pokemonEntries: List<PokemonEntry>, val region: Handle.Named<Region>?, val versionGroups: List<Handle.Named<VersionGroup>>) : NamedModel

A Pokédex is a handheld electronic encyclopedia device; one which is capable of recording and retaining information of the various Pokémon in a given region with the exception of the national dex and some smaller dexes related to portions of a region. See: https://pokeapi.co/docs/v2#pokedexes

Link copied to clipboard
@Serializable
data class PokemonAbility(val isHidden: Boolean, val slot: Int, val ability: Handle.Named<Ability>?)

Details about a Pokémon's ability, including whether it is hidden and its slot. See: https://pokeapi.co/docs/v2#pokemonability

Link copied to clipboard
@Serializable
data class PokemonColor(val id: Int, val name: String, val names: List<Name>, val pokemonSpecies: List<Handle.Named<PokemonSpecies>>) : NamedModel

Colors are used for categorizing Pokémon for search purposes. See: https://pokeapi.co/docs/v2#pokemoncolor

Link copied to clipboard
@Serializable
data class PokemonCries(val latest: String, val legacy: String?)

The cries for a Pokémon. See: https://pokeapi.co/docs/v2#pokemoncries

Link copied to clipboard
@Serializable
data class PokemonEncounter(val pokemon: Handle.Named<PokemonVariety>, val versionDetails: List<VersionEncounterDetail>)

A Pokémon encounter in a specific location area. See: https://pokeapi.co/docs/v2#pokemonencounter

Link copied to clipboard
@Serializable
data class PokemonEntry(val entryNumber: Int, val pokemonSpecies: Handle.Named<PokemonSpecies>)

A Pokémon species entry within a Pokédex. See: https://pokeapi.co/docs/v2#pokemonentry

Link copied to clipboard
@Serializable
data class PokemonForm(val id: Int, val name: String, val order: Int, val formOrder: Int, val isDefault: Boolean, val isBattleOnly: Boolean, val isMega: Boolean, val formName: String, val pokemon: Handle.Named<PokemonVariety>, val types: List<PokemonType>, val sprites: PokemonFormSprites, val versionGroup: Handle.Named<VersionGroup>, val names: List<Name>, val formNames: List<Name>) : NamedModel

Some Pokémon may appear in one of multiple, visually different forms. These differences are purely cosmetic. For variations within a Pokémon species, which do differ in more than just visuals, the 'Pokémon' entity is used to represent such a variety. See: https://pokeapi.co/docs/v2#pokemonform

Link copied to clipboard
@Serializable
data class PokemonFormSprites(val backDefault: String?, val backFemale: String?, val backShiny: String?, val backShinyFemale: String?, val frontDefault: String?, val frontFemale: String?, val frontShiny: String?, val frontShinyFemale: String?)

Sprites used to depict a Pokémon form. See: https://pokeapi.co/docs/v2#pokemonformsprites

Link copied to clipboard
@Serializable
data class PokemonHabitat(val id: Int, val name: String, val names: List<Name>, val pokemonSpecies: List<Handle.Named<PokemonSpecies>>) : NamedModel

Habitats are generally different terrain Pokémon can be found in but can also be structures like buildings. See: https://pokeapi.co/docs/v2#pokemonhabitat

Link copied to clipboard
@Serializable
data class PokemonHeldItem(val item: Handle.Named<Item>, val versionDetails: List<PokemonHeldItemVersion>)

Items that a Pokémon may be holding when encountered. See: https://pokeapi.co/docs/v2#pokemonhelditem

Link copied to clipboard
@Serializable
data class PokemonHeldItemVersion(val version: Handle.Named<Version>, val rarity: Int)

The details of the version in which a Pokémon may be holding an item. See: https://pokeapi.co/docs/v2#pokemonhelditemversion

Link copied to clipboard
@Serializable
data class PokemonMove(val move: Handle.Named<Move>, val versionGroupDetails: List<PokemonMoveVersion>)

Moves that a Pokémon can learn. See: https://pokeapi.co/docs/v2#pokemonmove

Link copied to clipboard
@Serializable
data class PokemonMoveVersion(val moveLearnMethod: Handle.Named<MoveLearnMethod>, val versionGroup: Handle.Named<VersionGroup>, val levelLearnedAt: Int, val order: Int?)

Details about how a Pokémon can learn a move in a specific version group. See: https://pokeapi.co/docs/v2#pokemonmoveversion

Link copied to clipboard
@Serializable
data class PokemonPastAbility(val generation: Handle.Named<Generation>, val abilities: List<PokemonAbility>)

The abilities a Pokémon had in a previous generation. See: https://pokeapi.co/docs/v2#pokemonpastability

Link copied to clipboard
@Serializable
data class PokemonPastType(val generation: Handle.Named<Generation>, val types: List<PokemonType>)

The types a Pokémon had in a previous generation. See: https://pokeapi.co/docs/v2#pokemonpasttype

Link copied to clipboard
@Serializable
data class PokemonShape(val id: Int, val name: String, val awesomeNames: List<AwesomeName>, val names: List<Name>, val pokemonSpecies: List<Handle.Named<PokemonSpecies>>) : NamedModel

Shapes are used to determine a Pokémon's appearance and for search purposes. See: https://pokeapi.co/docs/v2#pokemonshape

Link copied to clipboard
@Serializable
data class PokemonSpecies(val id: Int, val name: String, val order: Int, val genderRate: Int, val captureRate: Int, val baseHappiness: Int, val isBaby: Boolean, val isLegendary: Boolean? = null, val isMythical: Boolean? = null, val hatchCounter: Int, val hasGenderDifferences: Boolean, val formsSwitchable: Boolean, val growthRate: Handle.Named<GrowthRate>, val pokedexNumbers: List<PokemonSpeciesDexEntry>, val eggGroups: List<Handle.Named<EggGroup>>, val color: Handle.Named<PokemonColor>, val shape: Handle.Named<PokemonShape>, val evolvesFromSpecies: Handle.Named<PokemonSpecies>?, val evolutionChain: Handle.Unnamed<EvolutionChain>, val habitat: Handle.Named<PokemonHabitat>?, val generation: Handle.Named<Generation>, val names: List<Name>, val palParkEncounters: List<PalParkEncounterArea>, val formDescriptions: List<Description>, val genera: List<Genus>, val varieties: List<PokemonSpeciesVariety>, val flavorTextEntries: List<PokemonSpeciesFlavorText>) : NamedModel

A Pokémon Species forms the basis for at least one Pokémon. Attributes of a Pokémon species are shared across all varieties of Pokémon within the species. A good example is Wormadam; Wormadam is the species which can be found in three different varieties, Wormadam-Trash, Wormadam-Sandy and Wormadam-Plant. See: https://pokeapi.co/docs/v2#pokemonspecies

Link copied to clipboard
@Serializable
data class PokemonSpeciesDexEntry(val entryNumber: Int, val pokedex: Handle.Named<Pokedex>)

The Pokédex number of a Pokémon species in a specific Pokédex. See: https://pokeapi.co/docs/v2#pokemonspeciesdexentry

Link copied to clipboard
@Serializable
data class PokemonSpeciesFlavorText(val flavorText: String, val language: Handle.Named<Language>, val version: Handle.Named<Version>)

Flavor text entries for a Pokémon species. See: https://pokeapi.co/docs/v2#flavortext

Link copied to clipboard
@Serializable
data class PokemonSpeciesGender(val rate: Int, val pokemonSpecies: Handle.Named<PokemonSpecies>)

Pokémon species gender details. See: https://pokeapi.co/docs/v2#pokemonspeciesgender

Link copied to clipboard
@Serializable
data class PokemonSpeciesVariety(val isDefault: Boolean, val variety: Handle.Named<PokemonVariety>)

Pokémon that exist within a species. See: https://pokeapi.co/docs/v2#pokemonspeciesvariety

Link copied to clipboard
@Serializable
data class PokemonSprites(val backDefault: String?, val backShiny: String?, val frontDefault: String?, val frontShiny: String?, val backFemale: String?, val backShinyFemale: String?, val frontFemale: String?, val frontShinyFemale: String?, val other: OtherGameSprites, val versions: VersionGameSprites)

Sprites are images used to depict Pokémon in the game. See: https://pokeapi.co/docs/v2#pokemonsprites

Link copied to clipboard
@Serializable
data class PokemonStat(val stat: Handle.Named<Stat>, val effort: Int, val baseStat: Int)

Base stats for a Pokémon. See: https://pokeapi.co/docs/v2#pokemonstat

Link copied to clipboard
@Serializable
data class PokemonType(val slot: Int, val type: Handle.Named<Type>)

The type of a Pokémon and its slot. See: https://pokeapi.co/docs/v2#pokemontype

Link copied to clipboard
@Serializable
data class PokemonVariety(val id: Int, val name: String, val baseExperience: Int, val height: Int, val isDefault: Boolean, val order: Int, val weight: Int, val species: Handle.Named<PokemonSpecies>, val abilities: List<PokemonAbility>, val forms: List<Handle.Named<PokemonForm>>, val gameIndices: List<VersionGameIndex>, val heldItems: List<PokemonHeldItem>, val moves: List<PokemonMove>, val stats: List<PokemonStat>, val types: List<PokemonType>, val pastTypes: List<PokemonPastType>, val pastAbilities: List<PokemonPastAbility>, val cries: PokemonCries, val sprites: PokemonSprites) : NamedModel

Pokémon are the creatures that inhabit the world of the Pokémon games. They have a variety of stats, abilities, and forms. See: https://pokeapi.co/docs/v2#pokemon

Link copied to clipboard
@Serializable
data class Region(val id: Int, val name: String, val locations: List<Handle.Named<Location>>, val mainGeneration: Handle.Named<Generation>?, val names: List<Name>, val pokedexes: List<Handle.Named<Pokedex>>, val versionGroups: List<Handle.Named<VersionGroup>>) : NamedModel

A region is an organized area of the Pokémon world. Most often, the main difference between regions is the species of Pokémon that can be encountered within them. See: https://pokeapi.co/docs/v2#regions

Link copied to clipboard
@Serializable
data class Stat(val id: Int, val name: String, val gameIndex: Int, val isBattleOnly: Boolean, val affectingMoves: MoveStatAffectSets, val affectingNatures: NatureStatAffectSets, val characteristics: List<Handle.Unnamed<Characteristic>>, val moveDamageClass: Handle.Named<MoveDamageClass>?, val names: List<Name>) : NamedModel

Stats determine certain aspects of battles. Each Pokémon has a value for each stat which grows as they gain levels and can be altered momentarily by effects in battles. See: https://pokeapi.co/docs/v2#stats

Link copied to clipboard
@Serializable
data class SuperContestEffect(val id: Int, val appeal: Int, val flavorTextEntries: List<FlavorText>, val moves: List<Handle.Named<Move>>) : Model

Super contest effects refer to the effects of moves when used in super contests. See: https://pokeapi.co/docs/v2#super-contest-effects

Link copied to clipboard
@Serializable
data class Type(val id: Int, val name: String, val damageRelations: TypeRelations, val pastDamageRelations: List<TypePastDamageRelation>, val gameIndices: List<GenerationGameIndex>, val generation: Handle.Named<Generation>, val moveDamageClass: Handle.Named<MoveDamageClass>?, val names: List<Name>, val pokemon: List<TypePokemon>, val moves: List<Handle.Named<Move>>, val sprites: VersionTypeSprites) : NamedModel

Types are properties for Pokémon and their moves. Each type has three properties: which types of Pokémon it is super effective against, which types of Pokémon it is not very effective against, and which types of Pokémon it is completely ineffective against. See: https://pokeapi.co/docs/v2#types

Link copied to clipboard
@Serializable
data class TypePastDamageRelation(val generation: Handle.Named<Generation>, val damageRelations: TypeRelations)

Details of how effective this type was toward others and vice versa in previous generations. See: https://pokeapi.co/docs/v2#typepastdamagerelation

Link copied to clipboard
@Serializable
data class TypePokemon(val slot: Int, val pokemon: Handle.Named<PokemonVariety>)

Details of Pokémon that have a specific type. See: https://pokeapi.co/docs/v2#typepokemon

Link copied to clipboard
@Serializable
data class TypeRelations(val noDamageTo: List<Handle.Named<Type>>, val halfDamageTo: List<Handle.Named<Type>>, val doubleDamageTo: List<Handle.Named<Type>>, val noDamageFrom: List<Handle.Named<Type>>, val halfDamageFrom: List<Handle.Named<Type>>, val doubleDamageFrom: List<Handle.Named<Type>>)

A detail of how effective this type is toward others and vice versa. See: https://pokeapi.co/docs/v2#typerelations

Link copied to clipboard
@Serializable
data class TypeSprites(val nameIcon: String?)
Link copied to clipboard
@Serializable
data class VerboseEffect(val effect: String, val shortEffect: String, val language: Handle.Named<Language>)

The verbose effect text for an API resource in a specific language. See: https://pokeapi.co/docs/v2#verboseeffect

Link copied to clipboard
@Serializable
data class Version(val id: Int, val name: String, val names: List<Name>, val versionGroup: Handle.Named<VersionGroup>) : NamedModel

Versions of the games, e.g Red, Blue or Yellow. See: https://pokeapi.co/docs/v2#versions

Link copied to clipboard
@Serializable
data class VersionEncounterDetail(val version: Handle.Named<Version>, val maxChance: Int, val encounterDetails: List<Encounter>)

Version encounter details for a Pokémon in a specific version. See: https://pokeapi.co/docs/v2#versionencounterdetail

Link copied to clipboard
@Serializable
data class VersionGameIndex(val gameIndex: Int, val version: Handle.Named<Version>)

Game index for a resource in a specific version. See: https://pokeapi.co/docs/v2#versiongameindex

Link copied to clipboard
@Serializable
data class VersionGameSprites(val generationI: GenerationIGameSprites, val generationIi: GenerationIiGameSprites, val generationIii: GenerationIiiGameSprites, val generationIv: GenerationIvGameSprites, val generationV: GenerationVGameSprites, val generationVi: GenerationViGameSprites, val generationVii: GenerationViiGameSprites, val generationViii: GenerationViiiGameSprites)

Sprites for a Pokémon in different game versions. See: https://pokeapi.co/docs/v2#pokemonsprites

Link copied to clipboard
@Serializable
data class VersionGroup(val id: Int, val name: String, val order: Int, val generation: Handle.Named<Generation>, val moveLearnMethods: List<Handle.Named<MoveLearnMethod>>, val pokedexes: List<Handle.Named<Pokedex>>, val regions: List<Handle.Named<Region>>, val versions: List<Handle.Named<Version>>) : NamedModel

Version groups categorize highly similar versions of the games. See: https://pokeapi.co/docs/v2#version-groups

Link copied to clipboard
@Serializable
data class VersionGroupFlavorText(val text: String, val language: Handle.Named<Language>, val versionGroup: Handle.Named<VersionGroup>)

The localized flavor text for a version group. See: https://pokeapi.co/docs/v2#versiongroupflavortext

Link copied to clipboard
@Serializable
data class VersionTypeSprites(val generationIii: GenerationIiiTypeSprites, val generationIv: GenerationIvTypeSprites, val generationV: GenerationVTypeSprites, val generationVi: GenerationViTypeSprites, val generationVii: GenerationViiTypeSprites, val generationViii: GenerationViiiTypeSprites, val generationIx: GenerationIxTypeSprites)