Path of Exile Wiki

Please consider helping keep the wiki up to date. Check the to-do list of updates needed for version 3.14.0.

Game data exports will becoming later as the technical changes in addition to regular changes take some more time.

READ MORE

Path of Exile Wiki
mNo edit summary
 
(31 intermediate revisions by 10 users not shown)
Line 1: Line 1:
 
{{development information}}
 
{{development information}}
   
With the game [[Version 2.2.0|patch 2.2]] GGG published a basic JSON interface to obtain information relevant for general trade using [[Premium Stash Tab]]s.
+
'''Public stash tab API''' is a basic JSON interface to obtain information relevant for general trade using [[Premium Stash Tab]]s for [[List of Path of Exile related websites|PC clients]].
Basically the interface serves global update information (considerable as a update-"stream") on any public stash tabs recognized by the game servers.
+
Basically the interface serves global update information (considerable as an update-"stream") on any public stash tabs recognized by the game servers.
   
 
API doesn't contain any historical data and always returns the current state of stash tabs.<ref name="API1"/>
 
API doesn't contain any historical data and always returns the current state of stash tabs.<ref name="API1"/>
  +
  +
Using ajax from a browser got blocked by CORS, you need to setup a basic proxy to fetch it.
   
 
==URL==
 
==URL==
Line 15: Line 17:
 
For example:
 
For example:
 
http://www.pathofexile.com/api/public-stash-tabs?id=220-1652-744-1341-230
 
http://www.pathofexile.com/api/public-stash-tabs?id=220-1652-744-1341-230
  +
  +
== Rate Limit==
  +
  +
<nowiki>curl -XGET -s -D - http://www.pathofexile.com/api/public-stash-tabs | grep -i 'x-rate-limit'</nowiki>
   
 
==Docs==
 
==Docs==
[http://www.pathofexile.com/developer/docs/api-resource-public-stash-tabs Official Docs]
+
[[poe:developer/docs/api-resource-public-stash-tabs|Official Docs]]
   
 
==JSON==
 
==JSON==
Line 45: Line 51:
 
|-
 
|-
 
| accountName
 
| accountName
  +
| account name the stash linked to. Can be null.
|
 
| string
+
| string/null
 
|-
 
|-
 
| lastCharacterName
 
| lastCharacterName
  +
| last character name of the player. Can be null.
|
 
| string
+
| string/null
 
|-
 
|-
 
| id
 
| id
| stash id
+
| unique stash id
 
| string
 
| string
 
|-
 
|-
 
| stash
 
| stash
| stash name
+
| stash name. Can be null
| string
+
| string/null
 
|-
 
|-
 
| stashType
 
| stashType
| NormalStash/PremiumStash/QuadStash/EssenceStash/CurrencyStash (DivinationStash?)
+
| NormalStash/PremiumStash/QuadStash/EssenceStash/CurrencyStash/MapStash/FragmentStash/DivinationCardStash
 
| string
 
| string
 
|-
 
|-
 
| items
 
| items
| See below
+
| See below, items included in this stash
 
| array[assoc]
 
| array[assoc]
 
|-
 
|-
 
| public
 
| public
  +
| public or not
|
 
 
| bool
 
| bool
 
|-
 
|-
  +
|league
| note
 
  +
|Standard/Hardcore/
|
 
| string
+
|string/null
 
|}
 
|}
   
 
=== items ===
 
=== items ===
  +
  +
