marketList
Search the marketplace, filtering by item, rarity, slot, type or class.
Every listing comes back with its rolled stats decoded, its gear score, what a merchant would pay for the same item, and a per-unit price so a stack compares against a single. `listingId` is what the buy, cancel, relist and transfer actions take. The game's rarity filter is loose — adjacent tiers and gem qualities leak through — so check `rarity` on each row rather than trusting the filter alone.
In Marketplace.
Request
POST /api/v1/sessions/{accountKey}/actions/marketList
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
itemId (item_id) | string | no | Restrict to one item, by tag (`AdventurerBoots`) or full id. |
rarity | string | no | Restrict to one rarity: `Poor`, `Common`, `Uncommon`, `Rare`, `Epic`, `Legendary`, `Unique`, `Artifact`. |
slot | string | no | Restrict to one equipment slot, e.g. `Head`, `Chest`, `Feet`. |
type | string | no | Restrict to one item type, e.g. `Weapon`, `Armor`, `Accessory`. |
characterClass (class) | string | no | Restrict to one class. |
page (currentPage) | integer | no | Which page; 1-indexed. Defaults to 1. |
sortType | integer | no | Field to sort on. |
sortMethod | integer | no | Ascending or descending. |
filterInfos | object[] | no | A raw filter array, when you build your own. Overrides every filter above. |
Example request
{ "itemId": "AdventurerBoots", "rarity": "Legendary", "page": 1 }
Response
`{ listings, currentPage, maxPage, count }`.
| Field | Type | Meaning |
|---|---|---|
listings[].listingId | string | What `marketBuy`, `marketCancel` and the rest take. Exceeds 2^53, so it travels as a string. |
listings[].price | integer | The whole asking price, for the whole stack. |
listings[].unitPrice | integer | Price divided by `count` — how a 6-stack compares against a single. |
listings[].vendorPrice | integer|null | What a merchant pays per unit. Null when the item has no buy-back slot. |
listings[].primary | object[] | The rolled stats: `{id, name, label, value}` each. |
listings[].expiresInSec | integer | Seconds until the listing lapses. |
listings[].seller | string | The seller's display name; empty when they are in streaming mode. |
maxPage | integer | How many pages this search has. |
Example response
{
"listings": [
{
"listingId": "9007199254740993",
"uid": "630211546215118861",
"itemId": "DesignDataItem:Id_Item_AdventurerBoots_7001",
"shortName": "AdventurerBoots",
"label": "Adventurer Boots",
"rarity": "Legendary",
"type": "Armor",
"slot": "Feet",
"gearScore": 142,
"tradable": true,
"price": 24000,
"unitPrice": 24000,
"vendorPrice": 96,
"vendorMerchant": "Weaponsmith",
"count": 1,
"contents": 0,
"gold": false,
"goldCapacity": 0,
"remainMs": 512400000,
"expiresInSec": 512400,
"seller": "Eve",
"width": 2,
"height": 2,
"iconKey": "AdventurerBoots",
"iconUrl": "/icons/AdventurerBoots.png",
"primary": [
{ "id": "DesignDataItemPropertyType:Id_ItemPropertyType_Effect_PhysicalDamageReduction",
"name": "PhysicalDamageReduction", "label": "Physical Damage Reduction", "value": 6.1 }
],
"secondary": [
{ "id": "DesignDataItemPropertyType:Id_ItemPropertyType_Effect_MoveSpeed",
"name": "MoveSpeed", "label": "Move Speed", "value": 1.5 },
{ "id": "DesignDataItemPropertyType:Id_ItemPropertyType_Effect_MaxHealthBonus",
"name": "MaxHealthBonus", "label": "Max Health Bonus", "value": 8 }
]
}
],
"currentPage": 1,
"maxPage": 3,
"count": 1
}
Errors
| Code | When |
|---|---|
action_failed | No character is in the lobby, or the search timed out. |
plan_limit | Not on the free plan. |
See also
DarkerAPI is an independent project. It is not affiliated with, endorsed by or associated with IRONMACE Co., Ltd. or Valve Corporation. “Dark and Darker” and related marks belong to their respective owners.