How to hit the PokéAPI API

PokéAPI is a free, read-only REST API at https://pokeapi.co/api/v2 covering every Pokémon, move, type, and game. Responses are big, deeply nested JSON — a good API to practice on. Every example below runs as-is.

Authentication

None — no key, no signup. Resources are fetched by name or by id (/pokemon/pikachu and /pokemon/25 are the same). Be polite: the maintainers ask you to cache responses rather than hammer the API.

Full reference: https://pokeapi.co/docs/v2

Get a Pokémon

Types, abilities, base stats, sprites, and moves for one Pokémon. The full response is ~290 KB, mostly the move list.

curl https://pokeapi.co/api/v2/pokemon/pikachu
Run in PostTaco
Example response (trimmed)
{
  "id": 25,
  "name": "pikachu",
  "height": 4,
  "weight": 60,
  "base_experience": 112,
  "types": [
    {
      "slot": 1,
      "type": {
        "name": "electric"
      }
    }
  ],
  "abilities": [
    {
      "ability": {
        "name": "static"
      },
      "is_hidden": false
    },
    {
      "ability": {
        "name": "lightning-rod"
      },
      "is_hidden": true
    }
  ],
  "stats": [
    {
      "base_stat": 35,
      "stat": {
        "name": "hp"
      }
    },
    {
      "base_stat": 55,
      "stat": {
        "name": "attack"
      }
    },
    {
      "base_stat": 40,
      "stat": {
        "name": "defense"
      }
    }
  ],
  "sprites": {
    "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/25.png"
  }
}

List Pokémon (paginated)

Every list endpoint pages with limit and offset, and hands you the next URL.

curl "https://pokeapi.co/api/v2/pokemon?limit=5&offset=0"
Run in PostTaco
Example response (trimmed)
{
  "count": 1351,
  "next": "https://pokeapi.co/api/v2/pokemon?offset=5&limit=5",
  "previous": null,
  "results": [
    {
      "name": "bulbasaur",
      "url": "https://pokeapi.co/api/v2/pokemon/1/"
    },
    {
      "name": "ivysaur",
      "url": "https://pokeapi.co/api/v2/pokemon/2/"
    },
    {
      "name": "venusaur",
      "url": "https://pokeapi.co/api/v2/pokemon/3/"
    },
    {
      "name": "charmander",
      "url": "https://pokeapi.co/api/v2/pokemon/4/"
    },
    {
      "name": "charmeleon",
      "url": "https://pokeapi.co/api/v2/pokemon/5/"
    }
  ]
}

Get a type and its matchups

What a type is strong and weak against, plus every Pokémon of that type.

curl https://pokeapi.co/api/v2/type/electric
Run in PostTaco
Example response (trimmed)
{
  "name": "electric",
  "damage_relations": {
    "no_damage_to": [
      {
        "name": "ground"
      }
    ],
    "half_damage_to": [
      {
        "name": "grass"
      },
      {
        "name": "electric"
      },
      {
        "name": "dragon"
      }
    ],
    "double_damage_to": [
      {
        "name": "flying"
      },
      {
        "name": "water"
      }
    ],
    "no_damage_from": [],
    "half_damage_from": [
      {
        "name": "flying"
      },
      {
        "name": "steel"
      },
      {
        "name": "electric"
      }
    ],
    "double_damage_from": [
      {
        "name": "ground"
      }
    ]
  },
  "pokemon": [
    {
      "slot": 1,
      "pokemon": {
        "name": "pikachu",
        "url": "https://pokeapi.co/api/v2/pokemon/25/"
      }
    },
    {
      "slot": 1,
      "pokemon": {
        "name": "raichu",
        "url": "https://pokeapi.co/api/v2/pokemon/26/"
      }
    }
  ]
}

Get a species

Evolution line, generation, capture rate, and Pokédex text in every language.

curl https://pokeapi.co/api/v2/pokemon-species/pikachu
Run in PostTaco
Example response (trimmed)
{
  "name": "pikachu",
  "generation": {
    "name": "generation-i"
  },
  "evolves_from_species": {
    "name": "pichu"
  },
  "capture_rate": 190,
  "is_legendary": false,
  "flavor_text_entries": [
    {
      "flavor_text": "Possesses cheek sacs in which it stores electricity. This clever\nforest-dweller roasts tough berries with an electric shock before\nconsuming them.",
      "language": {
        "name": "en"
      },
      "version": {
        "name": "legends-arceus"
      }
    }
  ]
}

Get an ability

What an ability does and which Pokémon can have it.

curl https://pokeapi.co/api/v2/ability/static
Run in PostTaco
Example response (trimmed)
{
  "name": "static",
  "effect_entries": [
    {
      "short_effect": "Has a 30% chance of paralyzing attacking Pokémon on contact.",
      "language": {
        "name": "en"
      }
    }
  ],
  "pokemon": [
    {
      "is_hidden": false,
      "slot": 1,
      "pokemon": {
        "name": "pikachu",
        "url": "https://pokeapi.co/api/v2/pokemon/25/"
      }
    },
    {
      "is_hidden": false,
      "slot": 1,
      "pokemon": {
        "name": "raichu",
        "url": "https://pokeapi.co/api/v2/pokemon/26/"
      }
    }
  ]
}