Steam Store Scraper 🎮 avatar
Steam Store Scraper 🎮

Pricing

Pay per usage

Go to Apify Store
Steam Store Scraper 🎮

Steam Store Scraper 🎮

Unlock comprehensive data from the Steam Store with ease. This efficient actor scrapes game details, pricing, reviews, and tags at high speed. Perfect for market research, price monitoring, and analyzing gaming trends without the hassle.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Steam Store Scraper

Extract comprehensive game data from Steam Store including prices, discounts, reviews, genres, screenshots, system requirements, and detailed metadata. Fast, reliable, and production-ready scraper built for gaming platforms, price comparison sites, and market research.

Overview

This scraper enables you to collect detailed information about games available on Steam Store, the world's largest digital distribution platform for PC gaming. Extract pricing data, user reviews, game specifications, developer information, and much more with a single configuration.

Key capabilities: Multi-strategy data extraction (JSON API + HTML parsing), automatic fallback mechanisms, concurrent processing for high performance, comprehensive game metadata collection, and flexible filtering options.

Features

  • Comprehensive Data Extraction - Game titles, descriptions, pricing, discounts, reviews, genres, tags, screenshots, and system requirements
  • Multi-Strategy Scraping - Prioritizes JSON API for speed, automatically falls back to HTML parsing when needed
  • Advanced Filtering - Sort by price/reviews/release date, filter by language/category/tags/price range
  • High Performance - Concurrent request processing with configurable concurrency levels (1-10 parallel requests)
  • Detailed Game Information - Optional deep scraping for full descriptions, screenshots, system requirements, and metadata
  • Production Ready - Built-in error handling, proxy support, timeout management, and comprehensive logging
  • Flexible Configuration - Customize results count (1-1000), pagination (1-20 pages), and search parameters

Use Cases

Quick Start

Basic Configuration - Extract 50 Games

{
"maxResults": 50,
"maxPages": 3,
"collectDetails": true,
"language": "english",
"maxConcurrency": 3
}

Filter by Price - Games Under $20

{
"maxResults": 100,
"maxPrice": "20",
"sortBy": "Price_ASC",
"collectDetails": true
}

Custom Search URL - Specific Steam Category

{
"startUrl": "https://store.steampowered.com/search/?sort_by=Reviews_DESC&supportedlang=english&category1=21",
"maxResults": 75,
"collectDetails": true
}

Best Rated Games - Sorted by Reviews

{
"sortBy": "Reviews_DESC",
"maxResults": 100,
"maxPages": 5,
"collectDetails": true,
"language": "english"
}

Input Parameters

ParameterTypeRequiredDescription
startUrlStringNoCustom Steam Store search URL. If provided, overrides other search parameters. Use this for advanced filtering or specific searches.
sortByStringNoSort order for results. Options: _ASC (relevance), Released_DESC (newest first), Price_ASC, Price_DESC, Name_ASC, Reviews_DESC. Default: _ASC
categoryStringNoSteam category ID filter. Common values: 998 (All), 21 (Action), 23 (Indie), 9 (Strategy), 3 (RPG), 1 (Action). Leave empty for all categories.
maxPriceStringNoMaximum price filter (e.g., "20" for $20). Leave empty to include all prices. Useful for finding budget games or filtering expensive titles.
tagsStringNoFilter by Steam tag IDs (comma-separated). Example: "1695" for Open World. Combine multiple tags for precise filtering.
languageStringNoSupported language filter. Options: english, spanish, french, german, italian, japanese, korean, portuguese, russian, schinese, tchinese. Default: english
collectDetailsBooleanNoEnable to collect comprehensive game details including full descriptions, system requirements, screenshots, and metadata. Increases runtime but provides richer data. Default: true
maxResultsIntegerNoMaximum number of games to scrape (1-1000). Higher values increase runtime and compute usage. Default: 100
maxPagesIntegerNoMaximum search result pages to process (1-20). Each page contains approximately 25 games. Default: 5
maxConcurrencyIntegerNoNumber of parallel requests (1-10). Higher values = faster scraping but may trigger rate limits. Recommended: 3-5. Default: 3
proxyConfigurationObjectRecommendedProxy settings. Recommended to use Apify Proxy (residential or datacenter) to avoid blocking and ensure reliable access. Default: {"useApifyProxy": true}

Output Data

Each game entry contains comprehensive information structured as JSON. The data includes pricing, reviews, technical specifications, and metadata useful for gaming platforms, price trackers, and market research.

