# generated by fastapi-codegen:
# filename: openapi.yaml
# timestamp: 2025-05-29T07:24:52+00:00
from __future__ import annotations
from typing import Any, Dict, List, Optional
from pydantic import AnyUrl, BaseModel, Field, RootModel, conint, constr
class Pokemon(BaseModel):
name: str = Field(..., examples=['gloom'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/pokemon/44/'])
class PokemonItem(BaseModel):
is_hidden: bool
pokemon: Pokemon
slot: int = Field(..., examples=[3])
class AbilitySummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class Flavor1(BaseModel):
name: Optional[str] = Field(
None, description='The name of the flavor', examples=['spicy']
)
url: Optional[AnyUrl] = Field(
None,
description='The URL to get more information about the flavor',
examples=['https://pokeapi.co/api/v2/berry-flavor/1/'],
)
class Flavor(BaseModel):
flavor: Flavor1
potency: int = Field(..., examples=[10])
class BerryFirmnessSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class Berry1(BaseModel):
name: Optional[str] = Field(
None, description='The name of the berry', examples=['rowap']
)
url: Optional[AnyUrl] = Field(
None,
description='The URL to get more information about the berry',
examples=['https://pokeapi.co/api/v2/berry/64/'],
)
class Berry(BaseModel):
berry: Berry1
potency: int = Field(..., examples=[10])
class BerryFlavorSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class BerrySummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class CharacteristicSummary(BaseModel):
url: AnyUrl
class ContestEffectSummary(BaseModel):
url: AnyUrl
class ContestTypeSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class PokemonSpecy(BaseModel):
name: Optional[str] = Field(
None, description='Pokemon species name.', examples=['bulbasaur']
)
url: Optional[AnyUrl] = Field(
None,
description='The URL to get more information about the species',
examples=['https://pokeapi.co/api/v2/pokemon-species/1/'],
)
class EggGroupSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class EncounterConditionSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class EncounterConditionValueSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class EncounterMethodSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class Gender(BaseModel):
name: str = Field(..., examples=[1])
url: AnyUrl = Field(..., examples=[2])
class HeldItem(BaseModel):
name: str = Field(..., examples=[1])
url: AnyUrl = Field(..., examples=[2])
class Item(BaseModel):
name: str = Field(..., examples=[1])
url: AnyUrl = Field(..., examples=[2])
class Location(BaseModel):
name: str
url: AnyUrl
class Trigger(BaseModel):
name: str
url: AnyUrl
class EvolutionDetail(BaseModel):
gender: Gender
held_item: HeldItem
item: Item
known_move: Any
known_move_type: Any
location: Location
min_affection: int
min_beauty: int
min_happiness: int
min_level: int
needs_overworld_rain: bool
party_species: str
party_type: str
relative_physical_stats: str
time_of_day: str
trade_species: str
trigger: Trigger
turn_upside_down: bool
class Species(BaseModel):
name: str = Field(..., examples=['happiny'])
url: AnyUrl = Field(
..., examples=['https://pokeapi.co/api/v2/pokemon-species/440/']
)
class EvolvesToItem(BaseModel):
evolution_details: List[EvolutionDetail]
is_baby: bool
species: Species
class Chain(BaseModel):
evolution_details: List = Field(..., examples=[])
evolves_to: List[EvolvesToItem]
is_baby: bool
species: Species
class EvolutionChainSummary(BaseModel):
url: AnyUrl
class PokemonSpecy1(BaseModel):
name: str = Field(..., examples=['ivysaur'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/pokemon-species/2/'])
class EvolutionTriggerSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class Experience(BaseModel):
experience: int
level: int
class PokemonSpecies(BaseModel):
name: str = Field(..., examples=['bulbasaur'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/pokemon-species/1/'])
class PokemonSpeciesDetail(BaseModel):
pokemon_species: PokemonSpecies
rate: int = Field(..., examples=[1])
class RequiredForEvolutionItem(BaseModel):
name: str = Field(..., examples=['wormadam'])
url: AnyUrl = Field(
..., examples=['https://pokeapi.co/api/v2/pokemon-species/413/']
)
class GenderDetail(BaseModel):
id: int
name: constr(max_length=200)
pokemon_species_details: List[PokemonSpeciesDetail]
required_for_evolution: List[RequiredForEvolutionItem]
class GenderSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class GenerationSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class GrowthRateSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class Item1(BaseModel):
name: str = Field(..., examples=['master-ball'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/item/1/'])
class ItemAttributeSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class ItemCategorySummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class Attribute(BaseModel):
name: str = Field(..., examples=['countable'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/item-attribute/1/'])
class BabyTriggerFor(BaseModel):
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/evolution-chain/51/'])
class Pokemon1(BaseModel):
name: str = Field(..., examples=['farfetchd'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/pokemon/83/'])
class Version(BaseModel):
name: str = Field(..., examples=['ruby'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/version/7/'])
class VersionDetail(BaseModel):
rarity: int = Field(..., examples=[5])
version: Version
class HeldByPokemonItem(BaseModel):
pokemon: Pokemon1
version_details: List[VersionDetail] = Field(..., alias='version-details')
class VersionGroup(BaseModel):
name: str = Field(..., examples=['sword-shield'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/version-group/20/'])
class Machine(BaseModel):
machine: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/machine/1/'])
version_group: VersionGroup
class Sprites(BaseModel):
default: AnyUrl = Field(
..., examples=['https://pokeapi.co/media/sprites/items/master-ball.png']
)
class ItemFlingEffectSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class ItemGameIndex(BaseModel):
game_index: int
generation: GenerationSummary
class ItemPocketSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class ItemSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class LanguageSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class EncounterMethod(BaseModel):
name: str = Field(..., examples=['old-rod'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/encounter-method/2/'])
class Version1(BaseModel):
name: str = Field(..., examples=['platinum'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/version/14/'])
class VersionDetail1(BaseModel):
rate: int = Field(..., examples=[5])
version: Version1
class EncounterMethodRate(BaseModel):
encounter_method: EncounterMethod
version_details: List[VersionDetail1]
class Pokemon2(BaseModel):
name: str = Field(..., examples=['tentacool'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/pokemon/72/'])
class ConditionValues(BaseModel):
name: str = Field(..., examples=['slot2-sapphire'])
url: AnyUrl = Field(
..., examples=['https://pokeapi.co/api/v2/encounter-condition-value/10/']
)
class Method(BaseModel):
name: str = Field(..., examples=['surf'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/encounter-method/5/'])
class EncounterDetails(BaseModel):
chance: int = Field(..., examples=[60])
condition_values: Optional[ConditionValues] = None
max_level: int = Field(..., examples=[30])
method: Method
min_level: int = Field(..., examples=[20])
class Version2(BaseModel):
name: str = Field(..., examples=['diamond'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/version/12/'])
class VersionDetail2(BaseModel):
encounter_details: EncounterDetails
max_chance: int = Field(..., examples=[60])
version: Version2
class PokemonEncounter(BaseModel):
pokemon: Pokemon2
version_details: List[VersionDetail2]
class LocationAreaName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class LocationAreaSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class LocationGameIndex(BaseModel):
game_index: int
generation: GenerationSummary
class LocationName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class LocationSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class MachineSummary(BaseModel):
url: AnyUrl
class MoveBattleStyleName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class MoveBattleStyleSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class Language(BaseModel):
name: str = Field(..., examples=['en'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/language/9/'])
class EffectEntry(BaseModel):
effect: str = Field(
..., examples=['Inflicts [regular damage]{mechanic:regular-damage}.']
)
language: Language
short_effect: str = Field(
..., examples=['Inflicts regular damage with no additional effect.']
)
class MoveDamageClassDescription(BaseModel):
description: Optional[constr(max_length=1000)] = None
language: LanguageSummary
class MoveDamageClassName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class MoveDamageClassSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class UseAfterItem(BaseModel):
name: str = Field(..., examples=['ice-punch'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/move/8/'])
class UseBeforeItem(BaseModel):
name: str = Field(..., examples=['fire-punch'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/move/7/'])
class Normal(BaseModel):
use_after: List[UseAfterItem]
use_before: List[UseBeforeItem]
class UseAfterItem1(BaseModel):
name: str = Field(..., examples=['focus-energy'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/move/116/'])
class UseBeforeItem1(BaseModel):
name: str = Field(..., examples=['night-slash'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/move/400/'])
class Super(BaseModel):
use_after: List[UseAfterItem1]
use_before: List[UseBeforeItem1]
class ContestCombos(BaseModel):
normal: Normal
super: Super
class EffectEntry1(BaseModel):
effect: str = Field(
..., examples=['Hits Pokémon under the effects of dig and fly.']
)
language: Language
class VersionGroup1(BaseModel):
name: str = Field(..., examples=['gold-silver'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/version-group/3/'])
class EffectChange(BaseModel):
effect_entries: List[EffectEntry1]
version_group: VersionGroup1
class EffectEntry2(BaseModel):
effect: str = Field(
..., examples=['Inflicts [regular damage]{mechanic:regular-damage}.']
)
language: Language
short_effect: str = Field(
..., examples=['Inflicts regular damage with no additional effect.']
)
class LearnedByPokemonItem(BaseModel):
name: str = Field(..., examples=['clefairy'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/pokemon/35/'])
class Machine2(BaseModel):
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/machine/1/'])
class VersionGroup2(BaseModel):
name: str = Field(..., examples=['sword-shield'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/version-group/1/'])
class Machine1(BaseModel):
machine: Machine2
version_group: VersionGroup2
class Stat(BaseModel):
name: str = Field(..., examples=['attack'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/stat/1/'])
class StatChange(BaseModel):
change: int = Field(..., examples=[2])
stat: Stat
class MoveLearnMethodDescription(BaseModel):
description: Optional[constr(max_length=1000)] = None
language: LanguageSummary
class VersionGroup3(BaseModel):
name: str = Field(..., examples=['red-blue'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/version-group/1/'])
class MoveLearnMethodName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class MoveLearnMethodSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class Move(BaseModel):
name: str = Field(..., examples=['thunder-punch'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/move/9/'])
class MoveMetaAilmentName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class MoveMetaAilmentSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class MoveMetaCategoryDescription(BaseModel):
description: Optional[constr(max_length=1000)] = None
language: LanguageSummary
class Move1(BaseModel):
name: str = Field(..., examples=['sing'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/move/47/'])
class MoveMetaCategoryDetail(BaseModel):
descriptions: List[MoveMetaCategoryDescription]
id: int
moves: List[Move1]
name: constr(max_length=200)
class MoveMetaCategorySummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class MoveName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class MoveSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class MoveTargetDescription(BaseModel):
description: Optional[constr(max_length=1000)] = None
language: LanguageSummary
class MoveTargetName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class MoveTargetSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class NatureBattleStylePreference(BaseModel):
high_hp_preference: int
low_hp_preference: int
move_battle_style: MoveBattleStyleSummary
class PokeathlonStat(BaseModel):
name: str = Field(..., examples=['power'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/pokeathlon-stat/2/'])
class PokeathlonStatChange(BaseModel):
max_change: int = Field(..., examples=[1])
pokeathlon_stat: PokeathlonStat
class NatureName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class NatureSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class PaginatedAbilitySummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[AbilitySummary]] = None
class PaginatedBerryFirmnessSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[BerryFirmnessSummary]] = None
class PaginatedBerryFlavorSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[BerryFlavorSummary]] = None
class PaginatedBerrySummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[BerrySummary]] = None
class PaginatedCharacteristicSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[CharacteristicSummary]] = None
class PaginatedContestEffectSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[ContestEffectSummary]] = None
class PaginatedContestTypeSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[ContestTypeSummary]] = None
class PaginatedEggGroupSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[EggGroupSummary]] = None
class PaginatedEncounterConditionSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[EncounterConditionSummary]] = None
class PaginatedEncounterConditionValueSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[EncounterConditionValueSummary]] = None
class PaginatedEncounterMethodSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[EncounterMethodSummary]] = None
class PaginatedEvolutionChainSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[EvolutionChainSummary]] = None
class PaginatedEvolutionTriggerSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[EvolutionTriggerSummary]] = None
class PaginatedGenderSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[GenderSummary]] = None
class PaginatedGenerationSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[GenerationSummary]] = None
class PaginatedGrowthRateSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[GrowthRateSummary]] = None
class PaginatedItemAttributeSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[ItemAttributeSummary]] = None
class PaginatedItemCategorySummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[ItemCategorySummary]] = None
class PaginatedItemFlingEffectSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[ItemFlingEffectSummary]] = None
class PaginatedItemPocketSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[ItemPocketSummary]] = None
class PaginatedItemSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[ItemSummary]] = None
class PaginatedLanguageSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[LanguageSummary]] = None
class PaginatedLocationAreaSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[LocationAreaSummary]] = None
class PaginatedLocationSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[LocationSummary]] = None
class PaginatedMachineSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[MachineSummary]] = None
class PaginatedMoveBattleStyleSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[MoveBattleStyleSummary]] = None
class PaginatedMoveDamageClassSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[MoveDamageClassSummary]] = None
class PaginatedMoveLearnMethodSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[MoveLearnMethodSummary]] = None
class PaginatedMoveMetaAilmentSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[MoveMetaAilmentSummary]] = None
class PaginatedMoveMetaCategorySummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[MoveMetaCategorySummary]] = None
class PaginatedMoveSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[MoveSummary]] = None
class PaginatedMoveTargetSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[MoveTargetSummary]] = None
class PaginatedNatureSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[NatureSummary]] = None
class PokemonEncounter1(BaseModel):
base_score: int = Field(..., examples=[50])
pokemon_species: PokemonSpecies = Field(..., alias='pokemon-species')
rate: int = Field(..., examples=[30])
class PalParkAreaName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class PalParkAreaSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class Nature(BaseModel):
name: str = Field(..., examples=['hardy'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/nature/1/'])
class DecreaseItem(BaseModel):
max_change: conint(le=-1) = Field(..., examples=[-1])
nature: Nature
class IncreaseItem(BaseModel):
max_change: conint(ge=1) = Field(..., examples=[2])
nature: Nature
class AffectingNatures(BaseModel):
decrease: List[DecreaseItem]
increase: List[IncreaseItem]
class PokeathlonStatName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class PokeathlonStatSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class PokedexDescription(BaseModel):
description: Optional[constr(max_length=1000)] = None
language: LanguageSummary
class PokemonEntry(BaseModel):
entry_number: int = Field(..., examples=[1])
pokemon_species: PokemonSpecies
class VersionGroup4(BaseModel):
name: str = Field(..., examples=['the-teal-mask'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/version-group/26/'])
class PokedexName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class PokedexSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class PokemonColorName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class PokemonColorSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class Ability1(BaseModel):
name: str = Field(..., examples=['sand-veil'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/ability/8/'])
class Ability(BaseModel):
ability: Ability1
is_hidden: bool
slot: int = Field(..., examples=[1])
class Cries(BaseModel):
latest: AnyUrl = Field(
...,
examples=[
'https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/50.ogg'
],
)
legacy: AnyUrl = Field(
...,
examples=[
'https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/50.ogg'
],
)
class Item2(BaseModel):
name: str = Field(..., examples=['soft-sand'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/item/214/'])
class VersionDetail3(BaseModel):
rarity: int = Field(..., examples=[5])
version: Version2
class HeldItems(BaseModel):
item: Item2
version_details: List[VersionDetail3]
class Move3(BaseModel):
name: str = Field(..., examples=['scratch'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/move/10/'])
class MoveLearnMethod(BaseModel):
name: str = Field(..., examples=['level-up'])
url: AnyUrl = Field(
..., examples=['https://pokeapi.co/api/v2/move-learn-method/1/']
)
class VersionGroup5(BaseModel):
name: str = Field(..., examples=['red-blue'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/version-group/1/'])
class VersionGroupDetail(BaseModel):
level_learned_at: int = Field(..., examples=[1])
move_learn_method: MoveLearnMethod
version_group: VersionGroup5
class Move2(BaseModel):
move: Move3
version_group_details: List[VersionGroupDetail]
class Ability3(BaseModel):
name: str = Field(..., examples=['levitate'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/ability/26/'])
class Ability2(BaseModel):
ability: Ability3
is_hidden: bool
slot: int = Field(..., examples=[1])
class Generation(BaseModel):
name: str = Field(..., examples=['generation-vi'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/generation/6/'])
class PastAbility(BaseModel):
abilities: List[Ability2]
generation: Generation
class Generation1(BaseModel):
name: str = Field(..., examples=['generation-v'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/generation/5/'])
class Type1(BaseModel):
name: str = Field(..., examples=['normal'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/type/1/'])
class Type(BaseModel):
slot: int = Field(..., examples=[1])
type: Type1
class PastType(BaseModel):
generation: Generation1
types: List[Type]
class Sprites1(BaseModel):
front_default: Optional[AnyUrl] = None
class Type3(BaseModel):
name: str = Field(..., examples=['ghost'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/type/8/'])
class Type2(BaseModel):
slot: int = Field(..., examples=[1])
type: Type3
class PokemonDexEntry(BaseModel):
entry_number: int
pokedex: PokedexSummary
class FormName(BaseModel):
language: Language
name: str = Field(..., examples=['Plant Cloak'])
class Name(BaseModel):
language: Language
name: str = Field(..., examples=['Plant Cloak'])
class Sprites2(BaseModel):
default: Optional[AnyUrl] = Field(
None,
examples=[
'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/412.png'
],
)
class Type5(BaseModel):
name: str = Field(..., examples=['bug'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/type/7/'])
class Type4(BaseModel):
slot: int = Field(..., examples=[1])
type: Type5
class PokemonFormSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class PokemonHabitatName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class PokemonHabitatSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class AwesomeName(BaseModel):
awesome_name: str = Field(..., examples=['Pomaceous'])
language: Language
class Name1(BaseModel):
name: str = Field(..., examples=['Ball'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/language/9/'])
class PokemonShapeSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class PokemonSpeciesDescription(BaseModel):
description: Optional[constr(max_length=1000)] = None
language: LanguageSummary
class EggGroup(BaseModel):
name: str = Field(..., examples=['monster'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/egg-group/1/'])
class Genus(BaseModel):
genus: str = Field(..., examples=['Seed Pokémon'])
language: Language
class Name2(BaseModel):
language: Language
name: str = Field(..., examples=['bulbasaur'])
class Area(BaseModel):
name: str = Field(..., examples=['field'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/pal-park-area/2/'])
class PalParkEncounter(BaseModel):
area: Area
base_score: int = Field(..., examples=[50])
rate: int = Field(..., examples=[30])
class Pokemon3(BaseModel):
name: str = Field(..., examples=['bulbasaur'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/pokemon/1/'])
class Variety(BaseModel):
is_default: bool
pokemon: Pokemon3
class PokemonSpeciesSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class PokemonSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class RegionName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class RegionSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class Move4(BaseModel):
name: str = Field(..., examples=['growl'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/move/45/'])
class DecreaseItem1(BaseModel):
change: int = Field(..., examples=[5])
move: Move4
class Move5(BaseModel):
name: str = Field(..., examples=['swords-dance'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/move/14/'])
class IncreaseItem1(BaseModel):
change: int = Field(..., examples=[-1])
move: Move5
class AffectingMoves(BaseModel):
decrease: List[DecreaseItem1]
increase: List[IncreaseItem1]
class DecreaseItem2(BaseModel):
name: str = Field(..., examples=['bold'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/nature/2/'])
class IncreaseItem2(BaseModel):
name: str = Field(..., examples=['lonely'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/nature/6/'])
class AffectingNatures1(BaseModel):
decrease: List[DecreaseItem2]
increase: List[IncreaseItem2]
class StatName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class StatSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class SuperContestEffectFlavorText(BaseModel):
flavor_text: constr(max_length=500)
language: LanguageSummary
class SuperContestEffectSummary(BaseModel):
url: AnyUrl
class DoubleDamageFromItem(BaseModel):
name: str = Field(..., examples=['water'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/type/11/'])
class DoubleDamageToItem(BaseModel):
name: str = Field(..., examples=['poison'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/type/4/'])
class HalfDamageFromItem(BaseModel):
name: str = Field(..., examples=['poison'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/type/4/'])
class HalfDamageToItem(BaseModel):
name: str = Field(..., examples=['bug'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/type/7/'])
class NoDamageFromItem(BaseModel):
name: str = Field(..., examples=['electric'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/type/13/'])
class NoDamageToItem(BaseModel):
name: str = Field(..., examples=['flying'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/type/3/'])
class DamageRelations(BaseModel):
double_damage_from: List[DoubleDamageFromItem]
double_damage_to: List[DoubleDamageToItem]
half_damage_from: List[HalfDamageFromItem]
half_damage_to: List[HalfDamageToItem]
no_damage_from: List[NoDamageFromItem]
no_damage_to: List[NoDamageToItem]
class DamageRelations1(BaseModel):
double_damage_from: List[DoubleDamageFromItem]
double_damage_to: List[DoubleDamageToItem]
half_damage_from: List[HalfDamageFromItem]
half_damage_to: List[HalfDamageToItem]
no_damage_from: List[NoDamageFromItem]
no_damage_to: List[NoDamageToItem]
class PastDamageRelation(BaseModel):
damage_relations: DamageRelations1
generation: Generation1
class Pokemon4(BaseModel):
name: Optional[str] = Field(
None, description='The name of the pokemon', examples=['sandshrew']
)
url: Optional[AnyUrl] = Field(
None,
description='The URL to get more information about the pokemon',
examples=['https://pokeapi.co/api/v2/pokemon/27/'],
)
class PokemonItem1(BaseModel):
pokemon: Optional[Pokemon4] = None
slot: Optional[int] = Field(None, examples=[1])
class Sprites3(BaseModel):
name_icon: Optional[AnyUrl] = Field(
None,
alias='name-icon',
examples=[
'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/types/generation-iii/colosseum/1.png'
],
)
class TypeGameIndex(BaseModel):
game_index: int
generation: GenerationSummary
class TypeSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class Pokedex(BaseModel):
name: str = Field(..., examples=['kanto'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/pokedex/2/'])
class Region(BaseModel):
name: str = Field(..., examples=['kanto'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/region/1/'])
class VersionGroupSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class VersionName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class VersionSummary(BaseModel):
name: constr(max_length=200)
url: AnyUrl
class LocationArea(BaseModel):
name: str = Field(..., examples=['cerulean-city-area'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/location-area/281/'])
class ConditionValue(BaseModel):
name: str = Field(..., examples=['story-progress-beat-red'])
url: AnyUrl = Field(
..., examples=['https://pokeapi.co/api/v2/encounter-condition-value/55/']
)
class Method1(BaseModel):
name: str = Field(..., examples=['gift'])
url: AnyUrl = Field(
..., examples=['https://pokeapi.co/api/v2/encounter-method/18/']
)
class EncounterDetail(BaseModel):
chance: float = Field(..., examples=[100])
condition_values: List[ConditionValue]
max_level: float = Field(..., examples=[10])
method: Method1
min_level: float = Field(..., examples=[10])
class Version4(BaseModel):
name: str = Field(..., examples=['red'])
url: AnyUrl = Field(..., examples=['https://pokeapi.co/api/v2/version/1/'])
class VersionDetail5(BaseModel):
encounter_details: List[EncounterDetail]
max_chance: float = Field(..., examples=[100])
version: Version4
class ApiV2PokemonPokemonIdEncountersGetResponseItem(BaseModel):
location_area: LocationArea
version_details: List[VersionDetail5]
class ApiV2PokemonPokemonIdEncountersGetResponse(
RootModel[List[ApiV2PokemonPokemonIdEncountersGetResponseItem]]
):
root: List[ApiV2PokemonPokemonIdEncountersGetResponseItem]
class AbilityChangeEffectText(BaseModel):
effect: constr(max_length=6000)
language: LanguageSummary
class AbilityEffectText(BaseModel):
effect: constr(max_length=6000)
language: LanguageSummary
short_effect: constr(max_length=300)
class AbilityFlavorText(BaseModel):
flavor_text: str
language: LanguageSummary
version_group: VersionGroupSummary
class AbilityName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class BerryDetail(BaseModel):
firmness: BerryFirmnessSummary
flavors: List[Flavor]
growth_time: int
id: int
item: ItemSummary
max_harvest: int
name: constr(max_length=200)
natural_gift_power: int
natural_gift_type: TypeSummary
size: int
smoothness: int
soil_dryness: int
class BerryFirmnessName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class BerryFlavorName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class CharacteristicDescription(BaseModel):
description: Optional[constr(max_length=1000)] = None
language: LanguageSummary
class CharacteristicDetail(BaseModel):
descriptions: List[CharacteristicDescription]
gene_modulo: int
highest_stat: StatSummary
id: int
possible_values: List[int] = Field(..., examples=[[0, 5, 10, 15, 20, 25, 30]])
class ContestEffectEffectText(BaseModel):
effect: constr(max_length=6000)
language: LanguageSummary
class ContestEffectFlavorText(BaseModel):
flavor_text: constr(max_length=500)
language: LanguageSummary
class ContestTypeName(BaseModel):
color: constr(max_length=10)
language: LanguageSummary
name: constr(max_length=200)
class EggGroupName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class EncounterConditionName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class EncounterConditionValueName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class EncounterMethodName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class EvolutionChainDetail(BaseModel):
baby_trigger_item: ItemSummary
chain: Chain
id: int
class EvolutionTriggerName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class GenerationName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class GrowthRateDescription(BaseModel):
description: Optional[constr(max_length=1000)] = None
language: LanguageSummary
class GrowthRateDetail(BaseModel):
descriptions: List[GrowthRateDescription]
formula: constr(max_length=500)
id: int
levels: List[Experience]
name: constr(max_length=200)
pokemon_species: List[PokemonSpeciesSummary]
class ItemAttributeDescription(BaseModel):
description: Optional[constr(max_length=1000)] = None
language: LanguageSummary
class ItemAttributeName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class ItemCategoryName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class ItemEffectText(BaseModel):
effect: constr(max_length=6000)
language: LanguageSummary
short_effect: constr(max_length=300)
class ItemFlavorText(BaseModel):
language: LanguageSummary
text: str
version_group: VersionGroupSummary
class ItemFlingEffectEffectText(BaseModel):
effect: constr(max_length=6000)
language: LanguageSummary
class ItemName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class ItemPocketName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class LanguageName(BaseModel):
language: LanguageSummary
name: constr(max_length=200)
class LocationAreaDetail(BaseModel):
encounter_method_rates: List[EncounterMethodRate]
game_index: int
id: int
location: LocationSummary
name: constr(max_length=200)
names: List[LocationAreaName]
pokemon_encounters: List[PokemonEncounter]
class LocationDetail(BaseModel):
areas: List[LocationAreaSummary]
game_indices: List[LocationGameIndex]
id: int
name: constr(max_length=200)
names: List[LocationName]
region: RegionSummary
class MachineDetail(BaseModel):
id: int
item: ItemSummary
move: MoveSummary
version_group: VersionGroupSummary
class MoveBattleStyleDetail(BaseModel):
id: int
name: constr(max_length=200)
names: List[MoveBattleStyleName]
class MoveChange(BaseModel):
accuracy: Optional[int] = None
effect_chance: int
effect_entries: List[EffectEntry]
power: Optional[int] = None
pp: Optional[int] = None
type: TypeSummary
version_group: VersionGroupSummary
class MoveDamageClassDetail(BaseModel):
descriptions: List[MoveDamageClassDescription]
id: int
moves: List[MoveSummary]
name: constr(max_length=200)
names: List[MoveDamageClassName]
class MoveFlavorText(BaseModel):
flavor_text: str
language: LanguageSummary
version_group: VersionGroupSummary
class MoveLearnMethodDetail(BaseModel):
descriptions: List[MoveLearnMethodDescription]
id: int
name: constr(max_length=200)
names: List[MoveLearnMethodName]
version_groups: List[VersionGroup3]
class MoveMeta(BaseModel):
ailment: MoveMetaAilmentSummary
ailment_chance: Optional[int] = None
category: MoveMetaCategorySummary
crit_rate: Optional[int] = None
drain: Optional[int] = None
flinch_chance: Optional[int] = None
healing: Optional[int] = None
max_hits: Optional[int] = None
max_turns: Optional[int] = None
min_hits: Optional[int] = None
min_turns: Optional[int] = None
stat_chance: Optional[int] = None
class MoveMetaAilmentDetail(BaseModel):
id: int
moves: List[Move]
name: constr(max_length=200)
names: List[MoveMetaAilmentName]
class MoveTargetDetail(BaseModel):
descriptions: List[MoveTargetDescription]
id: int
moves: List[MoveSummary]
name: constr(max_length=200)
names: List[MoveTargetName]
class NatureDetail(BaseModel):
berries: List[BerrySummary]
decreased_stat: StatSummary
hates_flavor: BerryFlavorSummary
id: int
increased_stat: StatSummary
likes_flavor: BerryFlavorSummary
move_battle_style_preferences: List[NatureBattleStylePreference]
name: constr(max_length=200)
names: List[NatureName]
pokeathlon_stat_changes: List[PokeathlonStatChange]
class PaginatedPalParkAreaSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[PalParkAreaSummary]] = None
class PaginatedPokeathlonStatSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[PokeathlonStatSummary]] = None
class PaginatedPokedexSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[PokedexSummary]] = None
class PaginatedPokemonColorSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[PokemonColorSummary]] = None
class PaginatedPokemonFormSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[PokemonFormSummary]] = None
class PaginatedPokemonHabitatSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[PokemonHabitatSummary]] = None
class PaginatedPokemonShapeSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[PokemonShapeSummary]] = None
class PaginatedPokemonSpeciesSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[PokemonSpeciesSummary]] = None
class PaginatedPokemonSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[PokemonSummary]] = None
class PaginatedRegionSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[RegionSummary]] = None
class PaginatedStatSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[StatSummary]] = None
class PaginatedSuperContestEffectSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[SuperContestEffectSummary]] = None
class PaginatedTypeSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[TypeSummary]] = None
class PaginatedVersionGroupSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[VersionGroupSummary]] = None
class PaginatedVersionSummaryList(BaseModel):
count: Optional[int] = Field(None, examples=[123])
next: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=400&limit=100']
)
previous: Optional[AnyUrl] = Field(
None, examples=['http://api.example.org/accounts/?offset=200&limit=100']
)
results: Optional[List[VersionSummary]] = None
class PalParkAreaDetail(BaseModel):
id: int
name: constr(max_length=200)
names: List[PalParkAreaName]
pokemon_encounters: List[PokemonEncounter1]
class PokeathlonStatDetail(BaseModel):
affecting_natures: AffectingNatures
id: int
name: constr(max_length=200)
names: List[PokeathlonStatName]
class PokedexDetail(BaseModel):
descriptions: List[PokedexDescription]
id: int
is_main_series: Optional[bool] = None
name: constr(max_length=200)
names: List[PokedexName]
pokemon_entries: List[PokemonEntry]
region: RegionSummary
version_groups: List[VersionGroup4]
class PokemonColorDetail(BaseModel):
id: int
name: constr(max_length=200)
names: List[PokemonColorName]
pokemon_species: List[PokemonSpeciesSummary]
class PokemonFormDetail(BaseModel):
form_name: constr(max_length=30)
form_names: List[FormName]
form_order: Optional[int] = None
id: int
is_battle_only: Optional[bool] = None
is_default: Optional[bool] = None
is_mega: Optional[bool] = None
name: constr(max_length=200)
names: List[Name]
order: Optional[int] = None
pokemon: PokemonSummary
sprites: Sprites2 = Field(
...,
examples=[
{
'back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/412.png',
'back_female': None,
'back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/412.png',
'back_shiny_female': None,
'front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/412.png',
'front_female': None,
'front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/412.png',
'front_shiny_female': None,
}
],
)
types: List[Type4]
version_group: VersionGroupSummary
class PokemonGameIndex(BaseModel):
game_index: int
version: VersionSummary
class PokemonHabitatDetail(BaseModel):
id: int
name: constr(max_length=200)
names: List[PokemonHabitatName]
pokemon_species: List[PokemonSpeciesSummary]
class PokemonShapeDetail(BaseModel):
awesome_names: List[AwesomeName]
id: int
name: constr(max_length=200)
names: List[Name1]
pokemon_species: List[PokemonSpeciesSummary]
class PokemonSpeciesFlavorText(BaseModel):
flavor_text: str
language: LanguageSummary
version: VersionSummary
class PokemonStat(BaseModel):
base_stat: int
effort: int
stat: StatSummary
class RegionDetail(BaseModel):
id: int
locations: List[LocationSummary]
main_generation: GenerationSummary
name: constr(max_length=200)
names: List[RegionName]
pokedexes: List[PokedexSummary]
version_groups: List[VersionGroup5]
class StatDetail(BaseModel):
affecting_moves: AffectingMoves
affecting_natures: AffectingNatures1
characteristics: List[CharacteristicSummary]
game_index: int
id: int
is_battle_only: Optional[bool] = None
move_damage_class: MoveDamageClassSummary
name: constr(max_length=200)
names: List[StatName]
class SuperContestEffectDetail(BaseModel):
appeal: int
flavor_text_entries: List[SuperContestEffectFlavorText]
id: int
moves: List[MoveSummary]
class TypeDetail(BaseModel):
damage_relations: DamageRelations
game_indices: List[TypeGameIndex]
generation: GenerationSummary
id: int
move_damage_class: MoveDamageClassSummary
moves: List[MoveSummary]
name: constr(max_length=200)
names: List[AbilityName]
past_damage_relations: List[PastDamageRelation]
pokemon: List[PokemonItem1]
sprites: Dict[str, Dict[str, Sprites3]] = Field(
...,
examples=[
{
'sprites': {
'generation-iii': {
'colosseum': {
'name_icon': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/types/generation-iii/colosseum/1.png'
},
'emerald': {
'name_icon': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/types/generation-iii/emerald/1.png'
},
'firered-leafgreen': {
'name_icon': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/types/generation-iii/firered-leafgreen/1.png'
},
'ruby-saphire': {
'name_icon': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/types/generation-iii/ruby-saphire/1.png'
},
'xd': {
'name_icon': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/types/generation-iii/xd/1.png'
},
}
}
}
],
)
class VersionDetail4(BaseModel):
id: int
name: constr(max_length=200)
names: List[VersionName]
version_group: VersionGroupSummary
class VersionGroupDetail1(BaseModel):
generation: GenerationSummary
id: int
move_learn_methods: List[MoveLearnMethod]
name: constr(max_length=200)
order: Optional[int] = None
pokedexes: List[Pokedex]
regions: List[Region]
versions: List[VersionSummary]
class AbilityChange(BaseModel):
effect_entries: List[AbilityChangeEffectText]
version_group: VersionGroupSummary
class AbilityDetail(BaseModel):
effect_changes: List[AbilityChange]
effect_entries: List[AbilityEffectText]
flavor_text_entries: List[AbilityFlavorText]
generation: GenerationSummary
id: int
is_main_series: Optional[bool] = None
name: constr(max_length=200)
names: List[AbilityName]
pokemon: List[PokemonItem]
class BerryFirmnessDetail(BaseModel):
berries: List[BerrySummary]
id: int
name: constr(max_length=200)
names: List[BerryFirmnessName]
class BerryFlavorDetail(BaseModel):
berries: List[Berry]
contest_type: ContestTypeSummary
id: int
name: constr(max_length=200)
names: List[BerryFlavorName]
class ContestEffectDetail(BaseModel):
appeal: int
effect_entries: List[ContestEffectEffectText]
flavor_text_entries: List[ContestEffectFlavorText]
id: int
jam: int
class ContestTypeDetail(BaseModel):
berry_flavor: BerryFlavorSummary
id: int
name: constr(max_length=200)
names: List[ContestTypeName]
class EggGroupDetail(BaseModel):
id: int
name: constr(max_length=200)
names: List[EggGroupName]
pokemon_species: List[PokemonSpecy]
class EncounterConditionDetail(BaseModel):
id: int
name: constr(max_length=200)
names: List[EncounterConditionName]
values: List[EncounterConditionValueSummary]
class EncounterConditionValueDetail(BaseModel):
condition: EncounterConditionSummary
id: int
name: constr(max_length=200)
names: List[EncounterConditionValueName]
class EncounterMethodDetail(BaseModel):
id: int
name: constr(max_length=200)
names: List[EncounterMethodName]
order: Optional[int] = None
class EvolutionTriggerDetail(BaseModel):
id: int
name: constr(max_length=200)
names: List[EvolutionTriggerName]
pokemon_species: List[PokemonSpecy1]
class GenerationDetail(BaseModel):
abilities: List[AbilitySummary]
id: int
main_region: RegionSummary
moves: List[MoveSummary]
name: constr(max_length=200)
names: List[GenerationName]
pokemon_species: List[PokemonSpeciesSummary]
types: List[TypeSummary]
version_groups: List[VersionGroupSummary]
class ItemAttributeDetail(BaseModel):
descriptions: List[ItemAttributeDescription]
id: int
items: List[Item1]
name: constr(max_length=200)
names: List[ItemAttributeName]
class ItemCategoryDetail(BaseModel):
id: int
items: List[ItemSummary]
name: constr(max_length=200)
names: List[ItemCategoryName]
pocket: ItemPocketSummary
class ItemDetail(BaseModel):
attributes: List[Attribute]
baby_trigger_for: BabyTriggerFor
category: ItemCategorySummary
cost: Optional[int] = None
effect_entries: List[ItemEffectText]
flavor_text_entries: List[ItemFlavorText]
fling_effect: ItemFlingEffectSummary
fling_power: Optional[int] = None
game_indices: List[ItemGameIndex]
held_by_pokemon: List[HeldByPokemonItem]
id: int
machines: List[Machine]
name: constr(max_length=200)
names: List[ItemName]
sprites: Sprites
class ItemFlingEffectDetail(BaseModel):
effect_entries: List[ItemFlingEffectEffectText]
id: int
items: List[ItemSummary]
name: constr(max_length=200)
class ItemPocketDetail(BaseModel):
categories: List[ItemCategorySummary]
id: int
name: constr(max_length=200)
names: List[ItemPocketName]
class LanguageDetail(BaseModel):
id: int
iso3166: constr(max_length=2)
iso639: constr(max_length=10)
name: constr(max_length=200)
names: List[LanguageName]
official: Optional[bool] = None
class MoveDetail(BaseModel):
accuracy: Optional[int] = None
contest_combos: ContestCombos
contest_effect: ContestEffectSummary
contest_type: ContestTypeSummary
damage_class: MoveDamageClassSummary
effect_chance: int
effect_changes: List[EffectChange]
effect_entries: List[EffectEntry2]
flavor_text_entries: List[MoveFlavorText]
generation: GenerationSummary
id: int
learned_by_pokemon: List[LearnedByPokemonItem]
machines: List[Machine1]
meta: MoveMeta
name: constr(max_length=200)
names: List[MoveName]
past_values: List[MoveChange]
power: Optional[int] = None
pp: Optional[int] = None
priority: Optional[int] = None
stat_changes: List[StatChange]
super_contest_effect: SuperContestEffectSummary
target: MoveTargetSummary
type: TypeSummary
class PokemonDetail(BaseModel):
abilities: List[Ability]
base_experience: Optional[int] = None
cries: Cries
forms: List[PokemonFormSummary]
game_indices: List[PokemonGameIndex]
height: Optional[int] = None
held_items: HeldItems
id: int
is_default: Optional[bool] = None
location_area_encounters: str = Field(
..., examples=['https://pokeapi.co/api/v2/pokemon/1/encounters']
)
moves: List[Move2]
name: constr(max_length=200)
order: Optional[int] = None
past_abilities: List[PastAbility]
past_types: List[PastType]
species: PokemonSpeciesSummary
sprites: Sprites1 = Field(
...,
examples=[
{
'back_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/1.png',
'back_female': None,
'back_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/1.png',
'back_shiny_female': None,
'front_default': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png',
'front_female': None,
'front_shiny': 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/1.png',
'front_shiny_female': None,
}
],
)
stats: List[PokemonStat]
types: List[Type2]
weight: Optional[int] = None
class PokemonSpeciesDetail1(BaseModel):
base_happiness: Optional[int] = None
capture_rate: Optional[int] = None
color: PokemonColorSummary
egg_groups: List[EggGroup]
evolution_chain: EvolutionChainSummary
evolves_from_species: PokemonSpeciesSummary
flavor_text_entries: List[PokemonSpeciesFlavorText]
form_descriptions: List[PokemonSpeciesDescription]
forms_switchable: Optional[bool] = None
gender_rate: Optional[int] = None
genera: List[Genus]
generation: GenerationSummary
growth_rate: GrowthRateSummary
habitat: PokemonHabitatSummary
has_gender_differences: Optional[bool] = None
hatch_counter: Optional[int] = None
id: int
is_baby: Optional[bool] = None
is_legendary: Optional[bool] = None
is_mythical: Optional[bool] = None
name: constr(max_length=200)
names: List[Name2]
order: Optional[int] = None
pal_park_encounters: List[PalParkEncounter]
pokedex_numbers: List[PokemonDexEntry]
shape: PokemonShapeSummary
varieties: List[Variety]