# Steam Game Data — Prices, Genres, Reviews & Owners (`omao/steam`) Actor

Get Steam game data by app ID: name, price, discount, developers, publishers, genres, release date, Metacritic score, description, platforms — plus SteamSpy owner estimates and review counts. Powered by the public Steam Store & SteamSpy APIs. No API key.

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

## Pricing

$2.00 / 1,000 games

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Steam Game Data — Prices, Genres, Reviews & Owners to JSON

**Get rich Steam game data by app ID — as clean JSON.** Pass Steam app IDs and get back a tidy row per game: name, price, discount, developers, publishers, genres, release date, Metacritic score, description, platforms — plus SteamSpy owner estimates and review counts. Powered by the public Steam Store & SteamSpy APIs — no API key.

The easy way to build game-market datasets for research, pricing and analytics.

### Who uses this

- 🎮 **Game analysts & publishers** — benchmark prices, genres and reviews.
- 📊 **Market researchers** — study ownership estimates and player counts.
- 💰 **Deal & price trackers** — monitor discounts across titles.
- 🤖 **Data & AI pipelines** — feed clean game metadata into your models.
- 🧑‍💻 **Developers** — a clean Steam data endpoint by app ID.

### What you get — one clean row per game

| Field | Description |
|---|---|
| `name` + `appId` | Game & Steam app ID |
| `priceFormatted` + `priceCents` + `discountPercent` | Pricing |
| `isFree` | Free-to-play flag |
| `developers` + `publishers` | Studios |
| `genres` + `categories` | Genres & features |
| `releaseDate` + `comingSoon` | Release info |
| `metacritic` | Metacritic score |
| `windows` + `mac` + `linux` | Platforms |
| `owners` + `peakPlayersYesterday` | SteamSpy estimates |
| `positiveReviews` + `negativeReviews` | Review counts |
| `headerImage` + `storeUrl` | Image & link |

### Example

**Input**

```json
{ "appIds": ["730", "570"], "country": "us", "includeSteamSpy": true }
```

**Output (one item)**

```json
{
  "appId": 730, "name": "Counter-Strike 2", "isFree": true,
  "genres": ["Action", "Free To Play"],
  "developers": ["Valve"], "publishers": ["Valve"],
  "metacritic": 83, "windows": true, "mac": false, "linux": true,
  "storeUrl": "https://store.steampowered.com/app/730"
}
```

### Why this actor

- ✅ **Two sources combined** — Steam Store + SteamSpy in one row.
- 💰 **Full pricing** — price, discount and currency by country.
- 👥 **Ownership & players** — SteamSpy owner ranges and peak players.
- ⭐ **Reviews & Metacritic** — sentiment signals included.
- ⚡ **Fast & affordable** — pay only per game returned. No API key.

### Input options

- `appIds` *(required)* — Steam application IDs.
- `country` — store country for pricing (default `us`).
- `includeSteamSpy` — add SteamSpy owner/player/review estimates (default true).

### FAQ

**Where do I find an app ID?** It's in the Steam store URL: `store.steampowered.com/app/<appId>`.

**Do I get owner estimates?** Yes — with `includeSteamSpy`, you get SteamSpy owner ranges, peak players and review counts.

**Can I get prices in my currency?** Yes — set `country` to the store region you want.

**How fresh is the data?** Live from the Steam Store & SteamSpy APIs on every run.

**Can I export to CSV/Excel/Google Sheets?** Yes — the dataset exports to JSON, CSV, Excel and HTML, or pull it via the API.

**What does it cost?** Pay-per-game — you're only charged for games actually returned.

***

*Tip: track a list of app IDs weekly and diff `discountPercent` to catch sales as they start.*

# Actor input Schema

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

Steam application IDs to fetch (e.g. 730 = CS2, 570 = Dota 2, 1245620 = Elden Ring).

## `country` (type: `string`):

Two-letter country code for pricing (e.g. us, gb, fr).

## `includeSteamSpy` (type: `boolean`):

Also fetch owner estimates and review counts from SteamSpy.

## `healthCheckMode` (type: `boolean`):

Internal monitoring: fetch a canary game and FAIL if broken (no billing).

## Actor input object example

```json
{
  "appIds": [
    "1245620",
    "292030"
  ],
  "country": "us",
  "includeSteamSpy": true,
  "healthCheckMode": false
}
```

# Actor output Schema

## `games` (type: `string`):

All games (price, genres, developers, Metacritic, owners, reviews).

# 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",
        "570"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("omao/steam").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",
        "570",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("omao/steam").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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",
    "570"
  ]
}' |
apify call omao/steam --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=omao/steam",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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