PokéAPI Pokémon API
Pokémon, species, abilities, types, stats, natures, egg groups, growth rates, genders, characteristics, and Pokéathlon stats.
Pokémon, species, abilities, types, stats, natures, egg groups, growth rates, genders, characteristics, and Pokéathlon stats.
openapi: 3.1.0
info:
title: Poké Berries Pokémon API
description: PokéAPI v2 is a free, open-source RESTful API serving comprehensive Pokémon data — species, abilities, moves, items, types, locations, evolution chains, encounters, berries, contests, games, and machines. All endpoints are GET-only and require no authentication. Please cache resources locally; rate limits were removed in 2018 but persistent abusers may be IP-banned.
version: '2'
contact:
name: PokéAPI Maintainers
url: https://pokeapi.co
license:
name: BSD-3-Clause
url: https://github.com/PokeAPI/pokeapi/blob/master/LICENSE.md
servers:
- url: https://pokeapi.co/api/v2
description: PokéAPI v2 production base URL
tags:
- name: Pokémon
description: Pokémon, species, abilities, types, stats, natures, egg groups, growth rates, genders, characteristics, and Pokéathlon stats.
paths:
/ability:
get:
tags:
- Pokémon
summary: List Abilities
description: List all Pokémon abilities.
operationId: listAbilities
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
responses:
'200':
description: A paginated list of ability resources.
content:
application/json:
schema:
$ref: '#/components/schemas/NamedAPIResourceList'
/ability/{id}:
get:
tags:
- Pokémon
summary: Get Ability
description: Retrieve a single ability by id or name.
operationId: getAbility
parameters:
- $ref: '#/components/parameters/IdOrName'
responses:
'200':
description: A single ability resource.
content:
application/json:
schema:
$ref: '#/components/schemas/Ability'
/characteristic:
get:
tags:
- Pokémon
summary: List Characteristics
description: List all characteristics.
operationId: listCharacteristics
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
responses:
'200':
description: A paginated list of characteristic resources.
content:
application/json:
schema:
$ref: '#/components/schemas/APIResourceList'
/characteristic/{id}:
get:
tags:
- Pokémon
summary: Get Characteristic
description: Retrieve a single characteristic by id.
operationId: getCharacteristic
parameters:
- $ref: '#/components/parameters/IntegerId'
responses:
'200':
description: A single characteristic resource.
content:
application/json:
schema:
$ref: '#/components/schemas/Characteristic'
/egg-group:
get:
tags:
- Pokémon
summary: List Egg Groups
description: List all egg groups.
operationId: listEggGroups
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
responses:
'200':
description: A paginated list of egg group resources.
content:
application/json:
schema:
$ref: '#/components/schemas/NamedAPIResourceList'
/egg-group/{id}:
get:
tags:
- Pokémon
summary: Get Egg Group
description: Retrieve a single egg group by id or name.
operationId: getEggGroup
parameters:
- $ref: '#/components/parameters/IdOrName'
responses:
'200':
description: A single egg group resource.
content:
application/json:
schema:
$ref: '#/components/schemas/EggGroup'
/gender:
get:
tags:
- Pokémon
summary: List Genders
description: List all gender designations.
operationId: listGenders
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
responses:
'200':
description: A paginated list of gender resources.
content:
application/json:
schema:
$ref: '#/components/schemas/NamedAPIResourceList'
/gender/{id}:
get:
tags:
- Pokémon
summary: Get Gender
description: Retrieve a single gender by id or name.
operationId: getGender
parameters:
- $ref: '#/components/parameters/IdOrName'
responses:
'200':
description: A single gender resource.
content:
application/json:
schema:
$ref: '#/components/schemas/Gender'
/growth-rate:
get:
tags:
- Pokémon
summary: List Growth Rates
description: List all growth rates.
operationId: listGrowthRates
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
responses:
'200':
description: A paginated list of growth rate resources.
content:
application/json:
schema:
$ref: '#/components/schemas/NamedAPIResourceList'
/growth-rate/{id}:
get:
tags:
- Pokémon
summary: Get Growth Rate
description: Retrieve a single growth rate by id or name.
operationId: getGrowthRate
parameters:
- $ref: '#/components/parameters/IdOrName'
responses:
'200':
description: A single growth rate resource.
content:
application/json:
schema:
$ref: '#/components/schemas/GrowthRate'
/nature:
get:
tags:
- Pokémon
summary: List Natures
description: List all natures.
operationId: listNatures
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
responses:
'200':
description: A paginated list of nature resources.
content:
application/json:
schema:
$ref: '#/components/schemas/NamedAPIResourceList'
/nature/{id}:
get:
tags:
- Pokémon
summary: Get Nature
description: Retrieve a single nature by id or name.
operationId: getNature
parameters:
- $ref: '#/components/parameters/IdOrName'
responses:
'200':
description: A single nature resource.
content:
application/json:
schema:
$ref: '#/components/schemas/Nature'
/pokeathlon-stat:
get:
tags:
- Pokémon
summary: List Pokéathlon Stats
description: List all Pokéathlon stats.
operationId: listPokeathlonStats
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
responses:
'200':
description: A paginated list of Pokéathlon stat resources.
content:
application/json:
schema:
$ref: '#/components/schemas/NamedAPIResourceList'
/pokeathlon-stat/{id}:
get:
tags:
- Pokémon
summary: Get Pokéathlon Stat
description: Retrieve a single Pokéathlon stat by id or name.
operationId: getPokeathlonStat
parameters:
- $ref: '#/components/parameters/IdOrName'
responses:
'200':
description: A single Pokéathlon stat resource.
content:
application/json:
schema:
$ref: '#/components/schemas/PokeathlonStat'
/pokemon:
get:
tags:
- Pokémon
summary: List Pokémon
description: List all Pokémon.
operationId: listPokemon
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
responses:
'200':
description: A paginated list of Pokémon resources.
content:
application/json:
schema:
$ref: '#/components/schemas/NamedAPIResourceList'
/pokemon/{id}:
get:
tags:
- Pokémon
summary: Get Pokémon
description: Retrieve a single Pokémon by id or name.
operationId: getPokemon
parameters:
- $ref: '#/components/parameters/IdOrName'
responses:
'200':
description: A single Pokémon resource.
content:
application/json:
schema:
$ref: '#/components/schemas/Pokemon'
/pokemon/{id}/encounters:
get:
tags:
- Pokémon
summary: Get Pokémon Encounters
description: Retrieve the list of location-area encounters for a Pokémon.
operationId: getPokemonEncounters
parameters:
- $ref: '#/components/parameters/IdOrName'
responses:
'200':
description: A list of location-area encounters.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LocationAreaEncounter'
/pokemon-species:
get:
tags:
- Pokémon
summary: List Pokémon Species
description: List all Pokémon species.
operationId: listPokemonSpecies
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
responses:
'200':
description: A paginated list of Pokémon species resources.
content:
application/json:
schema:
$ref: '#/components/schemas/NamedAPIResourceList'
/pokemon-species/{id}:
get:
tags:
- Pokémon
summary: Get Pokémon Species
description: Retrieve a single Pokémon species by id or name.
operationId: getPokemonSpecies
parameters:
- $ref: '#/components/parameters/IdOrName'
responses:
'200':
description: A single Pokémon species resource.
content:
application/json:
schema:
$ref: '#/components/schemas/PokemonSpecies'
/stat:
get:
tags:
- Pokémon
summary: List Stats
description: List all battle stats.
operationId: listStats
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
responses:
'200':
description: A paginated list of stat resources.
content:
application/json:
schema:
$ref: '#/components/schemas/NamedAPIResourceList'
/stat/{id}:
get:
tags:
- Pokémon
summary: Get Stat
description: Retrieve a single stat by id or name.
operationId: getStat
parameters:
- $ref: '#/components/parameters/IdOrName'
responses:
'200':
description: A single stat resource.
content:
application/json:
schema:
$ref: '#/components/schemas/Stat'
/type:
get:
tags:
- Pokémon
summary: List Types
description: List all Pokémon types.
operationId: listTypes
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
responses:
'200':
description: A paginated list of type resources.
content:
application/json:
schema:
$ref: '#/components/schemas/NamedAPIResourceList'
/type/{id}:
get:
tags:
- Pokémon
summary: Get Type
description: Retrieve a single type by id or name.
operationId: getType
parameters:
- $ref: '#/components/parameters/IdOrName'
responses:
'200':
description: A single type resource.
content:
application/json:
schema:
$ref: '#/components/schemas/Type'
components:
schemas:
APIResource:
type: object
properties:
url:
type: string
format: uri
description: Canonical URL of the referenced resource.
Description:
type: object
properties:
description:
type: string
language:
$ref: '#/components/schemas/NamedAPIResource'
Nature:
type: object
properties:
id:
type: integer
name:
type: string
decreased_stat:
$ref: '#/components/schemas/NamedAPIResource'
nullable: true
increased_stat:
$ref: '#/components/schemas/NamedAPIResource'
nullable: true
likes_flavor:
$ref: '#/components/schemas/NamedAPIResource'
nullable: true
hates_flavor:
$ref: '#/components/schemas/NamedAPIResource'
nullable: true
names:
type: array
items:
$ref: '#/components/schemas/Name'
NamedAPIResourceList:
type: object
properties:
count:
type: integer
next:
type: string
nullable: true
format: uri
previous:
type: string
nullable: true
format: uri
results:
type: array
items:
$ref: '#/components/schemas/NamedAPIResource'
LocationAreaEncounter:
type: object
properties:
location_area:
$ref: '#/components/schemas/NamedAPIResource'
version_details:
type: array
items:
type: object
Ability:
type: object
properties:
id:
type: integer
name:
type: string
is_main_series:
type: boolean
generation:
$ref: '#/components/schemas/NamedAPIResource'
names:
type: array
items:
$ref: '#/components/schemas/Name'
effect_entries:
type: array
items:
type: object
flavor_text_entries:
type: array
items:
$ref: '#/components/schemas/FlavorText'
pokemon:
type: array
items:
type: object
Characteristic:
type: object
properties:
id:
type: integer
gene_modulo:
type: integer
possible_values:
type: array
items:
type: integer
highest_stat:
$ref: '#/components/schemas/NamedAPIResource'
descriptions:
type: array
items:
$ref: '#/components/schemas/Description'
Gender:
type: object
properties:
id:
type: integer
name:
type: string
pokemon_species_details:
type: array
items:
type: object
required_for_evolution:
type: array
items:
$ref: '#/components/schemas/NamedAPIResource'
EggGroup:
type: object
properties:
id:
type: integer
name:
type: string
names:
type: array
items:
$ref: '#/components/schemas/Name'
pokemon_species:
type: array
items:
$ref: '#/components/schemas/NamedAPIResource'
Type:
type: object
properties:
id:
type: integer
name:
type: string
damage_relations:
type: object
past_damage_relations:
type: array
items:
type: object
game_indices:
type: array
items:
type: object
generation:
$ref: '#/components/schemas/NamedAPIResource'
move_damage_class:
$ref: '#/components/schemas/NamedAPIResource'
nullable: true
names:
type: array
items:
$ref: '#/components/schemas/Name'
pokemon:
type: array
items:
type: object
moves:
type: array
items:
$ref: '#/components/schemas/NamedAPIResource'
PokeathlonStat:
type: object
properties:
id:
type: integer
name:
type: string
names:
type: array
items:
$ref: '#/components/schemas/Name'
affecting_natures:
type: object
Name:
type: object
properties:
name:
type: string
language:
$ref: '#/components/schemas/NamedAPIResource'
PokemonSpecies:
type: object
properties:
id:
type: integer
name:
type: string
order:
type: integer
gender_rate:
type: integer
capture_rate:
type: integer
base_happiness:
type: integer
is_baby:
type: boolean
is_legendary:
type: boolean
is_mythical:
type: boolean
hatch_counter:
type: integer
has_gender_differences:
type: boolean
forms_switchable:
type: boolean
growth_rate:
$ref: '#/components/schemas/NamedAPIResource'
pokedex_numbers:
type: array
items:
type: object
egg_groups:
type: array
items:
$ref: '#/components/schemas/NamedAPIResource'
color:
$ref: '#/components/schemas/NamedAPIResource'
shape:
$ref: '#/components/schemas/NamedAPIResource'
evolves_from_species:
$ref: '#/components/schemas/NamedAPIResource'
nullable: true
evolution_chain:
$ref: '#/components/schemas/APIResource'
habitat:
$ref: '#/components/schemas/NamedAPIResource'
nullable: true
generation:
$ref: '#/components/schemas/NamedAPIResource'
names:
type: array
items:
$ref: '#/components/schemas/Name'
flavor_text_entries:
type: array
items:
$ref: '#/components/schemas/FlavorText'
APIResourceList:
type: object
properties:
count:
type: integer
next:
type: string
nullable: true
format: uri
previous:
type: string
nullable: true
format: uri
results:
type: array
items:
$ref: '#/components/schemas/APIResource'
FlavorText:
type: object
properties:
flavor_text:
type: string
language:
$ref: '#/components/schemas/NamedAPIResource'
version:
$ref: '#/components/schemas/NamedAPIResource'
Stat:
type: object
properties:
id:
type: integer
name:
type: string
game_index:
type: integer
is_battle_only:
type: boolean
affecting_moves:
type: object
affecting_natures:
type: object
characteristics:
type: array
items:
$ref: '#/components/schemas/APIResource'
move_damage_class:
$ref: '#/components/schemas/NamedAPIResource'
nullable: true
names:
type: array
items:
$ref: '#/components/schemas/Name'
GrowthRate:
type: object
properties:
id:
type: integer
name:
type: string
formula:
type: string
descriptions:
type: array
items:
$ref: '#/components/schemas/Description'
levels:
type: array
items:
type: object
pokemon_species:
type: array
items:
$ref: '#/components/schemas/NamedAPIResource'
NamedAPIResource:
type: object
properties:
name:
type: string
description: Slug name of the referenced resource.
url:
type: string
format: uri
description: Canonical URL of the referenced resource.
Pokemon:
type: object
properties:
id:
type: integer
name:
type: string
base_experience:
type: integer
height:
type: integer
is_default:
type: boolean
order:
type: integer
weight:
type: integer
abilities:
type: array
items:
type: object
properties:
is_hidden:
type: boolean
slot:
type: integer
ability:
$ref: '#/components/schemas/NamedAPIResource'
forms:
type: array
items:
$ref: '#/components/schemas/NamedAPIResource'
game_indices:
type: array
items:
type: object
held_items:
type: array
items:
type: object
location_area_encounters:
type: string
moves:
type: array
items:
type: object
species:
$ref: '#/components/schemas/NamedAPIResource'
sprites:
type: object
stats:
type: array
items:
type: object
properties:
base_stat:
type: integer
effort:
type: integer
stat:
$ref: '#/components/schemas/NamedAPIResource'
types:
type: array
items:
type: object
properties:
slot:
type: integer
type:
$ref: '#/components/schemas/NamedAPIResource'
parameters:
IntegerId:
name: id
in: path
required: true
description: Resource id (integer only).
schema:
type: integer
IdOrName:
name: id
in: path
required: true
description: Resource id (integer) or name (slug).
schema:
type: string
Offset:
name: offset
in: query
required: false
description: Number of items to skip before starting to collect the result set.
schema:
type: integer
minimum: 0
default: 0
Limit:
name: limit
in: query
required: false
description: Number of items to return per page.
schema:
type: integer
minimum: 1
maximum: 100000
default: 20