Steam Reviews Scraper avatar

Steam Reviews Scraper

Pricing

from $0.99 / 1,000 results

Go to Apify Store
Steam Reviews Scraper

Steam Reviews Scraper

Extract Steam game reviews at scale. Scrape ratings, user feedback & sentiment analysis from any game. Perfect for gaming analytics, market research & review monitoring. Get structured data instantly.

Pricing

from $0.99 / 1,000 results

Rating

5.0

(4)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

2

Bookmarked

22

Total users

5

Monthly active users

2 days ago

Last modified

Features

Limited permissions

Share

What does Steam Reviews Scraper do?

Steam Reviews Scraper collects public Steam Store reviews for a game. Provide a Steam app ID or Store URL, then choose how many reviews to save and optional language, sentiment, purchase, and sort filters. Each dataset item is one review with its text, recommendation, votes, timestamps, purchase flags, and author details.

The dataset is useful for player sentiment analysis, launch monitoring, feature feedback, localization research, and comparing reception across games.

Why use Steam Reviews Scraper?

  • Collect many reviews at once - Save up to 100 reviews per request without opening Steam pages by hand.
  • Filter before you collect - Restrict results by language, positive or negative recommendation, and purchase type.
  • Keep review context - Every item includes playtime, helpfulness votes, early access and refund flags, and author profile data.
  • Read the game's score alongside the text - Summary score, description, and positive, negative, and total counts are attached to each item.
  • Use structured exports - Download results as JSON, CSV, Excel, XML, or pass the dataset to another workflow.

What data can you extract?

Each dataset item represents one Steam review. Fields Steam does not return for a review are omitted from that item.

FieldTypeDescription
app_idStringSteam app ID for the reviewed game.
app_nameStringGame name from Steam Store details.
page_numberIntegerReview page where the item was found.
positionIntegerReview position on its page.
recommendation_idStringSteam review identifier.
languageStringLanguage the review was written in.
reviewStringFull review text.
voted_upBooleanTrue for a positive recommendation.
votes_upIntegerHelpful votes on the review.
votes_funnyIntegerFunny votes on the review.
weighted_vote_scoreNumberSteam's weighted helpfulness score.
comment_countIntegerNumber of comments on the review.
timestamp_createdIntegerCreation time as a Unix timestamp.
timestamp_created_isoStringCreation time in ISO format.
timestamp_updatedIntegerLast update time as a Unix timestamp.
timestamp_updated_isoStringLast update time in ISO format.
steam_purchaseBooleanTrue when the game was bought on Steam.
received_for_freeBooleanTrue when the game was received for free.
written_during_early_accessBooleanTrue when written during early access.
primarily_steam_deckBooleanTrue when mostly played on Steam Deck.
refundedBooleanTrue when the purchase was refunded.
review_locationStringReviewer location when Steam provides it.
author_steamidStringReviewer Steam ID.
author_nameStringReviewer persona name.
author_urlStringReviewer Steam profile URL.
author_avatar_urlStringReviewer avatar image URL.
author_num_games_ownedIntegerGames owned by the reviewer.
author_num_reviewsIntegerReviews written by the reviewer.
playtime_forever_minutesIntegerTotal playtime in minutes.
playtime_at_review_minutesIntegerPlaytime when the review was written.
playtime_last_two_weeks_minutesIntegerRecent playtime in minutes.
author_last_playedIntegerLast played time as a Unix timestamp.
author_last_played_isoStringLast played time in ISO format.
query_review_scoreIntegerSteam review score for the active filters.
query_review_score_descStringScore label such as Very Positive or Mixed.
query_total_reviewsIntegerTotal reviews for the active filters.
query_total_positiveIntegerPositive reviews for the active filters.
query_total_negativeIntegerNegative reviews for the active filters.

How to use Steam Reviews Scraper

  1. Open Steam Reviews Scraper in Apify Console.
  2. Enter a Steam app ID or a Steam Store app URL.
  3. Set the maximum number of reviews and pages.
  4. Optionally choose a language, sort order, sentiment, and purchase type.
  5. Start the run and review the dataset preview.
  6. Download the results or connect the dataset to your analysis workflow.

The startUrl value takes priority when both appId and startUrl are provided. A plain app ID also works in startUrl.

Input Parameters

ParameterTypeRequiredDefaultDescription
appIdStringNo2868840Steam app ID used when Start URL is not provided.
startUrlStringNohttps://store.steampowered.com/app/2868840/Steam Store app URL or plain app ID. Takes priority over appId.
results_wantedIntegerNo100Maximum number of reviews to save.
max_pagesIntegerNo3Maximum review pages to request. Each page holds up to 100 reviews.
languageStringNoallReview language, or all languages.
filterStringNorecentSort order: most recent, recently updated, or helpfulness.
review_typeStringNoallAll reviews, positive only, or negative only.
purchase_typeStringNoallAll purchases, Steam purchases, or external purchases.