Sample Output

{
"appId": "730",
"title": "Counter-Strike 2",
"type": "game",
"description": "For over two decades, Counter-Strike has offered an elite competitive experience...",
"shortDescription": "Competitive tactical FPS",
"price": "Free",
"originalPrice": null,
"discountPercent": null,
"isFree": true,
"releaseDate": "27 Sep, 2023",
"developer": "Valve",
"publisher": "Valve",
"reviewSummary": "Very Positive",
"reviewScore": null,
"positiveReviews": "485000",
"genres": "Action, Free to Play",
"categories": "Multi-player, Steam Achievements, Steam Trading Cards",
"tags": "FPS, Shooter, Multiplayer, Competitive, Action",
"screenshots": [
"https://cdn.akamai.steamstatic.com/steam/apps/730/ss_1.jpg",
"https://cdn.akamai.steamstatic.com/steam/apps/730/ss_2.jpg"
],
"headerImage": "https://cdn.akamai.steamstatic.com/steam/apps/730/header.jpg",
"website": "https://www.counter-strike.net",
"supportInfo": "https://support.steampowered.com",
"platforms": "Windows, Mac, Linux",
"requiredAge": "0",
"dlcCount": null,
"achievements": "167",
"systemRequirements": {
"windows": "OS: Windows 10, Processor: Intel Core i5 2500k...",
"mac": "OS: macOS Big Sur 11.0..."
},
"url": "https://store.steampowered.com/app/730/",
"source": "json-api-detailed",
"scrapedAt": "2024-12-18T10:30:00.000Z"
}

Output Fields Description

FieldTypeDescription
appIdStringUnique Steam application identifier
titleStringOfficial game title
typeStringContent type (game, dlc, demo, etc.)
descriptionStringDetailed game description (collected when collectDetails=true)
priceStringCurrent price with currency symbol or "Free"
originalPriceStringOriginal price before discount (if on sale)
discountPercentStringDiscount percentage (e.g., "50%")
releaseDateStringGame release date
developerStringGame developer/studio name(s)
publisherStringGame publisher name(s)
reviewSummaryStringSteam review score (e.g., "Very Positive", "Mixed")
genresStringGame genres (comma-separated)
tagsStringPopular user-defined tags
screenshotsArrayList of screenshot URLs (up to 5)
platformsStringSupported platforms (Windows, Mac, Linux)
systemRequirementsObjectMinimum and recommended system specs (when collectDetails=true)
urlStringDirect link to game's Steam Store page
sourceStringData extraction method used (json-api-detailed, html-detailed, etc.)
scrapedAtStringISO timestamp when data was extracted

Configuration Examples

Price Comparison Tool

{
"sortBy": "Price_DESC",
"maxResults": 200,
"collectDetails": false,
"maxConcurrency": 5
}

New Releases Research

{
"sortBy": "Released_DESC",
"maxResults": 100,
"maxPages": 5,
"collectDetails": true
}

Budget Gaming Collection

{
"maxPrice": "10",
"sortBy": "Reviews_DESC",
"maxResults": 150,
"collectDetails": true
}

Specific Language Support

{
"language": "japanese",
"maxResults": 50,
"sortBy": "Reviews_DESC",
"collectDetails": true
}

Performance & Optimization

Use CaseMax ResultsDetailsConcurrencyEst. Runtime
Quick Test10false3~20 seconds
Price Monitoring100false5~1 minute
Market Research200true3~4 minutes
Full Catalog500true5~8-10 minutes
Comprehensive Analysis1000true3~15-20 minutes

Best Practices

  • Start Small: Begin with 10-20 games to test your configuration and validate output format
  • Use Proxies: Enable Apify Proxy (residential recommended) to avoid rate limiting and ensure reliable access
  • Optimize Concurrency: Start with 3, increase to 5-7 for faster scraping if no errors occur
  • Balance Detail vs Speed: Set collectDetails=false for quick price checks, true for comprehensive data
  • Monitor Costs: Each detailed game fetch requires additional requests - estimate ~2-3 requests per game with details
  • Schedule Regular Runs: For price tracking, schedule daily/weekly runs to monitor changes over time
  • Filter Strategically: Use maxPrice, category, and sortBy to target specific game segments
  • Batch Processing: For large datasets (500+ games), split into multiple runs to avoid timeouts

