# Steam Community Market API
> Live prices from the Steam Community Market (steamcommunity.com/market), the largest virtual-item economy in gaming, read keyless from Steam's public market endpoints. Every day millions of dollars of CS2 skins, Dota 2 items, Team Fortress 2 hats and other in-game items change hands on Steam's marketplace at real, floating prices — a genuine commodity market for digital goods. The popular endpoint lists the most-listed items on the market for a game — the busiest part of the economy, each with its current lowest sell price (USD) and listing count. The search endpoint finds items by name within a game, sorted by price or popularity. The price endpoint returns the live price overview for one specific item: its lowest asking price, median sale price and 24-hour sold volume. This is the Steam Market cut — a distinct gaming-economy / virtual-item trading platform, separate from the Steam store, player-count and review feeds (steamspy, steamreviews) and from the other gaming and marketplace feeds in the catalogue; it is the trading-price layer for virtual items, comparable to a commodity exchange for digital goods. Games are addressed by friendly alias (cs2, dota2, tf2, rust, pubg) or numeric Steam appid. Prices are in US dollars and are the real, live numbers Steam shows; Steam rate-limits market calls, so a protective cache fronts the upstream and stale data is served if the limit is hit. Keyless.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/steammarket-api/..."
```

## Pricing
- **Free** (Free) — 1,100 calls/Mo, 2 req/s
- **Starter** ($16/Mo) — 55,000 calls/Mo, 6 req/s
- **Pro** ($42/Mo) — 380,000 calls/Mo, 16 req/s
- **Scale** ($93/Mo) — 2,300,000 calls/Mo, 40 req/s

## Endpoints

### Popular

#### `GET /v1/popular` — Most-listed items on the market for a game

**Parameters:**
- `game` (query, optional, string) — cs2, dota2, tf2, rust, pubg or a numeric appid Example: `cs2`
- `count` (query, optional, string) — Max items (1-50) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/steammarket-api/v1/popular?game=cs2&count=20"
```

**Response:**
```json
{
    "data": {
        "note": "The most-listed items on the Steam Community Market for app 730 — the busiest part of the economy. Each item has its current lowest sell price (USD) and how many are listed. total_items_on_market is how many distinct items the game has on the market. Pass game (cs2/csgo/dota2/tf2/rust/pubg or a numeric appid) and count (1-50). Live, cached ~10m.",
        "appid": 730,
        "count": 10,
        "items": [
            {
                "url": "https://steamcommunity.com/market/listings/730/Dreams%20%26%20Nightmares%20Case",
                "name": "Dreams & Nightmares Case",
                "type": "Base Grade Container",
                "listings": 348484,
                "hash_name": "Dreams & Nightmares Case",
                "sell_price_usd": 1.73
            },
            {
                "url": "https://steamcommunity.com/market/listings/730/Sealed%20Dead%20Hand%20Terminal",
                "name": "Sealed Dead Hand Terminal",
                "type": "Base Grade Container",
                "listings": 145884,
                "hash_name": "Sealed Dead Hand Terminal",
                "sell_price_usd": 1.54
            },
            {
                "url": "https://steamcommunity.com/market/listings/730/Fever%20Case",
                "name": "Fever Case",
                "type": "Base Grade Container",
                "listings": 612270,
                "hash_name": "Fever Case",
                "sell_price_usd": 0.77
            },
…(truncated, see openapi.json for full schema)
```

### Search

#### `GET /v1/search` — Search market items by name

