One dataset per patch
Every game patch becomes its own dataset. Ask for one with
?version=0.5.5.4 or take the latest, and each response names the patch it
came from.
ExileData turns each game patch into a normalized, versioned dataset. Query it through an HTTP API, or download the whole patch as JSON files. Your tool reads records instead of parsing game files.
$ curl -H "x-api-key: exd_…" \ "https://api.exiledata.dev/v1/poe2/bases?itemClass=Amulet&limit=1"
{ "data": [{ "id": "Metadata/Items/Amulets/FourAmulet1", "name": "Crimson Amulet", "itemClass": "Amulet", "version": { "schemaVersion": "0.2.0", "game": "poe2", "gameVersion": "0.5.5.4" }, "ext": { "drop_level": 1, "implicit_text": ["(2-4) Life Regeneration per second"], "tags": ["amulet", "default"], … } }], "meta": { "game": "poe2", "gameVersion": "0.5.5.4", "total": 25 } }
A real response, shortened. meta.gameVersion names the patch that answered, so you can pin to it.
Every game patch becomes its own dataset. Ask for one with
?version=0.5.5.4 or take the latest, and each response names the patch it
came from.
Path of Exile 1 and 2 are built from their own game files into separate datasets. They share one schema, so the same code reads both.
Data is extracted from the game client ahead of time. Nothing is scraped from other sites, and a request never waits on a third party.
Fields ExileData guarantees sit at the top of each record. Everything else from the
game files stays in ext under its original name, so nothing is lost.
Each key has its own per-minute limit. Every response says how many requests are left, and a 429 says how long to wait.
The API serves base items for both games, with items, mods, gems and skills next. The downloads hold every data file of each patch, including mods, skills, uniques and the passive trees.