Steam Reviews Scraper
Pricing
Pay per usage
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
Pay per usage
Rating
0.0
(0)
Developer

Shahid Irfan
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Steam Discussions Scraper
Extract Steam Community discussion topics from any game app hub. Collect thread titles, authors, reply counts, awards, recent activity, and the full opening post so you can monitor feedback, track recurring issues, and build discussion datasets for research.
Features
- Discussion topic extraction — Collect thread titles, topic URLs, author names, reply counts, awards, and recent activity timestamps.
- Opening post capture — Visit each topic and save the full opening message for deeper sentiment and feedback analysis.
- Paged collection — Crawl multiple discussion pages until your requested topic count is reached.
- Steam app flexibility — Run from a Steam app ID, Steam Community discussions URL, or Steam Store app URL.
- Clean datasets — Empty and always-null fields are removed before items are saved.
Use Cases
Community Feedback Monitoring
Track what players are actively discussing after a launch, patch, or balance update. Identify recurring complaints, requests, and bug reports without manually opening every thread.
Product Research
Study how a game's community reacts to new features, early access content, or developer communication. Use topic summaries and opening posts to understand player priorities.
Support Triage
Collect bug reports, save-file issues, and gameplay questions into one dataset. This helps teams spot patterns and prioritize common friction points.
Competitive Analysis
Compare how communities respond across different Steam titles. Build datasets that reveal which topics drive the most replies, awards, and repeat discussion.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
appId | String | No | 2868840 | Steam app ID used to build the discussions URL when startUrl is not provided. |
startUrl | String | No | "https://steamcommunity.com/app/2868840/discussions/" | Steam Community discussions URL or Steam Store app URL. Store URLs auto-resolve app ID. |
results_wanted | Integer | No | 20 | Maximum number of discussion topics to save. |
max_pages | Integer | No | 3 | Maximum number of discussion pages to request. |
proxyConfiguration | Object | No | {"useApifyProxy": false} | Optional proxy configuration for larger or repeated runs. |
Output Data
Each dataset item can contain:
| Field | Type | Description |
|---|---|---|
app_id | String | Steam app ID for the discussion hub. |
app_name | String | Steam app name shown on the discussion page. |
forum_id | Integer | Steam forum ID used for the crawl. |
forum_name | String | Human-readable forum name when available. |
forum_gid | String | Steam internal forum identifier resolved from forum bootstrap data. |
page_number | Integer | Listing page number where the topic was discovered. |
position | Integer | Topic position on that listing page. |
forum_total_topics | Integer | Total active topic count reported by Steam for the forum. |
topic_id | String | Steam topic identifier from the discussion URL. |
title | String | Discussion topic title. |
url | String | Full Steam Community topic URL. |
author_name | String | Topic author name. |
author_url | String | Topic author profile URL when detail collection is enabled. |
reply_count | Integer | Number of replies shown in the listing. |
award_count | Integer | Number of awards shown for the topic. |
preview | String | Topic preview text shown in the listing tooltip. |
created_by | String | Author name repeated from topic hover metadata. |
created_at_text | String | Human-readable topic creation time from the listing tooltip. |
last_poster_name | String | Author of the most recent post shown in the listing tooltip. |
last_posted_at | String | ISO timestamp for the latest activity when Steam exposes it. |
last_posted_at_text | String | Human-readable last activity timestamp. |
last_posted_text | String | Relative last activity text from the tooltip. |
is_pinned | Boolean | Whether the topic is pinned. |
is_locked | Boolean | Whether the topic is locked. |
is_answered | Boolean | Whether the topic is marked as answered. |
opening_posted_at_text | String | Human-readable opening post timestamp. |
opening_post_body | String | Plain text opening post content. |
opening_post_body_html | String | Original opening post markup. |
opening_post_last_edited_text | String | Last edited text shown on the topic page. |
is_developer_post | Boolean | Indicates whether the opening post is marked as a developer post. |
Usage Examples
Basic App Discussions Run
{"appId": "2868840","results_wanted": 20}
Specific Discussions URL
{"startUrl": "https://steamcommunity.com/app/2868840/discussions/","results_wanted": 30,"max_pages": 3}
Sample Output
{"app_id": "2868840","app_name": "Slay the Spire 2","forum_id": 0,"forum_name": "General Discussions","page_number": 1,"position": 1,"topic_id": "4355620416676744549","title": "Slay the Spire 2 FAQ","url": "https://steamcommunity.com/app/2868840/discussions/0/4355620416676744549/","author_name": "demileaf","author_url": "https://steamcommunity.com/id/demileaf","reply_count": 0,"last_posted_at": "2026-03-12T11:43:00.000Z","last_posted_at_text": "1 May, 2024 @ 1:43pm","is_pinned": true,"is_locked": true,"opening_posted_at_text": "1 May, 2024 @ 1:43pm","opening_post_body": "Hi everyone, welcome to Slay the Spire 2's Steam Forums! We're glad to see so much excitement surrounding the sequel...","opening_post_last_edited_text": "Last edited by demileaf; 2 Mar @ 12:39pm","is_developer_post": true}
Tips for Best Results
Start With General Discussions
- Use the main app discussions page first.
- Use the default app discussions URL format unless you need a specific forum URL.
Use Smaller QA Runs First
- Start with
results_wantedset to20. - Increase the page limit only after you confirm the dataset structure you want.
Detail Fields Are Always Included
- The actor always collects opening post details for each topic.
- This keeps output consistent across runs.
Use Proxies for Larger Repeated Runs
- Small runs usually work without a proxy.
- For heavier production schedules, configure Apify Proxy for added resilience.
Integrations
- Google Sheets — Export discussion datasets for quick review and sharing.
- Airtable — Build searchable topic libraries for support and research teams.
- Make — Trigger automations when new Steam discussion data is available.
- Zapier — Forward results into downstream tools and alerts.
- Webhooks — Send collected topics directly to your own services.
Export Formats
- JSON — Best for APIs and downstream processing.
- CSV — Best for spreadsheets and simple reporting.
- Excel — Best for manual review and stakeholder sharing.
- XML — Useful for custom system integrations.
Frequently Asked Questions
Does this scrape Steam store reviews?
No. This actor targets Steam Community discussion topics from the discussions section of an app hub.
Can I scrape more than one page?
Yes. Increase max_pages and results_wanted to continue through additional discussion pages.
Can I skip the full opening post?
No. The actor always includes opening post details to keep output consistent.
Why are some fields missing from some items?
Steam does not expose every field for every topic. Empty values are omitted instead of being saved as nulls.
Will pinned or locked topics be included?
Yes. The actor includes pinned, locked, and answered topics when they appear in the listing.
Support
For issues or feature requests, use the Apify Console issue channels associated with this actor.
Resources
Legal Notice
This actor is intended for legitimate data collection and analysis. You are responsible for using the data in accordance with Steam policies, applicable laws, and your own compliance requirements.