Steam API: List most played games
Lists the games with the most players on Steam right now, with current and peak players and prices for a chosen country.
Unofficial. Not affiliated with or endorsed by Steam.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Country optional
country Country for prices, such as United States, Germany, or DE.
United States
Default
United States.- Max Results optional
max_results Maximum number of ranked games to return, for example 20.
100
Whole number from 1 to 100. Default
100.
Input as JSON
{ "country": "United States", "max_results": 100}Output
{ "games": [ { "rank": 1, "price": 0, "game_name": "Counter-Strike 2", "steam_link": "https://store.steampowered.com/app/730/" , "steam_app_id": 730, "currency_code": "USD", "peak_players_today": 1219364, "players_online_now": 669084 }, { "rank": 2, "price": 0, "game_name": "Dota 2", "steam_link": "https://store.steampowered.com/app/570/" , "steam_app_id": 570, "currency_code": "USD", "peak_players_today": 973555, "players_online_now": 640022 }, { "rank": 3, "price": 0, "game_name": "PUBG: BATTLEGROUNDS", "steam_link": "https://store.steampowered.com/app/578080/" , "steam_app_id": 578080, "currency_code": "USD", "peak_players_today": 793256, "players_online_now": 374347 } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"store.steampowered.com/list_most_played","input":{"country":"United States","max_results":100}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "store.steampowered.com/list_most_played" , "input": { "country": "United States", "max_results": 100 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "store.steampowered.com/list_most_played" , "input": { "country": "United States", "max_results": 100 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run store.steampowered.com/list_most_played# with {"country":"United States","max_results":100}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "properties": { "country": { "type": "string", "default": "United States", "description": "Country for prices, such as United States, Germany, or DE." }, "max_results": { "type": "integer", "default": 100, "maximum": 100, "minimum": 1, "description": "Maximum number of ranked games to return, for example 20." } }}Output schema
{ "type": "object", "required": [ "games" ], "properties": { "games": { "type": "array", "items": { "type": "object", "properties": { "rank": { "type": [ "integer", "null" ] }, "price": { "type": [ "number", "null" ] }, "game_name": { "type": [ "string", "null" ] }, "steam_link": { "type": "string" }, "steam_app_id": { "type": "integer" }, "currency_code": { "type": [ "string", "null" ] }, "peak_players_today": { "type": [ "integer", "null" ] }, "players_online_now": { "type": [ "integer", "null" ] } } } } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
store.steampowered.com/list_most_played- Returns
- rank, game name, players now, peak today, price, currency, link, app id
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method store.steampowered.com/list_most_played with the inputs above.
Ask your agent
- Which games have the highest concurrent player counts right now, showing prices in Germany?
- Show me the top 20 most played titles at the moment with their peak players today and prices in Japan.
- What are the busiest games on Steam this hour, with current player numbers and price in euros?
- Give me a ranked list of the 50 most popular games being played now, priced for United States shoppers, on steampowered.com.
- I want the current top played PC games with live player counts, peak numbers, app IDs and local prices for Brazil.
See more
All Steam methodsLists Steam's top-selling, discounted, or new and trending games in store order, with prices for a chosen country, review summaries and release dates.
store.steampowered.com/list_top_sellersGets a Steam game's current players, 24-hour peak, all-time peak and monthly player-count history from SteamCharts. Takes a game name, SteamCharts or Steam store link, or Steam app ID.
store.steampowered.com/get_player_count_historyFinds a PC game on Steam by name, store link or app ID and returns its store details, country price, reviews, tags and live player count.
store.steampowered.com/get_gameReads public Steam player reviews for a game by name, store link, or app ID, with optional sorting (most helpful or most recent), verdict and language filters. Overall figures cover all lifetime reviews in every language and verdict.
store.steampowered.com/get_game_reviewsLists ranked Android apps or games from the Google Play top free, top paid or top grossing chart for a country and category.
play.google.com/list_top_chartsLists the most-watched live Twitch streams, optionally within a category and language. All-category results are limited to 30 streams; category results allow up to 100.
twitch.tv/list_top_streamsLists PlayStation Store games and game editions currently on sale in a country, with prices and sale end dates. Add-ons and subscription-only offers are excluded.
store.playstation.com/list_dealsLists ranked Roblox experiences from a current Charts list. Each game includes players online, approval percentage, creator, icon and game link.
roblox.com/list_top_games