items array may empty if user make stash private or league end.
   
 
{| class="wikitable"
 
{| class="wikitable"
Line 83: Line 91:
 
! Value description
 
! Value description
 
! Type
 
! Type
  +
! Key always present
 
|-
 
|-
  +
|-
| verified
 
  +
| abyssJewel
 
|
 
|
 
| bool
 
| bool
  +
| no
 
|-
 
|-
  +
| additionalProperties
| w
 
  +
| See properties
| slot width
 
| integer
 
|-
 
| h
 
| slot height
 
| integer
 
|-
 
| ilvl
 
|
 
| integer
 
|-
 
| icon
 
|
 
| string
 
|-
 
| league
 
| Standaard/Hardcore/
 
| string
 
|-
 
| id
 
| item id
 
| string
 
|-
 
| sockets
 
| See below
 
 
| array[assoc]
 
| array[assoc]
  +
| no
 
|-
 
|-
  +
| artFilename
| name
 
  +
| Divination Card
|
 
 
| string
 
| string
  +
| no
 
|-
 
|-
  +
| category
| typeLine
 
  +
| maps, currency, jewels, gems, cards, flasks or category object (explained below)
| mixed with affix name for magic/rare
 
| string
+
| string/array[assoc]
  +
| yes
|-
 
| identified
 
|
 
| bool
 
 
|-
 
|-
 
| corrupted
 
| corrupted
 
|
 
|
 
| bool
 
| bool
  +
| no
 
|-
 
|-
  +
| cosmeticMods
| lockedToCharacter
 
 
|
 
|
  +
| string array
| bool
 
  +
| no
 
|-
 
|-
  +
| craftedMods
| note
 
  +
| master mods
|
 
  +
| string array
  +
| no
  +
|-
  +
| descrText
  +
| description text
 
| string
 
| string
  +
| no
 
|-
 
|-
  +
| duplicated
| properties
 
| See below
 
| array[assoc]
 
|-
 
| requirements
 
| See below
 
| array[assoc]
 
|-
 
| explicitMods
 
 
|
 
|
  +
| bool
| string array
 
  +
| no
 
|-
 
|-
  +
| elder
| implicitMods
 
  +
| item was dropped in elder map
|
 
  +
| bool
| string array
 
  +
| no
 
|-
 
|-
 
| enchantMods
 
| enchantMods
 
| labyrinth mods
 
| labyrinth mods
 
| string array
 
| string array
  +
| no
 
|-
 
|-
  +
| explicitMods
| craftedMods
 
  +
| Mods under the line
| master mods
 
 
| string array
 
| string array
  +
| no
 
|-
 
|-
 
| flavourText
 
| flavourText
 
|
 
|
 
| string array
 
| string array
  +
| no
 
|-
 
|-
 
| frameType
 
| frameType
 
| See below
 
| See below
 
| integer
 
| integer
  +
| yes
 
|-
 
|-
| x
+
| h
  +
| slot height
| stash position x
 
 
| integer
 
| integer
  +
| yes
 
|-
 
|-
| y
+
| icon
  +
| item picture art url
| stash position y
 
| integer
+
| string
  +
| yes
 
|-
 
|-
  +
| id
| inventoryId
 
  +
| item id, will NOT change if you use currency on it
|
 
 
| string
 
| string
  +
| yes
 
|-
 
|-
  +
| identified
| socketedItems
 
  +
|
| See items
 
  +
| bool
| array[assoc]
 
  +
| yes
 
|-
 
|-
  +
| ilvl
| additionalProperties
 
  +
| item level
| See properties
 
  +
| integer
| array[assoc]
 
  +
| yes
 
|-
 
|-
  +
| implicitMods
| secDescrText
 
  +
| Mods above the line
| second description text
 
| string
+
| string array
  +
| no
 
|-
 
|-
  +
| inventoryId
| descrText
 
  +
| slot. 'Stash25', 'Stash3', etc.
| description text
 
 
| string
 
| string
  +
| no
 
|-
 
|-
  +
| isRelic
| artFilename
 
  +
|
| Divination Card
 
  +
| bool
  +
| no
  +
|-
  +
| league
  +
| Standard/Hardcore/
 
| string
 
| string
  +
| yes
 
|-
 
|-
  +
| lockedToCharacter
| duplicated
 
 
|
 
|
 
| bool
 
| bool
  +
| no
 
|-
 
|-
 
| maxStackSize
 
| maxStackSize
 
|
 
|
 
| integer
 
| integer
  +
| no
  +
|-
  +
| name
  +
| unique name
  +
| string
  +
| yes
 
|-
 
|-
 
| nextLevelRequirements
 
| nextLevelRequirements
 
| See requirements
 
| See requirements
 
| array[assoc]
 
| array[assoc]
  +
| no
  +
|-
  +
| note
  +
| Mostly item price
  +
| string
  +
| no
  +
|-
  +
| properties
  +
| See below
  +
| array[assoc]
  +
| no
  +
|-
  +
| prophecyDiffText
  +
| prophecy difficulty text
  +
| string
  +
| no
  +
|-
  +
| prophecyText
  +
|
  +
| string
  +
| no
  +
|-
  +
| requirements
  +
| See below
  +
| array[assoc]
  +
| no
  +
|-
  +
| secDescrText
  +
| second description text
  +
| string
  +
| no
  +
|-
  +
| shaper
  +
| item was dropped in shaper map
  +
| bool
  +
| no
  +
|-
  +
| socketedItems
  +
| See items
  +
| array[assoc]
  +
| no
  +
|-
  +
| sockets
  +
| See below, array of sockets
  +
| array[assoc]
  +
| no
 
|-
 
|-
 
| stackSize
 
| stackSize
 
|
 
|
 
| integer
 
| integer
  +
| no
  +
|-
  +
| support
  +
|
  +
| bool
  +
| no
 
|-
 
|-
 
| talismanTier
 
| talismanTier
 
|
 
|
 
| integer
 
| integer
  +
| no
  +
|-
  +
| typeLine
  +
| item base type, mixed with affix name for magic/rare
  +
| string
  +
| yes
 
|-
 
|-
 
| utilityMods
 
| utilityMods
 
| flask utility mods
 
| flask utility mods
 
| string array
 
| string array
  +
| no
 
|-
 
|-
  +
| verified
| support
 
 
|
 
|
 
| bool
 
| bool
  +
| yes
 
|-
 
|-
  +
| w
| cosmeticMods
 
  +
| slot width
|
 
  +
| integer
| string array
 
  +
| yes
 
|-
 
|-
  +
| x
| prophecyDiffText
 
  +
| stash position x
| prophecy difficulty text
 
| string
+
| integer
  +
| yes
 
|-
 
|-
  +
| y
| prophecyText
 
  +
| stash position y
|
 
| string
+
| integer
  +
| yes
  +
|-
  +
| '^[\\s]RaceReward$'
  +
| Rare flag for race reward items. There can be few of them, so key is 'regular expression', instead of string
  +
| bool
  +
| no
  +
|}
  +
  +
=== category ===
  +
  +
Each array contains only one string.
  +
  +
{| class="wikitable"
  +
! Key
  +
! Value description
  +
! Type
  +
|-
  +
| accessories
  +
| amulet, belt or ring
  +
| array[string]
  +
|-
  +
| armour
  +
| helmet, gloves, chest, shield, quiver, boots
  +
| array[string]
  +
|-
  +
| jewels
  +
| abyss
  +
| array[string]
  +
|-
  +
| weapons
  +
| twosword, bow, dagger, staff, claw, onesword, wand, oneaxe, twoaxe, sceptre, onemace, twomace
  +
| array[string]
 
|}
 
|}
   
