Pokéapi API

Beginner's Pick Games & Comics / No Auth Required Beginner HTTPS
Free to Use
85 A
Measured Score 0 50 100 Speed 25/30 Consistency 17/20 Security 20/20 Browser access 15/15 Transparency 8/15 TESTED 2026-09-21

Overview

PokéAPI is one of the most popular free APIs for developers and provides comprehensive Pokémon data including stats, moves, abilities, and evolutions for all 1000+ Pokémon. No API key is required, making it an ideal choice for beginners learning to work with REST APIs. You can query data by Pokémon name or National Pokédex number.

Beginner Tip

You can reference Pokémon by either their name (lowercase) or their Pokédex number in the URL. Start with simple endpoints like /pokemon/pikachu before exploring nested resources.

Measurement Record

What actually happened when we called this API from our own infrastructure. Every value below was recorded by the request, not copied from the provider's documentation.

Request
GET https://pokeapi.co/api/v2/pokemon/pikachu
Result
HTTP 200 · application/json · 290,912 bytes · compressed
Response time
42 ms (median of 3) · fastest 37 ms
Transport
TLSv1.3 · TLS_AES_256_GCM_SHA384 · certificate issued by Google Trust Services
Browser CORS
Allowed — Access-Control-Allow-Origin: *
Served by
cloudflare
Answered
8 of 8 weekly checks (100%, since 2026-07-31)
Recorded
2026-09-21

Fields Returned

Top-level fields present in the response we captured, with the type and value we actually received.

Field Type Value received
id integer 25
name string pikachu
base_experience integer 112
height integer 4
is_default boolean true
order integer 35
weight integer 60
abilities array [1 item]
past_abilities array [1 item]
forms array [1 item]
game_indices array [1 item]
held_items array [1 item]
location_area_encounters string (url) https://pokeapi.co/api/v2/pokemon/25/encounters
moves array [1 item]

Captured Response

Captured from a real request to https://pokeapi.co/api/v2/pokemon/pikachu on 2026-09-21. Long arrays and nested objects are truncated to keep the shape readable.

JSON Response · Captured
{
  "id": 25,
  "name": "pikachu",
  "base_experience": 112,
  "height": 4,
  "is_default": true,
  "order": 35,
  "weight": 60,
  "abilities": [
    {
      "is_hidden": false,
      "slot": 1,
      "ability": {
        "…": "(2 more fields)"
      }
    }
  ],
  "past_abilities": [
    {
      "generation": {
        "…": "(2 more fields)"
      },
      "abilities": [
        {
          "…": "(3 more fields)"
        }
      ]
    }
  ],
  "forms": [
    {
      "name": "pikachu",
      "url": "https://pokeapi.co/api/v2/pokemon-form/25/"
    }
  ],
  "game_indices": [
    {
      "game_index": 84,
      "version": {
        "…": "(2 more fields)"
      }
    }
  ],
  "held_items": [
    {
      "item": {
        "…": "(2 more fields)"
      },
      "version_details": [
        {
          "…": "(2 more fields)"
        }
      ]
    }
  ],
  "location_area_encounters": "https://pokeapi.co/api/v2/pokemon/25/encounters",
  "moves": [
    {
      "move": {
        "…": "(2 more fields)"
      },
      "version_group_details": [
        {
          "…": "(4 more fields)"
        }
      ]
    }
  ],
  "…": "(7 more fields)"
}

Field Reference

id National Pokédex number for the Pokémon
name Lowercase name of the Pokémon used in API URLs
base_experience Base experience points gained when this Pokémon is defeated
height Height of the Pokémon in decimetres (divide by 10 for metres)
weight Weight of the Pokémon in hectograms (divide by 10 for kilograms)

Implementation Example

Calls a real endpoint of this API. Replace any placeholder credentials with your own key.

Request
const url = "https://pokeapi.co/api/v2/pokemon/pikachu";
const response = await fetch(url);
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

How This API Fails

We deliberately sent this API a broken request and recorded exactly what came back on 2026-09-21. Knowing the shape of an error before you hit it makes error handling much easier to write.

HTTP 400 Requesting a path that does not exist application/json
{
  "status": 400,
  "message": "Invalid path"
}

Common Errors & Troubleshooting

Generated guidance based on this API's documentation, not observed by us. Treat it as a starting point and check against the provider's own error reference.

404 Not Found The Pokémon name or ID in the URL does not match any entry in the database
✓ Use lowercase names without special characters (e.g., "mr-mime" instead of "Mr. Mime") or use the National Pokédex number instead
Slow response on first request PokéAPI caches responses, so the very first request for a resource may be slower
✓ Implement client-side caching using a library or store responses in localStorage to avoid repeated requests for the same data
CORS error in browser Some older browser setups may block the request depending on your configuration
✓ PokéAPI fully supports CORS, so ensure you are fetching from https://pokeapi.co and not an older v1 URL

Measured Score Breakdown

Live HTTP request to the API endpoint

Speed 25/30
Consistency 17/20
Security 20/20
Browser access 15/15
Transparency 8/15
Endpoint Response Time 42ms

Fully tested on Sep 21, 2026

Technical Specifications

Auth No Auth
HTTPS REQUIRED
CORS UNKNOWN
Category Games & Comics
Difficulty Beginner
Endpoint last called: 2026-09-21

Related Tags

Similar APIs

View All →