Parameters & Types

On every endpoint page, parameters are color coded to show whether they are required, optional, or global options (the global ones — pagination, condense, locale — work the same way everywhere). The value formats those parameters accept are described below.

Ranges

Numeric filters such as price and gear_score accept a range value — one parameter that covers what a min/max pair used to. Pass any of:

  • a bare number for an exact match — 300
  • an inclusive range — 200:500
  • an open-ended bound — 200: (at least 200) or :500 (at most 500)
  • an inequality — >=200, >200, <=999, or <999

Bounds are inclusive unless written with a strict > / <. A non-numeric value (or an inverted range like 500:200) returns a 400.

Booleans

Booleans are true or false. As a query parameter the API also accepts common numeric and string forms, converted as follows:

InputConverted
truetrue
1true
yestrue
ontrue
falsefalse
0false
nofalse
offfalse

Timestamps

Some endpoints support timestamp filters such as from and to. Every form below names the same instant:

  • ISO 8601 with Z2025-02-17T03:32:08Z
  • ISO 8601 with an offset — 2025-02-17T03:32:08%2B00:00 or 2025-02-17T03:32:08-05:00
  • ISO 8601 with no zone, read as UTC — 2025-02-17T03:32:08
  • a YYYY-MM-DD date, at midnight UTC
  • seconds since the epoch (Jan 1, 1970) — 1739763128, or 0 for the epoch itself

A value that is not a timestamp returns a 400.

Escape a + offset as %2B. In a query string a literal + means a space, so ?from=2025-02-17T03:32:08+00:00 arrives as 2025-02-17T03:32:08 00:00 — the API repairs that decode, so the unescaped form works, but %2B is what a correct URL encoder emits and the rule applies to every other parameter you send. In a path segment or a JSON body, + needs no escaping.

Intervals

Intervals define an aggregation period. They may either be an integer representing the number of seconds in each period or one of several predefined values:

IntervalValue
1m60
3m180
5m300
10m600
15m900
30m1800
45m2700
1h3600
2h7200
4h14400
1d86400
1w604800
2w1209600
4w2592000

Attributes

Some endpoints support filtering by primary or secondary item attributes. For these endpoints, you can specify &primary[attribute]=... or &secondary[attribute]=.... All attributes support range filters. Here is a list of supported attributes:

NameField
Loading…

Classes

Fields like required_class take one or more class names. To match several classes, separate them with |. Items with no class restriction always match.

ClassFilter value
Fighterfighter
Barbarianbarbarian
Roguerogue
Rangerranger
Wizardwizard
Clericcleric
Bardbard
Warlockwarlock
Druiddruid
Sorcerersorcerer

For example, to find all chest armor usable by a wizard, cleric or sorcerer: /v2/items?slot_type=Chest&required_class=wizard|cleric|sorcerer.