Line 257: Line 363:
 
|-
 
|-
 
| attr
 
| attr
  +
| S, I, D, G, false (type is boolean for abyss). Stands for str, int, dex, generic?. G - white socket.
| attribute, S=Strength, I=Intelligence, D=Dexterity
 
  +
| string/boolean
  +
|-
  +
| sColour
  +
| G, W, R, B, A. Stands for: green, white, red, blue, abyss (though not a colour but type).
 
| string
 
| string
 
|}
 
|}
Line 273: Line 383:
 
|-
 
|-
 
| values
 
| values
| array[0] is value, array[1] is color [white, blue]
+
| array[0] is value, array[1] is valueTypes
 
| array
 
| array
 
|-
 
|-
 
| displayMode
 
| displayMode
 
|
 
|
  +
* 0 means name should go before the values.<ref name="API2"/>
  +
* 1 means the values should go after the name.
  +
* 2 is a progress bar (for skill gem experience).
  +
* 3 means that the name should have occurances of {0}, {1}, etc replaced with the values.
 
| integer
 
| integer
 
|-
 
|-
Line 287: Line 401:
 
| additionalProperties's Experience
 
| additionalProperties's Experience
 
| integer
 
| integer
  +
|}
  +
  +
=== valueTypes ===
  +
  +
{| class="wikitable"
  +
! Key
  +
! Value description
  +
|-
  +
| 0
  +
| white, or physical
  +
|-
  +
| 1
  +
| blue for modified value
  +
|-
  +
| 4
  +
| fire
  +
|-
  +
| 5
  +
| cold
  +
|-
  +
| 6
  +
| lightning
  +
|-
  +
| 7
  +
| chaos
 
|}
 