**Parameters:**
- `game` (query, optional, string) — cs2, dota2, tf2, rust, pubg or appid Example: `cs2`
- `q` (query, required, string) — Item name to search Example: `redline`
- `sort` (query, optional, string) — popular, price_asc, price_desc, quantity or name Example: `popular`
- `count` (query, optional, string) — Max items (1-50) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/steammarket-api/v1/search?game=cs2&q=redline&sort=popular&count=20"
```

**Response:**
```json
{
    "data": {
        "note": "Steam Community Market items matching a name within app 730, each with its current lowest sell price (USD) and listing count. Pass game, q (required), sort (popular/price_asc/price_desc/quantity/name, default popular) and count (1-50). Live, cached ~10m.",
        "sort": "popular",
        "appid": 730,
        "count": 10,
        "items": [
            {
                "url": "https://steamcommunity.com/market/listings/730/AK-47%20%7C%20Redline%20(Field-Tested)",
                "name": "AK-47 | Redline (Field-Tested)",
                "type": "Classified Rifle",
                "listings": 1111,
                "hash_name": "AK-47 | Redline (Field-Tested)",
                "sell_price_usd": 42.91
            },
            {
                "url": "https://steamcommunity.com/market/listings/730/AWP%20%7C%20Redline%20(Field-Tested)",
                "name": "AWP | Redline (Field-Tested)",
                "type": "Classified Sniper Rifle",
                "listings": 250,
                "hash_name": "AWP | Redline (Field-Tested)",
                "sell_price_usd": 51.42
            },
            {
                "url": "https://steamcommunity.com/market/listings/730/StatTrak%E2%84%A2%20AK-47%20%7C%20Redline%20(Battle-Scarred)",
                "name": "StatTrak™ AK-47 | Redline (Battle-Scarred)",
                "type": "StatTrak™ Classified Rifle",
                "listings": 34,
                "hash_name": "StatTrak™ AK-47 | Red
…(truncated, see openapi.json for full schema)
```

### Price

#### `GET /v1/price` — Live price overview for one item

**Parameters:**
- `game` (query, optional, string) — cs2, dota2, tf2, rust, pubg or appid Example: `cs2`
- `name` (query, required, string) — Exact market item name Example: `AK-47 | Redline (Field-Tested)`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/steammarket-api/v1/price?game=cs2&name=AK-47+%7C+Redline+%28Field-Tested%29"
```

**Response:**
```json
{
    "data": {
        "url": "https://steamcommunity.com/market/listings/730/AK-47%20%7C%20Redline%20(Field-Tested)",
        "name": "AK-47 | Redline (Field-Tested)",
        "note": "The live Steam Community Market price for one item: lowest_price_usd is the cheapest current ask, median_price_usd is the median of recent sales, volume_24h is how many sold in the last 24 hours. Prices in USD. name must be the exact market name (find it via /v1/search). Live, cached ~10m.",
        "appid": 730,
        "source": "Steam Community Market priceoverview endpoint (steamcommunity.com/market), keyless",
        "volume_24h": 98,
        "lowest_price_usd": null,
        "median_price_usd": 56.47
    },
    "meta": {
        "timestamp": "2026-06-13T04:42:00.597Z",
        "request_id": "64b517e7-2177-4fb0-ab86-95c108c92520"
    },
    "status": "ok",
    "message": "Price retrieved successfully",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/steammarket-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "popular takes game and count (1-50). search takes game, q (an item name), sort (popular/price_asc/price_desc/quantity/name) and count. price takes game and name (the exact market item name). meta takes no parameters. game is a friendly alias (cs2/csgo/dota2/tf2/rust/pubg) or a numeric Steam appid. Prices are USD; Steam rate-limits market calls, so a ~10-minute cache fronts the upstream and stale data is served if the limit is hit.",
        "games": {
            "cs2": 730,
            "tf2": 440,
            "csgo": 730,
            "pubg": 578080,
            "rust": 252490,
            "dota2": 570
        },
        "sample": {
            "game": "cs2",
            "top_item": "Dreams & Nightmares Case",
            "price_usd": 1.73
        },
        "source": "Steam Community Market public endpoints (steamcommunity.com/market), keyless, live",
        "service": "steammarket-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/price": "Live price for one item (game=cs2, name=AK-47 | Redline (Field-Tested)).",
            "GET /v1/search": "Search items by name (game=cs2, q=dragon lore).",
            "GET /v1/popular": "Most-listed items on the market for a game (game=cs2)."
        },
        "description": "Live prices from the Steam Community Market (steamcommunity.com/market), the largest virtual-item economy in gaming, keyless. The popular endpoint lists the most-listed items on the mark
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/steammarket-api
OpenAPI spec: https://www.oanor.com/api/steammarket-api/openapi.json
