π Get Daily Aggregated Price History for multiple Items
π¬ What this endpoint does:
- Aggregates historical price data for any items over time.
- Returns daily aggregated data showing total worth and item count.
- Uses the lowest positive daily close from exactly the requested markets. steam can be combined with third-party market idents.
- Each request costs 1 credit regardless of the number of items.
π How to use:
- Send items as legacy market-hash-name strings or objects with market_hash_name, optional phase, optional paint_index, and optional count.
- Specify selected market idents as a comma-separated markets value in the query or request body. The query value wins when both are provided. Omitting it defaults to Steam.
- The endpoint returns daily aggregated worth after resolving the selected markets for every item and day.
- Duplicate items in the array are counted separately (e.g., 2x "AK-47 | Redline" = 2x price).
- For phase-aware objects, third-party prices must match the exact phase; Steam remains a valid generic candidate.
- Before the first exact phase snapshot, phase-aware items use the lowest generic Doppler history from the selected markets. From the first exact snapshot onward, third-party candidates must match the phase; Steam remains generic.
π Use Cases:
- Inventory Tracking: Track your Steam inventory value over time by sending all your item names
- Portfolio Analysis: Monitor the performance of specific item collections or investment portfolios
- Watchlist Monitoring: Track price trends for items you're interested in buying or selling
- Market Research: Compare historical performance between different item categories or rarities
- Trading Strategies: Analyze price movements for items in your trading pool
Request
- Base URL: https://www.steamwebapi.com
- URL: https://www.steamwebapi.com/steam/api/items/history
- Auth: API key in query parameter key
Query parameters
Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
Optional comma-separated market idents, for example steam,dmarket,skinport. The lowest positive daily close from exactly these markets is used. Defaults to steam when omitted.
Optional. Game shortname. Default: cs2. Available: cs2, csgo, dota, rust
Optional. Start date for filtering history (Y-m-d format, e.g., 2025-01-01). If not provided, returns all available history from the beginning.
Optional. End date for filtering history (Y-m-d format, e.g., 2025-01-31). If not provided, returns up to the current date.
Optional. Price aggregation strategy:
- PAST_PRICE: Uses the last known price before or on the given date
- PAST_FUTURE_PRICE: Uses the last known price before the given date, or the first known price after the given date if none exists before. Before exact phase history begins, phase-aware items use the selected markets' generic Doppler history instead of projecting a future exact phase backwards.
- SAME_DATE: Uses the price on the given date, or the nearest available price (previous or next day)
- STRICT: Uses the price only if it exists on the exact date, otherwise returns no data for that day
- NEAREST: Uses the nearest available price (previous or next) to the given date
Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Example: ?format=csv
Pretty-print JSON (set to 1 for json/gzip/zip formats). Example: ?format=json&pretty=1
Request body
Example request
{
"items": [
"AK-47 | Redline (Field-Tested)",
"AK-47 | Redline (Field-Tested)",
{
"market_hash_name": "β
Karambit | Doppler (Factory New)",
"phase": "Phase 2",
"paint_index": 419,
"count": 1
}
],
"markets": "steam,dmarket,skinport",
"game": "cs2",
"from_date": "2025-01-01",
"to_date": "2025-01-31",
"strategy": "PAST_PRICE"
}Response
Daily aggregated history returned successfully.
Changes
No recorded changes to this operation across all 1 revision of this API.