---
title: "Get evolution chain"
method: GET
path: "/api/v2/evolution-chain/{id}/"
tags: ["evolution"]
---

# Get evolution chain

`GET /api/v2/evolution-chain/{id}/`

Evolution chains are essentially family trees. They start with the lowest stage within a family and detail evolution conditions for each as well as Pokémon they can evolve into up through the hierarchy.

## Path parameters

- `id` string, required

## Response `200`

- EvolutionChainDetail
  - `id` integer, required
  - `baby_trigger_item` ItemSummary, required
    - `name` string, required
    - `url` string, uri, required
  - `chain` object, required
    - `evolution_details` unknown[], required
      - unknown
    - `evolves_to` object[], required
      - `evolution_details` object[], required
        - `gender` object, nullable, required
          - `name` string, required
          - `url` string, uri, required
        - `held_item` object, nullable, required
          - `name` string, required
          - `url` string, uri, required
        - `item` object, nullable, required
          - `name` string, required
          - `url` string, uri, required
        - `known_move` unknown, required
        - `known_move_type` unknown, required
        - `location` object, nullable, required
          - `name` string, required
          - `url` string, uri, required
        - `min_affection` integer, nullable, required
        - `min_beauty` integer, nullable, required
        - `min_happiness` integer, nullable, required
        - `min_level` integer, nullable, required
        - `needs_overworld_rain` boolean, nullable, required
        - `party_species` string, nullable, required
        - `party_type` string, nullable, required
        - `relative_physical_stats` string, nullable, required
        - `time_of_day` string, required
        - `trade_species` string, nullable, required
        - `trigger` object, required
          - `name` string, required
          - `url` string, uri, required
        - `turn_upside_down` boolean, required
      - `is_baby` boolean, required
      - `species` object, required
        - `name` string, required
        - `url` string, uri, required
    - `is_baby` boolean, required
    - `species` object, required
      - `name` string, required
      - `url` string, uri, required

## Changes

- **2025-05-30** `663217b1c9e4` — 1 info
  - api operation id `evolution_chain_retrieve` removed and replaced with `api_v2_evolution_chain_retrieve`
- **2025-02-04** `ad06aa7bf909` — 1 breaking
  - the `baby_trigger_item/name` response property's maxLength was increased from `100` to `200` for the response status `200`
- **2024-05-10** `88897cce8edf` — 1 info
  - for the `path` request parameter `id`, the type/format was generalized from `integer`/`` to `string`/``
- **2024-03-04** `ec97d3858c18` — 4 info
  - added the required property `chain/evolution_details` to the response with the `200` status
  - added the required property `chain/evolves_to` to the response with the `200` status
  - added the required property `chain/is_baby` to the response with the `200` status
  - added the required property `chain/species` to the response with the `200` status
- **2024-03-01** `ab3d249e60a7` — 1 breaking
  - the `chain` response's property type/format changed from `string`/`` to `object`/`` for status `200`

[Full history](https://skmtc.dev/pokeapi/apis/poke-api/changes/api/v2/evolution-chain/:id/get.md)

---

[API](https://skmtc.dev/pokeapi/apis/poke-api.md) · [All operations](https://skmtc.dev/pokeapi/apis/poke-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/pokeapi/poke-api/revisions/663217b1c9e4/schema)
