Steam Store Game Search Scraper avatar

Steam Store Game Search Scraper

Pricing

from $2.99 / 1,000 games

Go to Apify Store
Steam Store Game Search Scraper

Steam Store Game Search Scraper

Collects public Steam Store game search results with titles, App IDs, links, prices, discounts, review summaries, release dates, and platform labels.

Pricing

from $2.99 / 1,000 games

Rating

0.0

(0)

Developer

w3crawler

w3crawler

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Features

Limited permissions

Share

Search the official Steam Store catalogue and save public game listing records: App ID, title, canonical store URL, displayed price, discount, review label, release text, platform labels, and search position. The Actor uses the Store search page as its source and keeps the source URL, final URL, page URL, source kind, query, sort, and collection timestamp with each saved row.

Get started

  1. Open the Actor Store page and select Try for free or open the Input tab.
  2. Set searchQuery to the game or phrase you need. An empty value lists games using the selected sort.
  3. Choose sortBy and keep maxItems small for a first test.
  4. Start the Actor, open the dataset, and export the saved records as JSON, CSV, or Excel. Open Run summary (OUTPUT) to check the outcome and counts.

Input

All fields are optional; the defaults below are ready to use. Unsupported field names and out-of-range values are rejected before requests start.

FieldTypeRequired?DefaultMeaning
searchQuerystringOptional""Public Steam Store search text; an empty value lists games using the selected sort. Up to 200 characters.
querystringOptionalNot suppliedCompatibility alias for searchQuery, up to 200 characters.
sortBystring enumOptionalReview_Score_DESCReview_Score_DESC, Released_DESC, Price_ASC, Price_DESC, or _ASC.
maxItemsintegerOptional50Maximum unique public game rows to save, 1–500.
delayMsintegerOptional750Minimum serial delay between Steam requests, 250–10,000 ms.
maxRequestRetriesintegerOptional1Bounded retries for transient responses only, 0–3.
timeoutMsintegerOptional30000Maximum time for one public Steam response, 5,000–120,000 ms.
maxResponseBytesintegerOptional5000000Maximum response size accepted for parsing, 100,000–30,000,000 bytes.

Example input matching the saved portal run:

{
"searchQuery": "portal",
"sortBy": "Review_Score_DESC",
"maxItems": 2,
"delayMs": 250,
"maxRequestRetries": 1,
"timeoutMs": 30000,
"maxResponseBytes": 5000000
}

The Actor reads the official public Steam Store search page. It does not log in or bypass access controls.

Output

The dataset contains one row per saved game search result. Optional values are omitted when Steam does not publish them; they are not inferred. No diagnostic or placeholder rows are written.

FieldTypeAvailabilityMeaning
recordTypestringAlwaysRecord type; always steam-game.
sourceNamestringAlwaysHuman-readable source name.
sourceUrlstringAlwaysExact public search URL requested.
sourceFinalUrlstringAlwaysFinal public URL after redirects.
sourceKindstringAlwaysSource kind, search_html.
pageUrlstringAlwaysPublic search page URL.
appIdintegerAlwaysSteam application ID.
titlestringAlwaysPublic game title.
urlstringAlwaysCanonical public Steam Store game URL.
headerImagestringAlwaysPublic capsule image URL.
releaseDatestringAlwaysRelease text shown in the search result.
reviewSummarystringAlwaysReview label shown by Steam, such as Overwhelmingly Positive.
reviewScorestringAlwaysReview percentage shown by Steam.
pricestringAlwaysDisplayed price string, including currency symbol.
originalPricestringWhen publishedOriginal price string when a discount is shown.
discountPercentintegerWhen publishedDiscount percentage when a discount is shown.
platformsstringAlwaysPlatform labels shown by Steam.
searchQuerystringAlwaysSearch term used for the request.
sortBystringAlwaysSort parameter used for the request.
positionintegerAlwaysOne-based position in the saved search results.
scrapedAtstringAlwaysTime the record was saved, in ISO UTC.

The example below is a real saved row from the 2026-10-25 run. Every value is unchanged.

