Market

Query live Dark and Darker marketplace listings captured from the in-game trade market. Each listing carries the patch it was observed under. Browse the live listing feed with the endpoint below.

GET/v2/market

item_idoptional
Exact item variant id
Example
id.item.potion_health_3001
archetypeoptional
Item archetype slug
Example
potionhealth
rarityoptional
Item rarity
slot_typeoptional
Equipment slot, matching /items?slot_type=. Comma-separated values union (chest,head); unknown slots are a 400.
Example
chest,head
selleroptional
Exact seller account name
Example
Nuak
min_priceoptional
Minimum total listing price
max_priceoptional
Maximum total listing price
min_price_per_unitoptional
Minimum per-unit price
max_price_per_unitoptional
Maximum per-unit price
min_quantityoptional
Minimum stack size
max_quantityoptional
Maximum stack size
loot_stateoptional
Loot state
Example
Looted
primaryoptional
Primary attribute filters. Multiple filters are combined with AND.
Example
primary[weapon_damage]=>=40
secondaryoptional
Secondary attribute filters
Example
secondary[agility]=2:5
fromoptional
Notes
Checks against the created_at timestamp.
tooptional
Notes
Checks against the created_at timestamp.
listing_stateoptional
Canonical state. Missing is inferred from a later complete scan and is the de-facto sale signal; sold is reserved for game-confirmed sales, which the game currently never reports.
Accepted
active, missing, sold, expired, cancelled
has_soldoptional
Notes
Close flag: the listing disappeared before expiry. Whether the game vouched for the close is is_confirmed on the row.
has_expiredoptional
has_cancelledoptional
sortoptional
e.g. sort=price:asc,created_at:desc. Bare asc/desc, unknown or repeated fields are a 400.
Accepted
created_at, price, price_per_unit, id — comma-separated field:asc|desc terms; later terms break ties
Default
created_at:desc
localeoptionalglobal
Default
en
pageglobal
limitglobal
Accepted
1 - 50
Default
25

Exact item_id and archetype queries include family scan freshness. Treat an empty result as authoritative only when that status is fresh.

GET/v2/market/{id}

idpath
Current listing id returned by the list endpoint
Example
638093334476250124

Single listing by surrogate id — the value returned in each row of the list endpoint above. Listings are ephemeral, so any given id ages out as the market turns over; grab a current one from /v2/market if this example has expired.

Price history

Price history is a dense series of inferred-sale buckets. Every interval is present, including intervals with no observed disappearances. Empty buckets carry null price fields and volume: 0. The timestamp is the beginning of the bucket.

GET/v2/market/analytics/{item_id}/prices/history

interval
Bucket width. Accepts any positive number followed by s, m, h, d, or w, or raw seconds.
Default
15m
limit
Maximum number of newest buckets returned. Empty buckets count toward the limit.
Accepted
1 - 1000
Default
250
fromoptional
Notes
Inclusive. Defaults to seven days before to.
tooptional
Notes
Exclusive. Defaults to now.

A short interval controls aggregation width, not collection frequency. Marketplace disappearances are detected by later family scans, so observed sales may still cluster in a small number of otherwise empty buckets.