Path of Exile Developer Docs

Server Endpoint

https://api.pathofexile.com

Leagues

Required scope: service:leagues

List Leagues

GET /league

Optional Query Parameters:

Returns:

Get League

GET /league/<league>

Optional Query Parameters:

Returns:

Get League Ladder

Required scope: service:leagues:ladder
GET /league/<league>/ladder

Optional Query Parameters:

Each ladder only contains the top 15000 entries. Attempting to fetch entries beyond this will return an empty result.

Returns:

PvP Matches

Required scope: service:pvp_matches

List PvP Matches

GET /pvp-match

Optional Query Parameters:

Returns:

Get PvP Match

GET /pvp-match/<match>

Optional Query Parameters:

Returns:

Get PvP Match Ladder

Required scope: service:pvp_matches:ladder
GET /pvp-match/<match>/ladder

Optional Query Parameters:

Each ladder only contains the top 15000 entries. Attempting to fetch entries beyond this will return an empty result.

Returns:

Account Profile

Required scope: account:profile

Get Profile

GET /profile

Returns:

Account Characters

Required scope: account:characters

List Characters

GET /character

Returns:

Get Character

GET /character/<name>

Returns:

Account Stashes

Required scope: account:stashes

List Stashes

GET /stash/<league>

Returns:

Get Stash

GET /stash/<league>/<stash_id>[/<substash_id>]

Returns:

League Accounts

Required scope: account:league_accounts

Get League Account

GET /league-account/<league>

Returns:

Account Item Filters

Required scope: account:item_filter

Get Item Filters

GET /item-filter

Returns:

Get Item Filter

GET /item-filter/<id>

Returns:

Create Item Filter

POST /item-filter

Required Headers:

Optional Query Parameters:

Request Body Parameters (JSON):

Returns:

Update Item Filter

POST /item-filter/<id>

Required Headers:

Optional Query Parameters:

Request Body Parameters (JSON):

Returns:

Public Stashes

Required scope: service:psapi

Get Public Stashes

GET /public-stash-tabs

Optional Query Parameters:

Returns:

Type Definitions

The majority of our APIs return JSON content to be consumed by applications. This section details the kind of structures to expect.

Types that begin with a question mark may be null or otherwise not be present.

League

Key Value Type Extra Information
id string the league's name
realm ?string pc, xbox, or sony
description ?string
rules ?array of LeagueRule
registerAt ?string date time (ISO8601)
event ?bool always true if present
url ?string a url link to a Path of Exile forum thread
startAt ?string date time (ISO8601)
endAt ?string date time (ISO8601)
timedEvent ?bool always true if present
scoreEvent ?bool always true if present
delveEvent ?bool always true if present

LeagueRule

Key Value Type Extra Information
id string examples: Hardcore, NoParties (SSF)
name string
description ?string

LadderEntry

Key Value Type Extra Information
rank uint
dead ?bool
retired ?bool
public ?bool
character object
↳ id string a unique 64 digit hexadecimal string
↳ name string
↳ level uint
↳ class string
↳ time ?uint time taken to complete the league objective in seconds
↳ score ?uint count of league objective completions
↳ progress ?object the values of this depend on the league objective
↳ experience ?uint
↳ depth ?object deepest Delve depth completed
  ↳ default ?uint
  ↳ solo ?uint
account ?Account

Account

Key Value Type Extra Information
name string
realm ?string pc, xbox, or sony
guild ?Guild
challenges ?object
↳ total uint
twitch ?object
↳ name string
↳ stream ?object
  ↳ name string
  ↳ image string
  ↳ status string

Guild

Key Value Type Extra Information
id uint
name string
tag string
points ?uint
statusMessage ?string
createdAt string date time (ISO8601)

PvPMatch

Key Value Type Extra Information
id string the match's name
realm ?string pc, xbox, or sony
startAt ?string date time (ISO8601)
endAt ?string date time (ISO8601)
url ?string a url link to a Path of Exile forum thread
description string
glickoRatings bool
pvp bool always true
style string Blitz, Swiss, or Arena
registerAt ?string date time (ISO8601)
complete ?bool always true if present
upcoming ?bool always true if present
inProgress ?bool always true if present

PvPLadderTeamEntry

Key Value Type Extra Information
rank uint
rating ?uint only present if the PvP Match uses Glicko ratings
points ?uint
games_played ?uint
cumulative_opponent_points ?uint
last_game_time ?string date time (ISO8601)
members array of PvPLadderTeamMember

PvPLadderTeamMember

Key Value Type Extra Information
account Account
character object
↳ id string a unique 64 digit hexadecimal string
↳ name string
↳ level uint
↳ class string
↳ league ?string
↳ score ?uint count of league objective completions
public ?bool always true if present

PublicStashChange

