diff --git a/scripts/get-evolutions.js b/scripts/get-evolutions.js
new file mode 100644
index 0000000..5f9ce1f
--- /dev/null
+++ b/scripts/get-evolutions.js
@@ -0,0 +1,60 @@
+const pokemon = require("./pokemon.json");
+const fs = require("fs");
+
+const BASE_URL = "https://pokeapi.co/api/v2/evolution-chain/";
+
+function getPokemonId(name) {
+  for (let i = 0; i < pokemon.length; i++) {
+    if (pokemon[i].name === name) return i + 1;
+  }
+  return null;
+}
+
+const downloadData = async () => {
+  // Read data
+  const output = JSON.parse(fs.readFileSync("data.json"));
+
+  for (let i = 1; i < 150; i++) {
+    console.log("Downloading", i);
+    const response = await fetch(`${BASE_URL}${i}`);
+    const data = await response.json();
+    const pokemonName = data.chain.species.name;
+    console.log(pokemonName);
+
+    const evolvesTo = data.chain.evolves_to.find(
+      (e) => e.evolution_details[0].trigger.name === "level-up"
+    );
+    if (!evolvesTo) continue;
+    const evolution = {
+      pokemon: getPokemonId(evolvesTo.species.name),
+      level: evolvesTo.evolution_details[0].min_level,
+    };
+    const pokemonId = getPokemonId(pokemonName);
+    if (pokemonId && evolution.pokemon) {
+      output[pokemonId].evolution = evolution;
+    }
+    const evolvesTo2 = evolvesTo.evolves_to.find(
+      (e) => e.evolution_details[0].trigger.name === "level-up"
+    );
+    console.log(evolvesTo2);
+    if (!evolvesTo2) continue;
+    console.log(evolvesTo2);
+    const evolution2 = {
+      pokemon: getPokemonId(evolvesTo2.species.name),
+      level: evolvesTo2.evolution_details[0].min_level,
+    };
+    console.log(evolution2);
+
+    if (evolution.pokemon && evolution2.pokemon) {
+      output[evolution.pokemon].evolution = evolution2;
+    }
+
+    console.log(`Downloaded ${i}`);
+    // wait one second
+    await new Promise((resolve) => setTimeout(resolve, 1000));
+  }
+
+  fs.writeFileSync("data.json", JSON.stringify(output));
+};
+
+downloadData();