Steam Games Scraper avatar

Steam Games Scraper

Pricing

from $6.80 / 1,000 results

Go to Apify Store
Steam Games Scraper

Steam Games Scraper

Scrape Steam store game data: price, discount, release date, developers, publishers, genres, categories, platforms, Metacritic score, review count, description and artwork. Search by keyword or app ID and pick a pricing region. Export to JSON, CSV or Excel.

Pricing

from $6.80 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Steam Games Scraper

Steam Games Scraper

Here is one real result, with every field the actor returns:

{
"headerImage": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/400/header.jpg?t=1745368554",
"appId": 400,
"name": "Portal",
"type": "game",
"url": "https://store.steampowered.com/app/400",
"isFree": false,
"priceInitial": 9.99,
"priceFinal": 9.99,
"discountPercent": 0,
"priceCurrency": "USD",
"priceFormatted": "$9.99",
"releaseDate": "Oct 10, 2007",
"comingSoon": false,
"requiredAge": 0,
"developers": ["Valve"],
"publishers": ["Valve"],
"genres": ["Action"],
"categories": ["Single-player", "Steam Achievements", "Full controller support", "Captions available", "Includes level editor", "Includes Source SDK", "Commentary available", "Remote Play on Phone", "Remote Play on Tablet", "Family Sharing"],
"platformWindows": true,
"platformMac": false,
"platformLinux": true,
"metacriticScore": 90,
"metacriticUrl": "https://www.metacritic.com/game/pc/portal?ftag=MCD-06-10aaa1f",
"recommendationsTotal": 172541,
"reviewScoreDesc": "Overwhelmingly Positive",
"reviewScore": 9,
"totalReviews": 198040,
"totalPositive": 195114,
"totalNegative": 2926,
"positivePercent": 98.5,
"shortDescription": "Portal™ is a new single player game from Valve. Set in the mysterious Aperture Science Laboratories, Portal has been called one of the most innovative new games on the horizon and will offer gamers hours of unique gameplay.",
"website": "http://www.whatistheorangebox.com/",
"supportUrl": "http://steamcommunity.com/app/400",
"supportEmail": null,
"supportedLanguages": "English, French, German, Russian, Danish, Dutch, Finnish, Italian, Japanese, Norwegian, Polish, Simplified Chinese, Spanish - Spain, Swedish, Traditional Chinese, Korean, Bulgarian, Czech, Greek, Hungarian, Portuguese - Brazil, Romanian, Spanish - Latin America, Thai, Turkish, Ukrainian",
"controllerSupport": "full",
"dlcCount": 2,
"achievementsTotal": 15,
"screenshots": ["https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/400/0000002582.1920x1080.jpg?t=1745368554", "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/400/ss_25aa95176ac6319fad955b31554451f3ea61f1e8.1920x1080.jpg?t=1745368554"],
"trailerUrl": "https://video.akamai.steamstatic.com/store_trailers/400/336/858d7ae015068388644e14742bd90801fbb8a805/1750108766/hls_264_master.m3u8?t=1682715059",
"backgroundImage": "https://store.akamai.steamstatic.com/images/storepagebackground/app/400?t=1745368554",
"countryCode": "us",
"query": "portal",
"source": "Steam",
"observedAt": "2026-08-10T14:29:24.968Z"
}

