
Steam Games Scraper
hipersoft/steam-games-scraper
Search the Steam store and scrape full game data: name, price & discount, developers, publishers, genres, categories, platforms, Metacritic score, release date, description and store link. Fast clean HTTP via the Steam store API, no setup.
Total users
1Monthly users
1Total runs
116Per game scraped
$0.0024Last rebuilt
Oct 26, 2026Overview
Search the Steam store and pull clean, structured JSON with full game data: name, price and discount, developers, publishers, genres, categories, platforms, Metacritic score, release date, description and store link. It runs over Steam's public store API, so it's fast and needs no account and no API key. Built for price tracking, market research and building game catalogs — with per-country pricing.

Features
- 💰 Pricing & discounts —
price,priceCents,currencyanddiscountPct, localized bycountry. - 🏷️ Full taxonomy —
genres,categories,platforms,developersandpublishersper game. - ⭐ Metacritic & reviews —
metacriticscore,metacriticUrland totalrecommendations. - 🆔 Target exact titles — pass Steam app IDs or
store.steampowered.com/app/...URLs inappIds. - 🌍 Regional pricing — set
country(e.g.us,gb,de,br) to get the right currency. - 🎚️ Volume control —
maxGamesPerSearch(1–100) caps top results per search term. - 🧱 Flat, normalized JSON — cleaned description and supported languages, ready to use.
What you get

