# Steam Scraper: Reviews, Achievements, News & Players (`punkrecordsdata/steam-games-player-stats`) Actor

Get Steam game details, reviews, achievement stats, live player counts and news for any game. Export to CSV, Excel, JSON.

- **URL**: https://apify.com/punkrecordsdata/steam-games-player-stats.md
- **Developed by:** [PunkRecordsData](https://apify.com/punkrecordsdata) (community)
- **Categories:** Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.10 / 1,000 game records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

<p align="center">
  <img src="https://api.apify.com/v2/key-value-stores/AAm3a1h3Z9nYfrvh9/records/banner" alt="PunkRecordsData" width="100%" />
</p>

## 🎮 Steam Scraper: Reviews, Achievements, News & Players, PunkRecordsData

> 🚀 **Steam game details, reviews, achievement stats, live player counts and news, in one run.** Give it an App ID or game name and pull real data straight from Valve's own public APIs, no login, no scraping the store page.

Scrape Steam data straight from Valve's own Store and Web APIs: game details (price, genres, platforms, DLC, description), individual user reviews, global achievement unlock percentages, live concurrent player counts, and recent news/patch notes. Optionally supply your own free Steam Web API key to also pull full achievement names and descriptions, not just the global percentage.

Built for the [Apify platform](https://apify.com): schedule a run to track a game's player count and review sentiment over time, or pull a batch of games for a market-research dataset.

### 📋 What the Steam Scraper does

Give it a Steam App ID (like "730" for Counter-Strike 2) or a game name and it returns the game's store details: price, genres, platforms, developer/publisher, DLC count, Metacritic score. Turn on **Reviews** for individual user reviews with recommendation, playtime and review text. Turn on **Achievement stats** for the global unlock percentage of every achievement, **Live player count** for a real-time concurrent-players snapshot, and **News** for recent patch notes and announcements. Supply your own free Steam Web API key to also unlock full achievement names and descriptions.

> 💡 **Why it matters:** most Steam scrapers on the market return game details and reviews, then stop. This one also pulls achievement stats, live player counts and news in the same run, real depth most competitors don't offer.

### 📊 Output

Real sample fields from a verified run on Counter-Strike 2 and Stardew Valley, one of up to 6 record types identified by `recordType`.

**`game-record`** (primary, one row per game):

| Field | Type | Example |
|---|---|---|
| 🎮 `name` | string | `Stardew Valley` |
| 💲 `priceFinal` / `priceCurrency` | string | `14.99` / `USD` |
| 🏷️ `genres` | string | `Indie, RPG, Simulation` |
| 🖥️ `platforms` | string | `windows, mac, linux` |
| ⭐ `metacriticScore` | number/string | `89` |

**`review-record`**, **`achievement-stats-record`**, **`player-count-record`**, **`news-record`** (one row each, per extra enabled):

```json
{ "recordType": "review-record", "author": "snxxpy", "votedUp": "Yes", "playtimeForeverHours": 6927 }
{ "recordType": "achievement-stats-record", "achievementName": "PLAY_CS2", "globalUnlockPercent": "40.5" }
{ "recordType": "player-count-record", "currentPlayers": 571403 }
{ "recordType": "news-record", "title": "Counter-Strike 2 Update", "publishedAt": "2026-09-13" }
```

Every extra you don't enable simply doesn't produce a row for that game, and data a game genuinely doesn't have (like a price on a free-to-play title) returns `"N/A"`. You always know why a field is empty, never guess.

### ✨ Why choose this Actor

- **Up to 6 real data types, one run**: game details, reviews, achievement stats, live player counts, news, and (with your own free key) full achievement schema.
- **Live player counts**, a data point most flat catalog scrapers don't expose, useful for tracking a game's popularity over time on a schedule.
- **News and patch notes included**, letting you monitor a game's update cadence alongside its store data.
- **Official Valve APIs, directly sourced.** No login required for the core 5 data types; no scraping of rendered store pages.

### 📈 How it compares to alternatives

Measured against the closest published Steam actors on the Apify Store:

| Actor | Primary price | Billable events |
|---|---|---|
| Single-event Steam scrapers (5+ actors) | $3-5/1k | 1, flat game or review list |
| Richest measured competitor (3 events) | $5/1k | 3 (game, review, developer) |
| **This Actor** | See Store pricing | **Up to 6** (game, review, achievement stats, player count, news, achievement schema), all raw Valve source data |

### 🚀 How to use

1. Create a free [Apify account](https://console.apify.com). New accounts get $5 in free credit.
2. Open the Steam Scraper and enter a Steam App ID (e.g. "730") or a game name (e.g. "Stardew Valley").
3. Toggle on the extras you need: reviews, achievement stats, player count, news.
4. Click **Start** and wait for the run to finish.
5. Download your data as CSV, Excel, JSON or XML, or pull it via the API.

### 💼 Business use cases

**Game market research & analytics**
Track pricing, genres and review sentiment across a competitive set of games.

**Esports & gaming media**
Monitor live player counts and news to spot trending games early.

**Community & sentiment analysis**
Pull review text and recommendation rates to gauge player sentiment on updates.

**Achievement & completionist tools**
Build achievement trackers using global unlock percentages and (with your own key) full achievement descriptions.

### 🔌 Automating Steam Scraper

Connect this Actor to **Make**, **Zapier**, **Slack** or **Airbyte** to push new reviews or player-count snapshots into a spreadsheet, database or channel automatically. Schedule an hourly run to build a player-count history for a game launch.

### 🌟 Beyond business use cases

**Research:** game-industry and player-behavior research using real review and player-count data.
**Personal projects:** track your favorite game's updates and player count over time.
**Non-profit:** game-preservation and community-history projects using real news archives.
**Experimentation:** train review-sentiment or player-retention models against real Steam data.

### 🤖 Ask an AI assistant about this scraper

Paste this Actor's Store page into ChatGPT, Claude or Perplexity and ask: "Does this Steam scraper include live player counts and news, or just game details and reviews?" The README and input schema are structured so AI assistants can answer accurately from the page alone.

### ❓ Frequently Asked Questions

**Does this only return game details, or also reviews and stats?**
Up to 6 types: game details, reviews, achievement stats, live player count, news, and optional full achievement schema with your own key.

**Do I need a Steam API key?**
No, not for the 5 core data types (game, reviews, achievement stats, player count, news). A free key (instant at steamcommunity.com/dev/apikey) is only needed for the optional achievement-schema extra, which returns full names/descriptions instead of just the global unlock percentage.

**Can I search by game name instead of App ID?**
Yes. Provide a game name and it resolves to a Steam App ID via Steam's own search; provide an App ID directly to skip that step.

**Why do achievement names sometimes look like codes (e.g. "a0") instead of readable text?**
Valve's free global-percentage endpoint returns whatever internal name the developer configured; some studios use readable codes (like "PLAY\_CS2"), others use obfuscated ones. Supply your own Steam API key to get the human-readable display name instead.

**What happens if a game has no achievements?**
The Actor logs that and returns zero achievement rows rather than an error; not every Steam game uses the achievements system.

**How fresh is the player count?**
Live at the moment the Actor runs. Schedule repeated runs to build a history over time.

**What happens if an App ID doesn't exist or was removed from Steam?**
The Actor logs an error row for that specific App ID and continues with the rest of your input rather than failing the whole run.

### 🔌 Integrate with any app

Every run's output is available as CSV, Excel, JSON or XML, or through Apify's API and client libraries for Python and JavaScript.

### 🔗 Recommended Actors

Browse the rest of the [PunkRecordsData](https://apify.com/punkrecordsdata) catalog for more scrapers covering sports data, government data, and social media intelligence.

> 💡 **Pro Tip:** browse the complete [PunkRecordsData collection](https://apify.com/punkrecordsdata).

**🆘 Need Help?** contact.punkrecordsdata@gmail.com

> **⚠️ Disclaimer:** This is an independent tool, not affiliated with, endorsed by, or sponsored by Valve Corporation or Steam. It collects only publicly available data.

# Actor input Schema

## `appIds` (type: `array`):

Numeric Steam App IDs to fetch directly, e.g. "730" (Counter-Strike 2). Find one in a store.steampowered.com/app/{id} URL.

## `gameNames` (type: `array`):

Game names to resolve to a Steam App ID via search, e.g. "Stardew Valley". Used only for App IDs not already provided above.

## `maxItems` (type: `integer`):

Free users: limited to 10 items (preview). Paid users: optional, max 1,000,000. Shared across all record types.

## `includeReviews` (type: `boolean`):

Individual user reviews, with review text, recommendation and playtime.

## `includeAchievementStats` (type: `boolean`):

Global unlock percentage for every achievement in the game.

## `includePlayerCount` (type: `boolean`):

Current concurrent player count snapshot. Useful to track over time on a schedule.

## `includeNews` (type: `boolean`):

Recent news and patch notes for the game.

## `steamApiKey` (type: `string`):

Your own Steam Web API key. Never required — leave blank to skip this extra.

## Actor input object example

```json
{
  "appIds": [
    "730"
  ],
  "maxItems": 10,
  "includeReviews": true,
  "includeAchievementStats": false,
  "includePlayerCount": false,
  "includeNews": false
}
```

# Actor output Schema

## `overview` (type: `string`):

Key fields: game, price, genres, review score

## `fullData` (type: `string`):

Complete dataset with every field for all record types

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "appIds": [
        "730"
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("punkrecordsdata/steam-games-player-stats").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "appIds": ["730"],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("punkrecordsdata/steam-games-player-stats").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "appIds": [
    "730"
  ],
  "maxItems": 10
}' |
apify call punkrecordsdata/steam-games-player-stats --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,punkrecordsdata/steam-games-player-stats"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ibXiTmlheRSbRlrTd/builds/pdqPsZdg5UILrkxqR/openapi.json
