Chuanhsing (talk | contribs) |
mNo edit summary |
||
(31 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
{{development information}} |
{{development information}} |
||
− | + | '''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 |
+ | 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== |
||
− | [ |
+ | [[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 |
+ | | 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/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 |
||
|- |
|- |
||
− | | |
+ | | h |
+ | | slot height |
||
− | | stash position x |
||
| integer |
| integer |
||
+ | | yes |
||
|- |
|- |
||
− | | |
+ | | icon |
+ | | item picture art url |
||
− | | stash position y |
||
− | | |
+ | | 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 |
||
− | | |
+ | | integer |
+ | | yes |
||
|- |
|- |
||
+ | | y |
||
− | | prophecyText |
||
+ | | 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. |
||
+ | |||
+ | {| 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 |
+ | | 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
This page contains development information and is intended for developers and not regular end users. |
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[ | ]
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 |
|
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 |
|
References[ | ]
- ↑ Novynn (October 4, 2016). "Development Manifesto: 2.3.0 Balance". Path of Exile Dev subreddit. Retrieved October 4, 2016.
- ↑ -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.