One flat JSON record per game. Example:
{
"appId": 620,
"name": "Portal 2",
"type": "game",
"isFree": false,
"price": "$9.99",
"priceCents": 999,
"currency": "USD",
"discountPct": 0,
"developers": ["Valve"],
"publishers": ["Valve"],
"genres": ["Action", "Adventure"],
"categories": ["Single-player", "Co-op", "Steam Achievements"],
"platforms": ["windows", "mac", "linux"],
"metacritic": 95,
"metacriticUrl": "https://www.metacritic.com/game/pc/portal-2",
"recommendations": 285000,
"requiredAge": 0,
"releaseDate": "18 Apr, 2011",
"comingSoon": false,
"website": "http://www.thinkwithportals.com/",
"headerImage": "https://cdn.steamstatic.com/steam/apps/620/header.jpg",
"shortDescription": "The Portal 2 single-player campaign introduces new characters and puzzles.",
"supportedLanguages": "English, French, German, ...",
"dlcCount": 1,
"url": "https://store.steampowered.com/app/620"
}
Output schema
| Field | Type | Description |
|---|---|---|
appId |
integer | Steam application ID. |
name |
string | Game title. |
type |
string | Item type (game, dlc, etc.). |
isFree |
boolean | Whether the game is free to play. |
price |
string | Localized display price. |
priceCents |
integer | Price in the smallest currency unit (cents). |
currency |
string | Currency code for the price. |
discountPct |
integer | Current discount percentage. |
developers |
array | Development studios. |
publishers |
array | Publishers. |
genres |
array | Store genres. |
categories |
array | Store feature categories (single-player, co-op, etc.). |
platforms |
array | Supported platforms (windows, mac, linux). |
metacritic |
integer | Metacritic score. |
metacriticUrl |
string (URL) | Link to the Metacritic page. |
recommendations |
integer | Number of user recommendations. |
requiredAge |
integer | Minimum required age. |
releaseDate |
string | Release date as shown on the store. |
comingSoon |
boolean | Whether the game is unreleased or coming soon. |
website |
string (URL) | Official game website. |
headerImage |
string (URL) | Store header image URL. |
shortDescription |
string | Short store description. |
supportedLanguages |
string | Supported languages list. |
dlcCount |
integer | Number of DLC items. |
url |
string (URL) | Link to the store page. |
Input
{
"searches": ["portal", "roguelike", "stardew"],
"appIds": [],
"maxGamesPerSearch": 20,
"country": "us"
}
| Field | Description |
|---|---|
searches |
Game titles or keywords to search on the Steam store, one per line. |
appIds |
Specific Steam app IDs or store URLs (optional). |
maxGamesPerSearch |
How many top results to fetch per search term (1–100). |
country |
Two-letter country code for pricing/currency (e.g. us, gb, de, br). |
Use cases
- Track prices and discounts across regions with per-country runs.
- Build a game catalog with genres, categories, platforms and Metacritic scores.
- Research a genre's top titles by
recommendationsand reviews. - Enrich a games dataset with developers, publishers and release dates.
Pricing
Pay-per-event: you're billed a small amount per run and per item scraped — you only pay for what you get. See the Pricing tab for current rates.
FAQ
Do I need a Steam account or API key? No. The Actor runs over Steam's public store API, so there's no account, no login and no API key to set up.
How many games can I get per run?
Set maxGamesPerSearch (1–100) to cap top results per search term. Pass multiple keywords in searches, or target exact appIds, to scale a single run.
Can I download games or game files? No. This Actor returns public store metadata only — prices, genres, platforms, Metacritic scores and descriptions. It does not download any game files or DRM-protected content.
What's the output format? Flat, normalized JSON with one record per game and consistent fields, ready for a database or spreadsheet. Export as JSON, CSV or Excel.
Can I get regional pricing?
Yes. Set country (e.g. us, gb, de, br) to get localized price, priceCents, currency and discountPct for each game.
Can I connect this to other apps? The Steam Games Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Building a games or entertainment dataset? Pair this with our other scrapers:
- YouTube Scraper — video metadata, transcripts, comments and channel profiles.
- TVMaze TV Shows Scraper — TV shows, episodes and cast with IMDb IDs and ratings.
- Google Play Reviews Scraper — user reviews, ratings and developer replies for any app.
Notes
This Actor uses Steam's public store API and returns public store metadata only — no game files or DRM-protected content. Not affiliated with, endorsed by, or connected to Valve or Steam; all trademarks belong to their respective owners.
Input
| Field | Type | Description |
|---|---|---|
searchesSearch terms | array | Game titles or keywords to search on the Steam store (e.g. "portal", "roguelike", "stardew"), one per line. |
appIdsApp IDs / URLs (optional) | array | Specific Steam app IDs or store URLs (e.g. 620 or store.steampowered.com/app/620). One per line. |
maxGamesPerSearchMax games per search | integer | How many top results to fetch per search term. Default: 20 |
countryCountry / currency | string | Two-letter country code for pricing (e.g. us, gb, de, br). Default: "us" |
proxyConfigurationProxy (optional) | object | Optional. The Steam store API works without a proxy. Default: {"useApifyProxy": false} |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~steam-games-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searches": [
"portal"
],
"appIds": []
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/steam-games-scraper").call(run_input={
"searches": [
"portal"
],
"appIds": []
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/steam-games-scraper').call({
"searches": [
"portal"
],
"appIds": []
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Game scraped One game with price, discount, developers, genres, platforms, Metacritic, release date and description | $0.0024 | $0.0012 |
| API request One Steam store API request (a search or a game lookup) | $0.001 | $0.001 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Carousell Scraper
Scrape Carousell search listings: title, price, condition, location, seller, photo and URL. Requires your own Carousell app token.
242 runs · 2 users · $0.003 / listing scrapedGoogle Flights Scraper
Scrape flight options from Google Flights by route and date: airline, flight number, departure and arrival times, duration, stops, layovers and price. One-way or round-trip, any cabin and currency. For travel and price monitoring.
216 runs · 4 users · $0.004 / flight scrapedPinterest Scraper
Search Pinterest and scrape pins (title, description, destination link, image, pinner, board, saves), boards and users. Fast. For visual research, e-commerce, trend and marketing analysis.
151 runs · 2 users · $0.0034 / item scrapedGoogle Trends Scraper
Scrape Google Trends for any keyword: interest over time, related and rising queries, and interest by region. Per country and timeframe. For SEO, market and trend research. No setup.
139 runs · 6 users · $0.001 / keyword scrapedAliExpress Product Search Scraper
Search AliExpress by keyword and export one clean row per product — title, sale price, original price, image and product URL. Export to JSON, CSV or Excel.
135 runs · 3 users · $0.003 / product scrapedGoogle Maps Scraper
Search Google Maps and scrape places: name, category, full address, city, coordinates, rating, phone, website, Place ID and map link. Fast browser-free via Google's internal endpoint, no setup. For local lead generation and market research.
130 runs · 2 users · $0.005 / place scrapedSend the site and the fields. We build it and you get it first.