{
"recordType": "steam-game",
"sourceName": "Steam Store game search",
"sourceUrl": "https://store.steampowered.com/search/?term=portal&sort_by=Review_Score_DESC&start=0&category1=998",
"sourceFinalUrl": "https://store.steampowered.com/search/?term=portal&sort_by=Review_Score_DESC&start=0&category1=998",
"sourceKind": "search_html",
"pageUrl": "https://store.steampowered.com/search/?term=portal&sort_by=Review_Score_DESC&start=0&category1=998",
"appId": 400,
"title": "Portal",
"url": "https://store.steampowered.com/app/400/Portal/",
"headerImage": "https://shared.fastly.steamstatic.com/store_item_assets/steam/apps/400/capsule_231x87.jpg?t=1745368554",
"releaseDate": "Oct 10, 2007",
"reviewSummary": "Overwhelmingly Positive",
"reviewScore": "98%",
"price": "$9.99",
"platforms": "Windows, Linux/SteamOS",
"searchQuery": "portal",
"sortBy": "Review_Score_DESC",
"position": 1,
"scrapedAt": "2026-10-25T21:13:17.994Z"
}

Run summary

Run summary is stored separately from the dataset in the run's key-value store under OUTPUT (and mirrored to OUTPUT_SUMMARY).

FieldMeaning
recordTypeSummary record type, runSummary.
statusRun outcome: SUCCEEDED or FAILED.
runStatusCanonical run status; matches status.
dataStatusDataset completeness: COMPLETE, PARTIAL, NO_RESULTS, or FAILED.
itemCountGame rows saved to the dataset.
uniqueAppIdsDistinct app IDs among the saved rows.
pagesScrapedSearch pages processed.
requestCountPublic requests attempted.
responseCountPublic responses received.
failedRequestCountRequests that failed before a usable response.
diagnosticCountOperational issues recorded outside the dataset.
recordsStoredComplete records saved to the dataset.
searchQuerySearch term used for the run.
sortBySort parameter used for the run.
maxItemsConfigured item cap.
fixtureModeWhether a bundled QA fixture was used.
sourceWebsiteSteam Store source website.
sourceEndpointPublic search endpoint.
includeDiagnosticsWhether diagnostic detail was retained for the run.
outputWriteFailureCountSummary writes that failed.
completedAtUTC summary creation time.
StatusData statusMeaning
SUCCEEDEDCOMPLETEGames were saved without an extraction problem.
SUCCEEDEDPARTIALGames were saved, but a later problem prevented a complete run. Saved rows remain available.
SUCCEEDEDNO_RESULTSThe search completed cleanly and returned no matching games.
FAILEDFAILEDA fatal error occurred before any usable game was saved.

Example OUTPUT from the 2026-10-25 run:

{
"recordType": "runSummary",
"status": "SUCCEEDED",
"runStatus": "SUCCEEDED",
"dataStatus": "COMPLETE",
"itemCount": 2,
"uniqueAppIds": 2,
"pagesScraped": 1,
"requestCount": 2,
"responseCount": 2,
"failedRequestCount": 0,
"diagnosticCount": 0,
"recordsStored": 2,
"searchQuery": "portal",
"sortBy": "Review_Score_DESC",
"maxItems": 2,
"fixtureMode": false,
"sourceWebsite": "https://store.steampowered.com/",
"sourceEndpoint": "https://store.steampowered.com/search/",
"includeDiagnostics": true,
"outputWriteFailureCount": 0,
"completedAt": "2026-10-25T21:13:18.155Z"
}

Coverage and limitations

The Actor reads the public Steam Store game search page (category1=998). It does not crawl every Store category, follow app pages for extra details, log in, use a proxy, or bypass access controls. Requests are direct HTTPS calls with a robots preflight, bounded same-host redirects, a response-size cap, serial delays, and transient-only retries. Prices are display strings for the storefront returned to this request, not normalized currency amounts; originalPrice and discountPercent appear only when a discount is shown. Review labels and positions reflect the Store response at collection time. Empty or unobserved values are omitted, and failures never create diagnostic or placeholder dataset rows.

Usage and support

Run cost depends on Apify compute and the number of search pages requested. Start with a small maxItems, inspect the dataset and OUTPUT, then raise the cap or widen the query. See the Actor's Pricing tab for current account rates. Use the Actor Issues page to report a problem. Include the run ID, the input used, and the run summary; do not include tokens, cookies, or private data. This Actor is not affiliated with Valve or Steam. Use it only for public data and in accordance with Steam's terms, robots guidance, and applicable law.

⌂ 换网址