Key Value Type Extra Information
id string a unique 64 digit hexadecimal string
public bool if false then optional properties will be null
accountName ?string
lastCharacterName ?string
stash ?string the name of the stash
stashType string
league ?string the league's name
items array of Item

Item

Key Value Type Extra Information
verified bool
w uint
h uint
icon string
support ?bool always true if present
stackSize ?int
maxStackSize ?int
stackSizeText ?string
league ?string
id ?string a unique 64 digit hexadecimal string
influences ?object
elder ?bool always true if present
shaper ?bool always true if present
searing ?bool always true if present
tangled ?bool always true if present
abyssJewel ?bool always true if present
delve ?bool always true if present
fractured ?bool always true if present
synthesised ?bool always true if present
sockets ?array of ItemSocket
socketedItems ?array of Item
name string
typeLine string
baseType string
identified bool
itemLevel ?int
ilvl int deprecated
note ?string
forum_note ?string
lockedToCharacter ?bool always true if present
lockedToAccount ?bool always true if present
duplicated ?bool always true if present
split ?bool always true if present
corrupted ?bool always true if present
unmodifiable ?bool always true if present
cisRaceReward ?bool always true if present
seaRaceReward ?bool always true if present
thRaceReward ?bool always true if present
properties ?array of ItemProperty
notableProperties ?array of ItemProperty
requirements ?array of ItemProperty
additionalProperties ?array of ItemProperty
nextLevelRequirements ?array of ItemProperty
talismanTier ?int
secDescrText ?string
utilityMods ?array of string
logbookMods ?array of object
↳ name string area name
↳ faction object
  ↳ id string Faction1, Faction2, Faction3, or Faction4
  ↳ name string
↳ mods array of string
enchantMods ?array of string
scourgeMods ?array of string
implicitMods ?array of string
ultimatumMods ?array of object
↳ type string text used to display ultimatum icons
↳ tier uint
explicitMods ?array of string
craftedMods ?array of string
fracturedMods ?array of string
cosmeticMods ?array of string
veiledMods ?array of string random video identifier
veiled ?bool always true if present
descrText ?string
flavourText ?array of string
flavourTextParsed ?array of string
prophecyText ?string
isRelic ?bool always true if present
replica ?bool always true if present
incubatedItem ?object
↳ name string
↳ level uint monster level required to progress
↳ progress uint
↳ total uint
scourged ?object
↳ tier uint 1-3 for items, 1-10 for maps
↳ level ?uint monster level required to progress
↳ progress ?uint
↳ total ?uint
frameType ?uint
artFilename ?string
hybrid ?object
↳ isVaalGem ?bool
↳ baseTypeName string
↳ properties ?array of ItemProperty
↳ explicitMods ?array of string
↳ secDescrText ?string
extended ?object only present in the Public Stash API
↳ category ?string
↳ subcategories ?array of string
↳ prefixes ?uint
↳ suffixes ?uint
x ?uint
y ?uint
inventoryId ?string
socket ?uint
colour ?string S, D, I, or G

ItemSocket

Key Value Type Extra Information
group uint
attr ?string S, D, I, G, A, or DV
sColour ?string R, G, B, W, A, or DV

ItemProperty

Key Value Type Extra Information
name string
values array
↳ 0 string
↳ 1 uint value type
displayMode uint
progress ?double rounded to 2 decimal places
type ?uint
suffix ?string

Character

Key Value Type Extra Information
id string a unique 64 digit hexadecimal string
name string
class string
league ?string
level uint
experience uint
expired ?bool always true if present
deleted ?bool always true if present
current ?bool always true if present
equipment ?array of Item
inventory ?array of Item
jewels ?array of Item
passives ?object
↳ hashes array of uint
↳ hashes_ex array of uint
↳ mastery_effects dictionary of int the key is the string value of the mastery node skill hash and the value is the selected effect hash
↳ bandit_choice ?string one of Kraityn, Alira, Oak, or Eramir
↳ pantheon_major ?string one of TheBrineKing, Arakaali, Solaris, or Lunaris
↳ pantheon_minor ?string one of Abberath, Gruthkul, Yugul, Shakari, Tukohama, Ralakesh, Garukhan, or Ryslatha
↳ jewel_data dictionary of ItemJewelData the key is the string value of the x property of an item from the jewels array in this request

ItemJewelData

Key Value Type Extra Information
type string
radius ?uint
radiusMin ?uint
radiusVisual ?string
subgraph ?object only present on cluster jewels
↳ groups dictionary of PassiveGroup the key is the string value of the group id
↳ nodes dictionary of PassiveNode the key is the string value of the node skill hash

StashTab

Key Value Type Extra Information
id string a 10 digit hexadecimal string
parent ?string a 10 digit hexadecimal string
name string
type string
index ?uint
metadata object
↳ public ?bool always true if present
↳ folder ?bool always true if present
↳ colour ?string 6 digit hex colour
children ?array of StashTab
items ?array of Item