Cost Estimation

  • Compute Units: ~0.01-0.02 per game (basic), ~0.03-0.05 per game (with details)
  • Proxy Costs: Additional charges apply when using Apify Proxy
  • 100 Games (Basic): ~$0.10-0.15 platform cost
  • 100 Games (Detailed): ~$0.30-0.40 platform cost
  • 500 Games (Detailed): ~$1.50-2.00 platform cost

Integration & Data Export

Export scraped data in multiple formats for seamless integration with your applications and workflows.

Supported Export Formats

  • JSON: Structured data ideal for APIs and web applications
  • CSV: Spreadsheet-friendly format for analysis in Excel, Google Sheets
  • Excel: Direct export to .xlsx files with formatted columns
  • HTML Table: Ready-to-use HTML for embedding in web pages
  • RSS Feed: Subscribe to updates for continuous monitoring

API Access

Access your scraped data programmatically using Apify API. Perfect for automated workflows, scheduled data updates, and integration with external systems.

// Fetch dataset items via Apify API
const response = await fetch(
'https://api.apify.com/v2/datasets/YOUR_DATASET_ID/items'
);
const games = await response.json();

Technical Details

Scraping Strategy

This scraper implements a multi-layered approach for maximum reliability and performance:

  1. JSON API Priority: First attempts to fetch search results via Steam's JSON API endpoint for speed and reliability
  2. HTML Fallback: Automatically switches to HTML parsing if JSON API is unavailable or returns errors
  3. Detailed Extraction: When collectDetails=true, fetches comprehensive game data from individual store pages
  4. Concurrent Processing: Processes multiple games simultaneously with configurable concurrency limits
  5. Error Handling: Graceful error recovery with detailed logging for troubleshooting

Rate Limiting & Reliability

  • Built-in rate limiting to respect Steam Store servers
  • Automatic retry mechanism for failed requests
  • Proxy rotation support for high-volume scraping
  • Timeout management to prevent hanging requests
  • Graceful shutdown on approaching time limits

Data Quality

  • Validates all extracted data for consistency
  • Removes duplicate games based on App ID
  • Cleans and normalizes price data
  • Extracts structured JSON-LD when available
  • Provides source attribution for each data point

Troubleshooting

Common Issues & Solutions

Limitations

  • Regional Restrictions: Game availability and prices may vary by region/country
  • Dynamic Content: Some game pages use heavy JavaScript - limited data may be extracted in edge cases
  • Rate Limits: Steam may throttle requests during peak times - use proxies and appropriate concurrency
  • Age-Restricted Content: Some mature content may require authentication - not accessible through this scraper
  • Private Games: Unreleased or hidden games won't appear in public search results

Support & Feedback

Need help or have suggestions? We're here to assist you in getting the most out of this scraper.

  • Issues: Report bugs or technical problems through the Apify Console
  • Feature Requests: Share ideas for new features or improvements
  • Documentation: Refer to this README and Apify documentation for detailed guidance
  • Community: Join Apify Discord community for discussions and tips

This scraper is designed for ethical data collection from publicly available Steam Store pages. Users must comply with:

  • Steam's Terms of Service and acceptable use policies
  • Local and international data protection regulations (GDPR, CCPA, etc.)
  • Apify Terms of Service and fair use guidelines
  • Respect for website rate limits and server resources

Disclaimer: This scraper is provided for legitimate business and research purposes. Users are responsible for ensuring their use complies with all applicable laws and regulations. The scraper extracts only publicly available information visible on Steam Store pages.

Updates & Maintenance

This scraper is actively maintained to ensure compatibility with Steam Store changes and optimal performance.

  • Regular Updates: Selectors and scraping logic updated to match Steam Store structure
  • Bug Fixes: Prompt resolution of reported issues and errors
  • Feature Enhancements: New features added based on user feedback and market needs
  • Performance Optimization: Continuous improvements for speed and reliability

Last updated: December 2024 | Version 1.0.0

"max_pages": 4 } ```

📋 Requirements & Limitations

Data Freshness

  • Jobs updated in real-time from APEC.fr
  • Listings typically available for 30-60 days
  • Salary data available for ~60% of positions

Geographic Coverage

  • France-wide coverage
  • All 101 departments supported
  • Major cities: Paris, Lyon, Marseille, Toulouse, Nice, Nantes, Bordeaux

Language Support

  • Primary language: French
  • Some international companies list in English
  • Location names in French format