---
title: "📈 Get Daily Aggregated Price History for multiple Items"
method: POST
path: "/steam/api/items/history"
tags: ["Items"]
---

# 📈 Get Daily Aggregated Price History for multiple Items

`POST /steam/api/items/history`

## Request

- Base URL: `https://www.steamwebapi.com`
- URL: `https://www.steamwebapi.com/steam/api/items/history`
- Auth: API key in query parameter `key`

Baseurl: https://www.steamwebapi.com/steam/api/items/history?markets=steam,dmarket,skinport&game=cs2&key=YOUR_API_KEY

💬 **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

## Query parameters

- `format` string
- `pretty` '0' | '1'

## Request body

- object
  - `items` union[], required: Legacy item-name strings or phase-aware item objects. String duplicates are counted separately; object count defaults to 1.
    - union
      - string
      - object
        - `market_hash_name` string, required
        - `phase` string, nullable
        - `paint_index` integer, nullable
        - `count` integer
  - `markets` string: Optional comma-separated market idents. Supports `steam` together with active third-party markets. Can also be passed as query parameter; the query value wins. Defaults to `steam` when omitted.
  - `game` string: Optional. Game shortname. Can also be passed as query parameter.
  - `from_date` string: Optional. Start date for filtering (Y-m-d format). If not provided, returns all available history. Can also be passed as query parameter.
  - `to_date` string: Optional. End date for filtering (Y-m-d format). If not provided, returns up to current date. Can also be passed as query parameter.
  - `strategy` 'PAST_PRICE' | 'PAST_FUTURE_PRICE' | 'SAME_DATE' | 'STRICT' | 'NEAREST': 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 `200`

Daily aggregated history returned successfully.

- unknown

## Other responses

- `400`: Invalid items, markets, dates, or aggregation strategy.
- `404`: Game not found.

---

[API](https://skmtc.dev/steamwebapi/apis/steamwebapi-com-third-party-steam-market-api-documentation.md) · [All operations](https://skmtc.dev/steamwebapi/apis/steamwebapi-com-third-party-steam-market-api-documentation/llms.txt) · [OpenAPI document](https://skmtc.dev/steamwebapi/apis/steamwebapi-com-third-party-steam-market-api-documentation/revisions/f9a4109cbda6?raw)
