poe APIpoe.ninja ↗
Access Path of Exile economy and build data from poe.ninja. Get item prices, currency rates, divination card values, market trends, and class build stats.
What is the poe API?
The poe.ninja API exposes Path of Exile economic and build data across 5 endpoints, covering item prices, currency exchange rates, divination card values, sparkline market trends, and character class statistics. The get_item_prices endpoint returns chaos and divine orb valuations per item across categories like UniqueWeapon and UniqueArmour, filtered by league. Build data from get_build_classes_and_dps shows class popularity rankings and top skills from the active ladder.
curl -X GET 'https://api.parse.bot/scraper/d24b0bde-6a4c-44a4-82b3-3eb42f9e3d0c/get_item_prices?league=Mirage&category=UniqueWeapon' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace poe-ninja-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: poe.ninja SDK — bounded, re-runnable; every call capped."""
from parse_apis.poe_ninja_api import PoeNinja, LeagueName, ItemCategory, TrendCategory, NotFoundError
client = PoeNinja()
# Construct a league instance to scope all queries
mirage = client.league(LeagueName.MIRAGE)
# Get unique weapon prices — limit caps total items fetched
for item in mirage.items(category=ItemCategory.UNIQUE_WEAPON, limit=5):
print(item.name, item.price, item.divine_price, item.base_type)
# Get currency exchange rates
for currency in mirage.currencies(limit=5):
print(currency.name, currency.chaos_equivalent, currency.receive_price)
# Get market trends with sparkline history for a category
for trend in mirage.trends(category=TrendCategory.CURRENCY, limit=3):
print(trend.name, trend.chaos_value, trend.sparkline)
# Get build class popularity and top skills
build = mirage.builds(limit=1).first()
if build:
print(build.class_name, build.popularity_percentage)
for skill in build.top_skills:
print(skill.skill, skill.percentage)
# Typed error handling around a league query
try:
hardcore = client.league(LeagueName.HARDCORE)
for item in hardcore.items(category=ItemCategory.UNIQUE_FLASK, limit=2):
print(item.name, item.price)
except NotFoundError as exc:
print(f"not found: {exc}")
print("exercised: league.items / league.currencies / league.trends / league.builds")
Retrieve current prices of Path of Exile items from poe.ninja for a given league and item category. Returns items with chaos orb and divine orb valuations, base types, link counts, and item classes. Categories that no longer exist on poe.ninja (e.g. DivinationCard) return an upstream 404.
| Param | Type | Description |
|---|---|---|
| league | string | League name. Active economy leagues include Mirage, Hardcore Mirage, Standard, Hardcore. |
| category | string | Item category. Accepted values include UniqueWeapon, UniqueArmour, UniqueAccessory, UniqueFlask, UniqueJewel, SkillGem, Map, Incubator. |
{
"type": "object",
"fields": {
"items": "array of item objects with name, price (chaos), divine_price, base_type, links, item_class, currency",
"league": "string — league name used for the query",
"category": "string — item category used for the query"
},
"sample": {
"data": {
"items": [
{
"name": "Kingmaker",
"links": 6,
"price": 237080,
"currency": "Chaos Orb",
"base_type": "Despot Axe",
"item_class": 3,
"divine_price": 400
}
],
"league": "Mirage",
"category": "UniqueWeapon"
},
"status": "success"
}
}About the poe API
Economy Data by League
The get_item_prices endpoint accepts a league parameter (e.g., Mirage, Standard, Hardcore) and a category string such as UniqueWeapon, UniqueArmour, UniqueAccessory, UniqueFlask, or UniqueJewel. Each item in the response includes name, price in chaos orbs, divine_price, base_type, links, item_class, and currency. Note that categories removed from poe.ninja — such as DivinationCard via this endpoint — return an upstream error; use get_divination_cards instead for card data.
Currency and Divination Card Endpoints
get_currency_prices returns all tracked currency items for a given league with chaos_equivalent, receive_price, and pay_price fields. This covers orbs, catalysts, lifeforce, and other tradeable currencies. get_divination_cards returns card-specific fields: name, stack_size, chaos_value, divine_value, and art_filename — the last of which is useful for building card preview UIs.
Market Trends and Sparklines
get_market_trends accepts both league and category parameters and returns a trends array. Each entry includes chaos_value plus two 7-point numeric arrays: sparkline and low_confidence_sparkline. These represent recent price movement and are suitable for rendering mini price-history charts or detecting significant valuation shifts over the tracked window.
Build Statistics
get_build_classes_and_dps returns class-level ladder data for a specified league. Each object in the classes array includes class_name, popularity_percentage, and a top_skills array of skill-name/percentage pairs. A note field in the response indicates data availability, since build ladder data requires an active league ladder to be populated.
The poe API is a managed, monitored endpoint for poe.ninja — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when poe.ninja changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official poe.ninja API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track chaos and divine orb prices for unique weapons across active leagues to inform trade decisions
- Display a currency exchange rate table using
chaos_equivalent,receive_price, andpay_pricefromget_currency_prices - Render sparkline charts from the 7-point
sparklinearrays returned byget_market_trendsto visualize price volatility - Build a divination card reference tool showing
stack_size,chaos_value, and card art viaart_filename - Generate class tier lists from
popularity_percentageandtop_skillsdata returned byget_build_classes_and_dps - Alert on significant price shifts by comparing
sparklinevalues for high-value unique items across leagues - Power a league economy dashboard aggregating item prices, currency rates, and divination card values in one view
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does poe.ninja have an official public developer API?+
What does `get_market_trends` return that `get_item_prices` doesn't?+
get_item_prices returns current valuations for items. get_market_trends adds two 7-point arrays per entry — sparkline and low_confidence_sparkline — representing recent price movement percentages. These are useful for spotting price direction rather than just the current snapshot value.Are item-level details like mods, implicit/explicit affixes, or prophecy data available?+
chaos_value, divine_price), metadata (base_type, links, item_class), and build statistics, but does not expose per-item mod lists, implicit or explicit affixes, or prophecy data. You can fork this API on Parse and revise it to add an endpoint targeting those details.Does build data cover individual character profiles or passive tree snapshots?+
get_build_classes_and_dps aggregates class-level data — class_name, popularity_percentage, and top_skills — from the league ladder. Individual character profiles, passive trees, or gear loadouts are not returned. You can fork the API on Parse and revise it to add an endpoint covering individual character build data.How fresh is the league data, and what happens when a league ends?+
league parameter accepts active leagues like Mirage, Hardcore Mirage, Standard, and Hardcore. Querying a deprecated or ended league may return stale or empty results. Build data additionally requires an active ladder; the note field in get_build_classes_and_dps responses indicates when data is unavailable for a given league.