Note: the categories, screenshots, and supportedLanguages values above are trimmed for readability. The real record returns the full lists; every value shown is exactly as returned (the language list drops Steam's * full-audio markers as it appears in supportedLanguages).

The most complete Steam store scraper available. It returns every field a Steam store page exposes for a game, plus derived review and pricing fields (positivePercent, priceInitial/priceFinal, discountPercent), and gives you search-by-keyword and search-by-app-ID inputs with a pricing region to target exactly the games you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor resolves each search query to matching Steam store games, fetches the full store detail for every game (and for any app IDs you pass directly), and writes one normalized record per game to the run's dataset. Prices are converted from Steam's integer cents to decimal amounts in the currency of the region you choose, review counts and sentiment are pulled from the community review summary, and a positivePercent field is computed on top of the raw positive and negative counts so you can sort without extra parsing. Missing source values are returned as null.

Data covers public Steam store pages. Price and currency reflect the countryCode (pricing region) you pass.

Quickstart

Open the actor, paste this into the input, and press Run. It returns up to 10 games matched across the three queries, priced in US dollars.

{
"searchQueries": ["portal", "elden ring", "counter-strike"],
"countryCode": "us",
"maxGames": 10
}

You can search by keyword (searchQueries), by exact Steam app ID (appIds), or both. Every input is optional; provide at least one query or app ID to get results.

Input reference

FieldTypeRequiredDefaultDescription
searchQueriesstring[]no(empty)Game titles or keywords to look up on the Steam store, one per line (for example portal, elden ring, counter-strike). Each query is resolved to matching Steam games.
appIdsstring[]no(empty)Specific Steam app IDs to fetch directly (the number in a store URL, for example 730 for store.steampowered.com/app/730), one per line.
countryCodestringnousTwo-letter country code used for the pricing region and currency (for example us, gb, br, de, mx).
maxGamesintegerno10Maximum number of games to collect across all queries and app IDs. Range 1 to 1000000.

Queries and app IDs are combined; the actor collects up to maxGames games in total across both.

Output reference

One dataset item per game. Types: string, integer, number, boolean, string[], or null when the source value is absent.

FieldTypeDescription
headerImagestringHeader artwork URL.
appIdintegerSteam app ID.
namestringGame title.
typestringStore item type (game, dlc, demo).
urlstringStore page URL.
isFreebooleanWhether the game is free to play.
priceInitialnumberList price before discount, in region currency.
priceFinalnumberCurrent price after discount, in region currency.
discountPercentintegerDiscount percentage.
priceCurrencystringCurrency code.
priceFormattedstringFormatted current price.
releaseDatestringRelease date as shown on the store.
comingSoonbooleanWhether the game is unreleased.
requiredAgeintegerRequired age.
developersstring[]Developers.
publishersstring[]Publishers.
genresstring[]Genres.
categoriesstring[]Store categories and features.
platformWindowsbooleanRuns on Windows.
platformMacbooleanRuns on macOS.
platformLinuxbooleanRuns on Linux.
metacriticScoreintegerMetacritic score, or null.
metacriticUrlstringMetacritic page URL, or null.
recommendationsTotalintegerTotal user recommendations.
reviewScoreDescstringCommunity review sentiment label (for example Overwhelmingly Positive).
reviewScoreintegerSteam review score (0 to 9).
totalReviewsintegerTotal community reviews.
totalPositiveintegerPositive community reviews.
totalNegativeintegerNegative community reviews.
positivePercentnumberPercentage of positive reviews (derived).
shortDescriptionstringShort description.
websitestringOfficial game or developer website, or null.
supportUrlstringDeveloper support URL, or null.
supportEmailstringDeveloper support email or contact link, or null.
supportedLanguagesstringSupported interface, audio, and subtitle languages.
controllerSupportstringController support level (full, partial), or null.
dlcCountintegerNumber of DLC packages.
achievementsTotalintegerNumber of achievements.
screenshotsstring[]Screenshot image URLs.
trailerUrlstringPrimary trailer or video URL, or null.
backgroundImagestringStore page background image URL.
countryCodestringPricing region used.
querystringSearch query that produced this game.
sourcestringData source. Always Steam.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringPresent only on a failed or empty run; a single item with a populated error field is written instead.

Example output record

Real record from a live run (input {"searchQueries": ["portal", "elden ring", "counter-strike"], "countryCode": "us", "maxGames": 10}):

{
"headerImage": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/400/header.jpg?t=1745368554",
"appId": 400,
"name": "Portal",
"type": "game",
"url": "https://store.steampowered.com/app/400",
"isFree": false,
"priceInitial": 9.99,
"priceFinal": 9.99,
"discountPercent": 0,
"priceCurrency": "USD",
"priceFormatted": "$9.99",
"releaseDate": "Oct 10, 2007",
"comingSoon": false,
"requiredAge": 0,
"developers": ["Valve"],
"publishers": ["Valve"],
"genres": ["Action"],
"platformWindows": true,
"platformMac": false,
"platformLinux": true,
"metacriticScore": 90,
"recommendationsTotal": 172541,
"reviewScoreDesc": "Overwhelmingly Positive",
"reviewScore": 9,
"totalReviews": 198040,
"totalPositive": 195114,
"totalNegative": 2926,
"positivePercent": 98.5,
"controllerSupport": "full",
"dlcCount": 2,
"achievementsTotal": 15,
"countryCode": "us",
"query": "portal",
"source": "Steam",
"observedAt": "2026-08-10T14:29:24.968Z"
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~steam-games-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchQueries":["portal","elden ring"],"countryCode":"us","maxGames":10}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~steam-games-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"appIds":["730","400"],"countryCode":"br"}'

Apify CLI:

apify call scrapers_lat/steam-games-scraper \
--input '{"appIds":["400"]}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per game returned (result event). See the pricing tab for the current per-result price.
  • No charge on failure. If a run errors or matches nothing, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 games per run. Upgrade for higher maxGames.

FAQ and troubleshooting

A run returned 0 records. Why? No query or app ID matched a Steam store page. Check the spelling of your searchQueries or confirm the appIds are valid store IDs. Zero-result runs are not charged.

How do I get prices in another currency? Set countryCode to the region you want (for example gb, br, de, mx). priceCurrency, priceInitial, priceFinal, and priceFormatted all follow that region.

Can I fetch an exact game without searching? Yes. Pass its Steam app ID in appIds (the number in the store URL, for example 730 for Counter-Strike 2).

Why is metacriticScore or supportEmail null? Not every game exposes a Metacritic score or a public support contact. Missing source values are returned as null, never invented.

Is this an official Valve or Steam tool? No. This actor is independent and has no affiliation with Valve or Steam. It reads only data that is publicly available on the Steam store.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with Valve or Steam. Accesses only publicly available Steam store data.