Resources & Endpoints

PokéAPI organises its data into resource categories, each with a collection endpoint (list all) and an item endpoint (get one). The URL structure is:

https://pokeapi.co/api/v2/{resource}/
https://pokeapi.co/api/v2/{resource}/{id or name}/

Resource categories

PokéAPI v2 has over 50 resource types grouped into these broad categories:

ResourceEndpointDescription
Pokémon/pokemon/Core Pokémon data — stats, moves, sprites
Pokémon Species/pokemon-species/Cross-generation species info, flavour text
Pokémon Forms/pokemon-form/Alternate forms (Alolan, Galarian, etc.)
Pokémon Habitats/pokemon-habitat/Where Pokémon live in the game world
Pokémon Colors/pokemon-color/Pokédex color classification
Pokémon Shapes/pokemon-shape/Body shape classification

Endpoint pattern

Every resource follows the same two-endpoint pattern:

  1. List endpoint (collection)

    Returns a paginated list of NamedAPIResource objects — name + URL pairs.

    GET https://pokeapi.co/api/v2/pokemon/
    {
      "count": 1302,
      "next": "https://pokeapi.co/api/v2/pokemon/?offset=20&limit=20",
      "previous": null,
      "results": [
        { "name": "bulbasaur", "url": "https://pokeapi.co/api/v2/pokemon/1/" },
        { "name": "ivysaur",   "url": "https://pokeapi.co/api/v2/pokemon/2/" }
      ]
    }
  2. Item endpoint (single resource)

    Returns the full resource object, addressed by name or numeric ID.

    GET https://pokeapi.co/api/v2/pokemon/bulbasaur
    GET https://pokeapi.co/api/v2/pokemon/1

    Both URLs return the same Bulbasaur resource.

Naming conventions

Lowercase, hyphenated

All names are lowercase with hyphens: mr-mime, ho-oh, porygon-z. No spaces, no underscores.

Stable numeric IDs

National Pokédex IDs are stable. IDs for other resources are also stable but have no specific meaning beyond ordering.

The API returns names in English by default. Many resources include a names array with translations into Japanese, French, German, Korean, and more — each paired with a language reference.

Internationalization

Pokémon names, move names, and flavour text are available in multiple languages via the names and flavor_text_entries arrays:

{
  "names": [
    { "name": "Pikachu", "language": { "name": "en", "url": "..." } },
    { "name": "ピカチュウ", "language": { "name": "ja", "url": "..." } },
    { "name": "Pikachu", "language": { "name": "fr", "url": "..." } }
  ]
}