# Steam API – Game Prices, Sales, Player Count & Top Sellers (`rowfeed/steam-game-data`) Actor

Steam game data API: top sellers, games on sale, most wishlisted and most played, or any game by name, id or URL. Price and discount per country, review totals and score, players now, release date, developer, genres and Metacritic. $2 per 1,000 games.

- **URL**: https://apify.com/rowfeed/steam-game-data.md
- **Developed by:** [Rowfeed](https://apify.com/rowfeed) (community)
- **Categories:** Developer tools, E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $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/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

## Steam API – Game Prices, Sales, Player Count & Top Sellers

Get Steam game data as clean rows: price and discount in any country's currency, review totals and score, players in game right now, release date, developer, publisher, genres, Metacritic score and more.
Read Steam's lists (top sellers, games on sale, most wishlisted, most played) or look up any game by name, app id or store URL. Re-run it on a schedule to track Steam prices, sales and charts.
Built for game studios and publishers watching competitors, deal and price-tracking sites, market researchers and AI agents.
The data comes from Steam's own public store and Web API endpoints: no login, no browser, no proxies.

### What you get

- **Steam lists** in Steam's order: top sellers, on sale (specials), most wishlisted, most played. Up to 100 per list.
- **Any game** by app id (`1245620`), store URL or name (`Hollow Knight`).
- **Price per country:** price now, price before discount, discount % and currency (USD, GBP, EUR, BRL, JPY ...). Free games show price 0.
- **Reviews:** total, positive, negative, positive % and Steam's score ("Very Positive").
- **Players now:** how many people are in the game at this moment.
- Release date, coming soon, developers, publishers, genres, Steam features, Metacritic score, recommendations, Windows/Mac/Linux, age rating, number of DLCs and achievements, short description, header image and store link.

Game data only: no review texts, no user names or profiles.

### Example output

A real row for Elden Ring (US store):

```json
{
  "source": "game",
  "query": "1245620",
  "country": "us",
  "app_id": "1245620",
  "name": "ELDEN RING",
  "is_free": false,
  "price": 59.99,
  "price_before_discount": 59.99,
  "discount_percent": 0,
  "currency": "USD",
  "release_date": "Feb 24, 2022",
  "developers": ["FromSoftware, Inc."],
  "publishers": ["FromSoftware, Inc.", "Bandai Namco Entertainment"],
  "genres": ["Action", "RPG"],
  "reviews_total": 1159692,
  "reviews_positive": 1079074,
  "positive_percent": 93.0,
  "review_score": "Very Positive",
  "players_now": 28577,
  "metacritic_score": 94,
  "store_url": "https://store.steampowered.com/app/1245620/",
  "checked_at": "2026-10-22T14:10:00+00:00"
}
```

### Input

| Field | What it does |
|---|---|
| `lists` | `top_sellers`, `on_sale`, `most_wishlisted`, `most_played`. Empty = only the games below. |
| `games` | App ids, store URLs or names. Up to 1,000. |
| `country` | 2-letter code for prices, currency and lists: `us`, `gb`, `de`, `br`, `jp` ... |
| `maxPerList` | 1 to 100. Default 20. |

### Pricing

Pay per event, no subscription:

- **$2 per 1,000 games** ($0.002 per game row).
- $0.001 per run start.

Example: the top 100 sellers cost $0.20. Tracking 50 games every day costs about $3 a month.
A game Steam does not have is returned as a free error row. You can cap the cost of a run with the maximum charge setting.

### Good to know

- Steam limits how fast its store can be read, so the Actor reads about one game every 3-4 seconds: 20 games take about a minute, 100 games about 6 minutes.
- Prices are Steam's own for the country you choose; lists can differ by country.
- "Players now" is Steam's live count; some games (and DLCs) have none.
- Use it from the API, on a schedule, in n8n/Make/Zapier, or from AI agents.

### Related tools

- [App Store Rankings API](https://apify.com/rowfeed/apple-app-store-scraper) – App Store top charts and app data.
- [Google Trends API](https://apify.com/rowfeed/google-trends-explorer) – search interest for game titles.

Not affiliated with Valve or Steam.

# Actor input Schema

## `lists` (type: `array`):

Steam lists to read, in Steam's order. Leave empty to look up only the games below.

## `games` (type: `array`):

Games by Steam app id, store URL or name (the best match is used). Up to 1,000.

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

2-letter country code for prices, currency and lists: us, gb, de, fr, br, jp ...

## `maxPerList` (type: `integer`):

1 to 100.

## Actor input object example

```json
{
  "lists": [
    "top_sellers"
  ],
  "games": [
    "1245620",
    "https://store.steampowered.com/app/570/Dota_2/",
    "Hollow Knight"
  ],
  "country": "us",
  "maxPerList": 20
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("rowfeed/steam-game-data").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("rowfeed/steam-game-data").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 '{}' |
apify call rowfeed/steam-game-data --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rowfeed/steam-game-data"
        }
    }
}
```

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/aQOY51CmTJdWe2mLG/builds/TBgvlPsdCfqv6WADs/openapi.json
