Steam Community Market Scraper

Scrape public Steam Community Market item prices, listing counts, app metadata, item hash names, icons, URLs, and diagnostics.

Data fields

FieldTypeDescription
querystring | nullValue exported as query.
rankinteger | nullValue exported as rank.
namestring | nullValue exported as name.
marketHashNamestring | nullValue exported as marketHashName.
appIdinteger | nullValue exported as appId.
appNamestring | nullValue exported as appName.
sellListingsinteger | nullValue exported as sellListings.
sellPriceinteger | nullValue exported as sellPrice.

Input preview

queriesSearch queries
maxItemsPerQueryMaximum market items per query
startPageStart page
countPerPageItems per page
appIdSteam app ID filter
exactItemsExact market items

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Steam Community Market Scraper exports public market item search results with current listing counts, price text, app metadata, item hash names, icon URLs, and diagnostics. Use it to build trading dashboards, monitor item families, compare marketable game assets, and research public Steam marketplace inventory.

What data it exports

  • Searches public Steam Community Market item listings by keyword.
  • Returns market item identifiers, app/game fields, listing counts, price text, and direct market URLs.
  • Supports exact item watchlists for known appId + marketHashName pairs.
  • Adds diagnostics for zero-result searches and failed pages when requested.

Use cases

  • Game traders: Watch popular item families, cases, stickers, capsules, and skins.
  • Market analysts: Export price/listing snapshots for spreadsheet and BI workflows.
  • Game publishers: Monitor public market activity around game items.
  • Pricing researchers: Compare availability and price text across keywords and apps.

At a glance

  • Search market items: Run one or more Steam Community Market keyword searches.
  • Monitor exact items: Submit known appId + marketHashName entries for watchlists.
  • Export clean data: Download CSV, JSON, Excel, XML, or consume results through the Apify API.
  • Stay bounded: Limit rows per query and keep duplicate market items out of the dataset.
  • Know what happened: Optional diagnostic rows explain empty searches or failed pages.

Input example

{
  "queries": ["case"],
  "appId": 730,
  "maxItemsPerQuery": 10,
  "countPerPage": 10,
  "dedupe": true,
  "includeDiagnostics": true
}

Output example

{
  "query": "case",
  "rank": 1,
  "name": "Dreams & Nightmares Case",
  "marketHashName": "Dreams & Nightmares Case",
  "appId": 730,
  "appName": "Counter-Strike 2",
  "sellListings": 348508,
  "sellPrice": 185,
  "sellPriceText": "$1.85",
  "marketUrl": "https://steamcommunity.com/market/listings/730/Dreams%20%26%20Nightmares%20Case",
  "status": "ok",
  "warnings": [],
  "scrapedAt": "2026-07-21T08:00:00.000Z"
}

Input settings

Key Type Description
queries string[] Steam Community Market keywords such as case, ak-47, capsule, or sticker.
maxItemsPerQuery integer Maximum saved market item rows for each query.
startPage integer Zero-based page to start from.
countPerPage integer Search page size, from 1 to 10.
appId integer Optional Steam app ID filter, for example 730 for Counter-Strike 2.
exactItems object[] Optional watchlist entries with appId and marketHashName.
dedupe boolean Skip duplicate appId + marketHashName rows across queries.
includeDiagnostics boolean Save non-charged diagnostic rows for empty searches and failed pages.
proxyConfiguration object Optional Apify proxy settings. Leave disabled for normal small runs.

Input recipes

  • CS2 case watchlist: {"queries":["case"],"appId":730,"maxItemsPerQuery":25,"countPerPage":10}
  • Keyword discovery: {"queries":["sticker","capsule"],"maxItemsPerQuery":15,"dedupe":true}
  • Exact item monitor: {"exactItems":[{"appId":730,"marketHashName":"Dreams & Nightmares Case"}],"maxItemsPerQuery":5}

Tips and limits

  • Steam price text can vary by locale and availability; keep the raw text fields for audits.
  • Use small maxItemsPerQuery values for frequent monitoring tasks.
  • This Actor covers public Community Market item data, not private inventories, trades, wallets, or purchases.
  • Empty searches can be valid. Enable includeDiagnostics when building monitoring pipelines.

API usage

Node.js

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/steam-community-market-scraper').call({
  queries: ['case'],
  appId: 730,
  maxItemsPerQuery: 10
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python

from apify_client import ApifyClient

client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('fetch_cat/steam-community-market-scraper').call(run_input={
    'queries': ['case'],
    'appId': 730,
    'maxItemsPerQuery': 10,
})
items = client.dataset(run['defaultDatasetId']).list_items().items

cURL

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~steam-community-market-scraper/runs?token=YOUR_APIFY_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"queries":["case"],"appId":730,"maxItemsPerQuery":10}'

MCP and agents

Use this Actor from agents through Apify MCP with the tool-filtered URL:

https://mcp.apify.com/?tools=fetch_cat/steam-community-market-scraper

Claude CLI

claude mcp add apify 'https://mcp.apify.com/?tools=fetch_cat/steam-community-market-scraper'

JSON config

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com/?tools=fetch_cat/steam-community-market-scraper"
    }
  }
}

Example prompts

  • "Find current Steam Community Market listings for CS2 cases and return listing counts."
  • "Monitor Dreams & Nightmares Case and summarize the current price text."
  • "Export Steam market item rows for sticker and capsule searches as JSON."

Responsible use

Scrape only public Steam Community Market data. Do not use this Actor to collect private account, inventory, wallet, trade, or purchase information. Respect Steam's terms and run modest, bounded workloads.

Support

Open an issue on the Actor page and include:

  • Run ID or reproducible public URL.
  • Input JSON you used.
  • Expected output.
  • Actual output or error message.

Common questions

Questions and answers reused from the canonical actor README.

Does it require a Steam login?

No. It is designed for public market data.

Can it return historical charts?

Not in V1. Current public listing counts and price text are supported.

Why is sellPrice sometimes null?

Localized or unusual price text may not parse cleanly. The raw sellPriceText is still preserved.