What is supported
The economy overview endpoints documented on this page are the supported public surface of the poe.ninja API. They cover economy pricing for Path of Exile 1 and Path of Exile 2.
None of it is secret, either. With thanks to community moderator cdr, who has patiently told half the community to just press F12 and read these requests off the Network tab.
What is not allowed
The builds / profiles API, and every other non-economy endpoint (character, Path of Building, authentication), are internal. They are undocumented, unsupported, and not available for third-party use, and they may change or break at any time.
If you've reached out about building on the builds / profiles API: it's nothing personal, and it's not that your idea isn't a good one. We get a lot of these requests, and that number has risen sharply as AI-assisted development has taken off. Apps that behave badly against the builds / profiles API regularly cause serious load problems. The builds / profiles API is closed for two concrete reasons:
- It is significantly more performance-intensive to serve than economy data, and when it gets overloaded it causes real, time-consuming problems for keeping the site running.
- Many players deliberately hide their characters or make their profiles private, and they change these settings frequently, for example to hide a specific character. Serving that data to third parties directly would bypass that privacy choice.
Clients that misbehave against these endpoints, or make excessive use of the economy endpoints, will be blocked.
No stability guarantee
This API exists to run the poe.ninja website, not as a product. Public access to the economy endpoints is allowed but incidental. "Supported public surface" means you are allowed to use it, not that it is stable. There is no versioning and no SLA, and breaking changes can happen to the economy endpoints without notice. In practice, because we know these endpoints are used externally, we usually keep them stable and provide redirects when routes move, but treat that as best effort rather than a promise.
If you are building an app
Desktop apps and other clients should proxy these requests through their own backend rather than calling the endpoints directly from end-user machines. That lets you cache responses, set a proper User-Agent, and control request volume instead of pushing per-user traffic straight at us.
Usage guidelines
- Responses are HTTP-cached (roughly 5 minutes, ETag-based). Use conditional requests and respect the cache headers; do not bypass caching.
- The underlying data refreshes infrequently (PoE 1 overviews roughly every 15 minutes, PoE 2 roughly hourly), so polling faster than a few minutes wastes bandwidth for no fresher data.
- Send a descriptive User-Agent that identifies your app and a contact.
- Be reasonable with concurrency and volume; this is a community resource.
- Don't use the API to directly replicate the site. Use it to build something new and exciting.
Lists the active economy leagues as a plain array. The first entry is the current temporary challenge league; use its id as the league parameter on the other endpoints.
GET /poe1/api/economy/leagues GET /poe2/api/economy/leagues
Response [] EconomyLeagueDto
| Field | Description |
|---|---|
id | League identifier. Pass this as the league query parameter on the other endpoints. |
name | Human-readable league name. |
Currency-exchange pricing for a category, shared by both games with the same response shape.
GET /poe1/api/economy/exchange/current/overview ?league={league}&type={type} GET /poe2/api/economy/exchange/current/overview ?league={league}&type={type} Query parameters
| Parameter | Description |
|---|---|
league | A league id from the economy leagues endpoint (for example, the current challenge league). |
type | The category to fetch. Accepted values per game are listed below. |
Accepted type values
PoE 1
| Value | Category |
|---|---|
Currency | Currency |
Fragment | Fragments |
Runegraft | Runegrafts |
AllflameEmber | Allflame Embers |
Tattoo | Tattoos |
Omen | Omens |
DjinnCoin | Djinn Coins |
DivinationCard | Divination Cards |
Artifact | Artifacts |
Oil | Oils |
DeliriumOrb | Delirium Orbs |
Scarab | Scarabs |
Astrolabe | Astrolabes |
Fossil | Fossils |
Resonator | Resonators |
Essence | Essences |
PoE 2
| Value | Category |
|---|---|
Currency | Currency |
Fragments | Fragments |
Abyss | Abyssal Bones |
UncutGems | Uncut Gems |
LineageSupportGems | Lineage Gems |
Essences | Essences |
SoulCores | Soul Cores |
Idols | Idols |
Runes | Runes |
Ritual | Omens |
Expedition | Expedition |
Delirium | Liquid Emotions |
Breach | Catalysts |
Verisium | Verisium |
Response lines[] CurrencyExchangeOverviewLineDto
| Field | Description |
|---|---|
id | Stable identifier for the traded currency within this overview. |
primaryValue | Price expressed in the primary reference currency (see core.primary). |
volumePrimaryValue | Traded volume expressed in the primary reference currency. |
maxVolumeCurrency | The paired currency with the highest observed trade volume. |
maxVolumeRate | Exchange rate against the highest-volume paired currency. |
sparkline | Recent price-trend samples for the highest-volume pair. |
Response core CurrencyExchangeEconomyCoreDto
| Field | Description |
|---|---|
primary | Primary reference currency that line values are quoted in. |
secondary | Secondary reference currency used for cross-rates. |
rates | Map of currency id to its rate against the primary reference currency. |
items | Metadata (names, icons) for the currencies referenced by id. |
Stash-based item pricing for a category. The response shape differs per game.
GET /poe1/api/economy/stash/current/item/overview ?league={league}&type={type} GET /poe2/api/economy/stash/current/item/overview ?league={league}&type={type} Query parameters
| Parameter | Description |
|---|---|
league | A league id from the economy leagues endpoint (for example, the current challenge league). |
type | The category to fetch. Accepted values per game are listed below. |
Accepted type values
PoE 1
| Value | Category |
|---|---|
Wombgift | Wombgifts |
Incubator | Incubators |
UniqueWeapon | Unique Weapons |
UniqueArmour | Unique Armours |
UniqueAccessory | Unique Accessories |
UniqueFlask | Unique Flasks |
UniqueJewel | Unique Jewels |
ForbiddenJewel | Forbidden Jewels |
ShrineBelt | Shrine Belts |
UniqueTincture | Unique Tinctures |
UniqueRelic | Unique Relics |
SkillGem | Skill Gems |
ImbuedGem | Imbued Gems |
ClusterJewel | Cluster Jewels |
Map | Maps |
BlightedMap | Blighted Maps |
BlightRavagedMap | Blight-ravaged Maps |
UniqueMap | Unique Maps |
ValdoMap | Valdo Maps |
Invitation | Invitations |
Memory | Memories |
IncursionTemple | Temples |
BaseType | Base Types |
Beast | Beasts |
Vial | Vials |
PoE 2
| Value | Category |
|---|---|
UniqueWeapons | Unique Weapons |
UniqueArmours | Unique Armours |
UniqueAccessories | Unique Accessories |
UniqueFlasks | Unique Flasks |
UniqueCharms | Unique Charms |
UniqueJewels | Unique Jewels |
UniqueSanctumRelics | Unique Relics |
UniqueTablets | Unique Tablets |
PrecursorTablets | Precursor Tablets |
Response PoE 1 lines[] ItemOverviewLineModel
| Field | Description |
|---|---|
id | Numeric identifier for the item line. |
name | Item name. |
baseType | Base type of the item. |
detailsId | Slug used to look up the item on its detail page. |
chaosValue | Estimated value in Chaos Orbs. |
divineValue | Estimated value in Divine Orbs. |
variant | Variant discriminator for uniques with multiple rolls. |
corrupted | Whether the priced item is corrupted. |
links | Linked-socket count the price applies to, where relevant. |
count | Number of observations backing the price. |
listingCount | Number of current listings backing the price. |
icon | Item icon URL. |
sparkLine | Recent price-trend samples. |
Response PoE 2 lines[] Poe2ItemOverviewLineDto
| Field | Description |
|---|---|
id | Numeric identifier for the item line. |
itemId | Stable item identifier. |
detailsId | Slug used to look up the item on its detail page. |
name | Item name. |
baseType | Base type of the item. |
variant | Variant discriminator for uniques with multiple rolls. |
category | Category the item belongs to. |
primaryValue | Estimated value in the league's primary reference currency. |
listingCount | Number of current listings backing the price. |
corrupted | Whether the priced item is corrupted. |
levelRequired | Character level required to equip the item. |
icon | Item icon URL. |
sparkLine | Recent price-trend samples. |
Stash-based currency pricing for a category. This endpoint exists for Path of Exile 1 only; PoE 2 currency is served through the exchange overview.
GET /poe1/api/economy/stash/current/currency/overview ?league={league}&type={type} Query parameters
| Parameter | Description |
|---|---|
league | A league id from the economy leagues endpoint (for example, the current challenge league). |
type | The category to fetch. Accepted values per game are listed below. |
Accepted type values
PoE 1
| Value | Category |
|---|---|
Currency | Currency |
Fragment | Fragments |
Response lines[] CurrencyOverviewLineModel
| Field | Description |
|---|---|
currencyTypeName | Currency name. |
detailsId | Slug used to look up the currency on its detail page. |
chaosEquivalent | Estimated value in Chaos Orbs. |
pay | Pay-side data point (what you give to obtain Chaos). |
receive | Receive-side data point (what you get for Chaos). |
paySparkLine | Recent pay-side price-trend samples. |
receiveSparkLine | Recent receive-side price-trend samples. |
Response currencyDetails[] CurrencyDetailsModel
| Field | Description |
|---|---|
id | Numeric identifier, joined to a line's detailsId lookups. |
name | Currency name. |
icon | Currency icon URL. |
tradeId | Identifier used by the official trade site, where available. |