Usage Examples

Collect recent reviews for a game

{
"startUrl": "https://store.steampowered.com/app/2868840/",
"results_wanted": 100,
"filter": "recent"
}

Collect negative English reviews

{
"appId": "2868840",
"results_wanted": 200,
"max_pages": 2,
"language": "english",
"review_type": "negative"
}

Build a larger multilingual dataset

{
"startUrl": "https://store.steampowered.com/app/570/",
"results_wanted": 1000,
"max_pages": 10,
"language": "all",
"filter": "all"
}

Sample Output

This item is from a real run.

{
"app_id": "2868840",
"app_name": "Slay the Spire 2",
"page_number": 1,
"position": 7,
"recommendation_id": "239927202",
"language": "english",
"review": "Love the game. Co-Op with a friend is really nice.\nI'm usually a CS, Apex, Battlefield etc type player - though this one just has a cozy feel to it and really well made too.",
"voted_up": true,
"votes_up": 0,
"votes_funny": 0,
"weighted_vote_score": 0.5,
"comment_count": 0,
"timestamp_created": 1794395544,
"timestamp_created_iso": "2026-11-11T11:12:24.000Z",
"timestamp_updated": 1794395544,
"timestamp_updated_iso": "2026-11-11T11:12:24.000Z",
"steam_purchase": false,
"received_for_free": true,
"written_during_early_access": true,
"primarily_steam_deck": false,
"refunded": false,
"author_steamid": "76561198104713548",
"author_name": "cHl",
"author_url": "https://steamcommunity.com/id/chillaxxx27/",
"author_avatar_url": "https://avatars.akamai.steamstatic.com/f09cb86cf5773d7432383c33cf351c26bcea5e82_full.jpg",
"author_num_games_owned": 67,
"author_num_reviews": 14,
"playtime_forever_minutes": 67,
"playtime_at_review_minutes": 67,
"playtime_last_two_weeks_minutes": 67,
"author_last_played": 1794349813,
"author_last_played_iso": "2026-11-10T22:30:13.000Z",
"query_review_score": 5,
"query_review_score_desc": "Mixed",
"query_total_reviews": 208251,
"query_total_positive": 128449,
"query_total_negative": 79802
}

The review text is shortened here. Dataset items contain the full text.

Tips for Best Results

  • Start with results_wanted: 100 to check the field coverage before collecting thousands of reviews.
  • Use language and review_type to keep a dataset focused and smaller.
  • Increase max_pages together with results_wanted; each page returns at most 100 reviews.
  • Keep filter settings consistent between scheduled runs so score comparisons stay meaningful.
  • Summary counts follow the active language and filters, not the store page's default view.

Frequently Asked Questions

Do I need a Steam login?

No. The Actor reads public Steam Store reviews and app details without an account.

How many reviews can one run collect?

Any number up to what Steam returns for the chosen filters. Each page holds up to 100 reviews, and max_pages caps how many pages are requested.

Why is the total review count different from the Steam page?

Summary counts follow the language and filters you selected. The Steam page may show a different language view.

Are review comments or replies included?

No. Each item contains the review itself, its votes, and author details. Review comments are a separate Steam surface.

What happens when a game has fewer reviews than requested?

The run saves what Steam returns and finishes normally. It does not pad the dataset.

Why are some fields missing on some reviews?

Steam omits values it does not have, such as location or an avatar. Empty values are removed from the item instead of saved as null.

Can I run this Actor on a schedule?

Yes. Set a schedule for hourly, daily, or weekly collections to track sentiment over time.

You are responsible for complying with Steam terms, applicable laws, privacy requirements, and any permissions required for your use of the data.

Integrations and Export Formats

  • Google Sheets - Review sentiment and quotes with a team.
  • Airtable - Build a searchable feedback library.
  • Make and Zapier - Trigger alerts or database updates after a run.
  • Webhooks - Send completed run events and dataset links to your service.
  • Apify API - Start runs and read dataset items programmatically.

Apify datasets can be downloaded as JSON, CSV, Excel, XML, and other supported formats.

Support

For issues, feature requests, or reports about changed Steam review pages, use the Issues or support section on the Actor page in Apify Console.

This Actor is intended for legitimate collection and analysis of publicly available Steam Store data. You are responsible for complying with Steam terms, applicable laws, privacy requirements, and any permissions required for your use of the collected data.