|}
   
Line 328: Line 467:
 
==Further information and reading==
 
==Further information and reading==
 
https://www.reddit.com/r/pathofexiledev/comments/48i4s1/information_on_the_new_stash_tab_api/
 
https://www.reddit.com/r/pathofexiledev/comments/48i4s1/information_on_the_new_stash_tab_api/
  +
  +
==Latest ID==
  +
If you want the most recent data you'll have to start from the end of the river.
  +
* http://poe.ninja/stats
  +
  +
==Version history==
  +
{{Version history table header}}
  +
{{Version history table row|2.2.0}}
  +
* Introduced to the game.
  +
|}
   
 
==References==
 
==References==
 
{{reflist|refs=
 
{{reflist|refs=
  +
<ref name="API1">{{cite web
<ref name="API1">{{cite web|author=Novynn|date=October 4, 2016|title=Development Manifesto: 2.3.0 Balance|url=https://www.reddit.com/r/pathofexiledev/comments/55hxeb/read_several_threads_but_still_got_some_questions/|publisher=Path of Exile Dev subreddit|accessdate=October 4, 2016}}</ref>
 
  +
|author=Novynn
  +
|date=October 4, 2016
  +
|title=Development Manifesto: 2.3.0 Balance
  +
|url=https://www.reddit.com/r/pathofexiledev/comments/55hxeb/read_several_threads_but_still_got_some_questions/|publisher=Path of Exile Dev subreddit
  +
|accessdate=October 4, 2016
  +
}}</ref>
  +
<ref name="API2">{{cite web
  +
|author=-Dargs
  +
|date=July 29, 2017
  +
|title=The public-stash-tabs api is a good interim solution to trading problems, but it is lacking in a one thing... documentation
  +
|url=https://www.reddit.com/r/pathofexile/comments/6q941j/discussion_the_publicstashtabs_api_is_a_good/
  +
|publisher=Path of Exile subreddit
  +
|accessdate=March 19, 2020
  +
}}</ref>
  +
 
}}
 
}}

Latest revision as of 05:52, 11 November 2020

Public stash tab API is a basic JSON interface to obtain information relevant for general trade using Premium Stash Tabs for PC clients. Basically the interface serves global update information (considerable as an update-"stream") on any public stash tabs recognized by the game servers.

API doesn't contain any historical data and always returns the current state of stash tabs.[1]

Using ajax from a browser got blocked by CORS, you need to setup a basic proxy to fetch it.

URL[ | ]

http://www.pathofexile.com/api/public-stash-tabs

Pagination[ | ]

The JSON data is prefixed with the field "next_change_id" If you want the next page of update information append the next_change_id to the URL:

For example: http://www.pathofexile.com/api/public-stash-tabs?id=220-1652-744-1341-230

Rate Limit[ | ]

curl -XGET -s -D - http://www.pathofexile.com/api/public-stash-tabs | grep -i 'x-rate-limit'

Docs[ | ]

Official Docs

JSON[ | ]

The subsections follow the format of the json.

Key Value description Type
next_change_id string
stashes See below array[assoc]

stashes[ | ]

Key Value description Type
accountName account name the stash linked to. Can be null. string/null
lastCharacterName last character name of the player. Can be null. string/null
id unique stash id string
stash stash name. Can be null string/null
stashType NormalStash/PremiumStash/QuadStash/EssenceStash/CurrencyStash/MapStash/FragmentStash/DivinationCardStash string
items See below, items included in this stash array[assoc]
public public or not bool
league Standard/Hardcore/ string/null

items[ | ]

items array may empty if user make stash private or league end.

Key Value description Type Key always present
abyssJewel bool no
additionalProperties See properties array[assoc] no
artFilename Divination Card string no
category maps, currency, jewels, gems, cards, flasks or category object (explained below) string/array[assoc] yes
corrupted bool no
cosmeticMods string array no
craftedMods master mods string array no
descrText description text string no
duplicated bool no
elder item was dropped in elder map bool no
enchantMods labyrinth mods string array no
explicitMods Mods under the line string array no
flavourText string array no
frameType See below integer yes
h slot height integer yes
icon item picture art url string yes
id item id, will NOT change if you use currency on it string yes
identified bool yes
ilvl item level integer yes
implicitMods Mods above the line string array no
inventoryId slot. 'Stash25', 'Stash3', etc. string no
isRelic bool no
league Standard/Hardcore/ string yes
lockedToCharacter bool no
maxStackSize integer no
name unique name string yes
nextLevelRequirements See requirements array[assoc] no
note Mostly item price string no
properties See below array[assoc] no
prophecyDiffText prophecy difficulty text string no
prophecyText string no
requirements See below array[assoc] no
secDescrText second description text string no
shaper item was dropped in shaper map bool no
socketedItems See items array[assoc] no
sockets See below, array of sockets array[assoc] no
stackSize integer no
support bool no
talismanTier integer no
typeLine item base type, mixed with affix name for magic/rare string yes
utilityMods flask utility mods string array no
verified bool yes
w slot width integer yes
x stash position x integer yes
y stash position y integer yes
'^[\\s]RaceReward$' Rare flag for race reward items. There can be few of them, so key is 'regular expression', instead of string bool no

category[ | ]

Each array contains only one string.

Key Value description Type
accessories amulet, belt or ring array[string]
armour helmet, gloves, chest, shield, quiver, boots array[string]
jewels abyss array[string]
weapons twosword, bow, dagger, staff, claw, onesword, wand, oneaxe, twoaxe, sceptre, onemace, twomace array[string]

sockets[ | ]

Key Value description Type
group group id integer
attr S, I, D, G, false (type is boolean for abyss). Stands for str, int, dex, generic?. G - white socket. string/boolean
sColour G, W, R, B, A. Stands for: green, white, red, blue, abyss (though not a colour but type). string

properties/requirements[ | ]

Key Value description Type
name string
values array[0] is value, array[1] is valueTypes array
displayMode
  • 0 means name should go before the values.[2]
  • 1 means the values should go after the name.
  • 2 is a progress bar (for skill gem experience).
  • 3 means that the name should have occurances of {0}, {1}, etc replaced with the values.
integer
type properties type integer
progress additionalProperties's Experience integer

valueTypes[ | ]

Key Value description
0 white, or physical
1 blue for modified value
4 fire
5 cold
6 lightning
7 chaos

frameType[ | ]

Key Value description
0 normal
1 magic
2 rare
3 unique
4 gem
5 currency
6 divination card
7 quest item
8 prophecy
9 relic

Further information and reading[ | ]

https://www.reddit.com/r/pathofexiledev/comments/48i4s1/information_on_the_new_stash_tab_api/

Latest ID[ | ]

If you want the most recent data you'll have to start from the end of the river.

Version history[ | ]

Version Changes
2.2.0
  • Introduced to the game.

References[ | ]

  1. Novynn (October 4, 2016). "Development Manifesto: 2.3.0 Balance". Path of Exile Dev subreddit. Retrieved October 4, 2016.
  2. -Dargs (July 29, 2017). "The public-stash-tabs api is a good interim solution to trading problems, but it is lacking in a one thing... documentation". Path of Exile subreddit. Retrieved March 19, 2020.