LeagueAccount

Key Value Type
atlas_passives ?object
↳ hashes array of uint

ItemFilter

Key Value Type Extra Information
id string
filter_name string
realm string
description string
version string
public ?bool always true if present
filter ?string not present when listing all filters
validation ?object not present when listing all filters
↳ valid bool always true
↳ version ?string game version
↳ validated ?string date time (ISO8601)

PassiveGroup

Key Value Type Extra Information
x float
y float
orbits array of uint
isProxy ?bool always true if present
proxy ?string skill hash of the placeholder node
nodes array of string the node skill hashes associated with this group

PassiveNode

Key Value Type Extra Information
skill ?uint node hash
name ?string
icon ?string
isKeystone ?bool always true if present
isNotable ?bool always true if present
isMastery ?bool always true if present
inactiveIcon ?string inactive mastery image
activeIcon ?string active mastery image
activeEffectImage ?string mastery effect checkbox image
masteryEffects ?array of object
↳ effect uint effect hash
↳ stats array of string stat descriptions
↳ reminderText ?array of string
isBlighted ?bool always true if present
isProxy ?bool always true if present
isJewelSocket ?bool always true if present
expansionJewel ?object cluster jewel information
↳ size ?uint
↳ index ?uint
↳ proxy ?uint the proxy node skill hash
↳ parent ?uint the parent node skill hash
recipe ?array of string components required for Blight crafting this node.
each string is one of ClearOil, SepiaOil, AmberOil, VerdantOil,
TealOil, AzureOil, IndigoOil, VioletOil, CrimsonOil,
BlackOil, OpalescentOil, SilverOil, or GoldenOil
grantedStrength ?uint sum of stats on this node that grant strength
grantedDexterity ?uint sum of stats on this node that grant dexterity
grantedIntelligence ?uint sum of stats on this node that grant intelligence
ascendancyName ?string
isAscendancyStart ?bool always true if present
isMultipleChoice ?bool always true if present
isMultipleChoiceOption ?bool always true if present
grantedPassivePoints ?uint
stats ?array of string stat descriptions
reminderText ?array of string
flavourText ?array of string
classStartIndex ?uint
group ?uint index into the groups table
orbit ?uint the orbit this node occupies within it's group
orbitIndex ?uint the index of this node in the group's orbit
out array of string node skill hashes of nodes this one connects to
in array of string node skill hashes of nodes connected to this one

Extra Definitions

Some data, such as Passive Skill Tree URLs, are stored in a serialised form. This section will attempt to define such structures.

Passive Skill Tree URLs

Passive Tree URLs can be generated and loaded by the official Passive Skill Tree viewer.
The data in the URL is a base64url-encoded (as described in section 5 of RFC4648) binary stream in the formats described below.
Example: https://www.pathofexile.com/passive-skill-tree/3.15.0/AAAABQMADAQHES0fAiycLR9Ms18qg_eOvpLB37Dr5AA=

Atlas Skill Tree

The Atlas Skill Tree introduced in Path of Exile: Siege of the Atlas (3.17.0) follows the same format as the regular passive tree and can also be loaded by the official Atlas Skill Tree viewer.
The class and ascendancy bytes should be set to 0, and the extended and mastery hash lists should be empty.
Example: https://www.pathofexile.com/atlas-skill-tree/AAAABgAAAfdPAAA=

Version 6

This version was introduced with Path of Exile: Scourge (3.16.0) in order to handle the new mastery nodes.
The mastery effect pairs uint32 is actually two uint16 numbers: the first is the node skill hash and the second is the chosen effect hash for this node.

// (in JavaScript)
const masteryEffectPair = 0x910ce685; // (unsigned 32-bit) 2433541765 or (signed 32-bit) -1861425531
const nodeHash = masteryEffectPair & 0xffff; // 59013 (unsigned 16-bit) or 0xe685
const effectHash = masteryEffectPair >>> 16; // 37132 (unsigned 16-bit) or 0x910c

uint32 version (always 6)
uint8 class
uint8 ascendancy
uint8 count of node skill hashes (n)
uint16[n] hashes[n]
uint8 count of extended (cluster jewel) node skill hashes (m)
uint16[m] extended hashes[m]
uint8 count of mastery effect pairs (o)
uint32[o] mastery effect pairs[o]

Version 5

This version was introduced during Path of Exile: Ritual (3.13.0) in order to support cluster jewels. We currently don't support rendering cluster jewels ourselves but, with this version, provide the character data required to do so.

uint32 version (always 5)
uint8 class
uint8 ascendancy
uint8 count of hashes (n)
uint16[n] hashes[n]
uint8 count of extended hashes (m)
uint16[m] extended hashes[m]

Version 4

uint32 version (always 4)
uint8 class
uint8 ascendancy
uint8 fullscreen (0 or 1)
uint16[] hashes[]