SteamCharts APIsteamcharts.com ↗
Access SteamCharts data via API: top games by player count, trending titles, search by name, and monthly historical stats per Steam App ID.
What is the SteamCharts API?
The SteamCharts API exposes 4 endpoints covering live and historical Steam player-count data. Use get_game_details to pull monthly player history — including average players, peak players, and month-over-month gain — for any game identified by its Steam App ID. Other endpoints surface trending games by 24-hour percentage gain, the full paginated top-games list, and name-based game search with current player counts.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/3fcf8070-ee16-4adc-be24-2c51d943c5fe/get_homepage' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace steamcharts-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""SteamCharts SDK — track live player statistics and trending games on Steam."""
from parse_apis.steamcharts_api import SteamCharts, GameNotFound
client = SteamCharts()
# Fetch homepage: trending games and top games summary in one call
homepage = client.homepages.get()
for trend in homepage.trending_games[:3]:
print(trend.title, trend.change_24h, trend.current_players)
# Browse the top games leaderboard (paginated, capped at 5 items)
top = client.topgames.list(limit=5).first()
if top:
print(top.rank, top.title, top.current_players, top.peak_24h)
# Search for a game by name, drill into full details
match = client.gamesummaries.search(query="Dota", limit=1).first()
if match:
game = match.details()
print(game.title, game.stats.playing, game.stats.all_time_peak)
for record in game.history[:3]:
print(record.month, record.avg_players, record.peak_players)
# Direct lookup by App ID with typed error handling
try:
cs2 = client.games.get(appid="730")
print(cs2.title, cs2.stats.peak_24h)
except GameNotFound as exc:
print(f"Game not found: {exc.appid}")
print("exercised: homepages.get / topgames.list / gamesummaries.search / details / games.get")
Fetches the SteamCharts homepage to retrieve currently trending games (ranked by 24-hour percentage gain) and a summary of top games by current player count. Returns both lists in a single call; no pagination.
No input parameters required.
{
"type": "object",
"fields": {
"trending_games": "array of trending game objects with title, appid, current_players, and change_24h",
"top_games_summary": "array of top game objects with title, appid, current_players, peak_24h, and hours_played_last_30d"
}
}About the SteamCharts API
What the API Covers
SteamCharts tracks concurrent player counts for games on Steam. This API exposes four endpoints that map to the main data surfaces on the site: homepage summaries, ranked top-game listings, name search, and per-game historical time series. Every game is referenced by its Steam App ID — the same numeric identifier used across the Steam platform — making it straightforward to cross-reference results with other Steam data sources.
Endpoint Details
get_homepage returns two lists: trending_games (sorted by percentage gain with change_24h fields) and top_games_summary (which includes hours_played_last_30d in addition to current_players and peak_24h). get_top_games paginates the full ranked list 25 games per page, with each entry carrying rank, appid, current_players, peak_24h, and hours_played. Supply a page integer to walk through deeper results. search_games accepts a query string and returns matching titles with their current player counts — useful for resolving a game name to its appid before calling get_game_details.
Historical Data via get_game_details
get_game_details is the most data-dense endpoint. Pass an appid (e.g. '730' for Counter-Strike 2) and the response includes a stats object with playing, 24-hour_peak, and all-time_peak, plus a history array of monthly records. Each history record contains month, avg_players, gain, gain_percent, and peak_players, giving a full time series suitable for trend analysis or charting player-base growth and decline over time.
The SteamCharts API is a managed, monitored endpoint for steamcharts.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when steamcharts.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official steamcharts.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track which games are gaining momentum using
trending_gamesand thechange_24hfield fromget_homepage. - Build a game popularity dashboard ranking titles by
current_playersandpeak_24husingget_top_games. - Resolve a game title to its Steam App ID via
search_gamesbefore fetching detailed stats. - Chart a game's player-base growth or decline over months using the
historyarray fromget_game_details. - Compare
avg_playersandpeak_playersacross months to identify seasonal spikes for a specific game. - Monitor
all-time_peakand current concurrent players to gauge a game's retention relative to its launch. - Aggregate
hours_played_last_30dfrom top games to estimate overall platform engagement trends.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does SteamCharts have an official developer API?+
What does `get_game_details` return beyond current player counts?+
stats object with playing, 24-hour_peak, and all-time_peak, plus a history array of monthly records. Each record includes month, avg_players, gain (absolute change from the prior month), gain_percent, and peak_players. This gives you a full month-by-month time series for any game identified by its appid.Does the API expose individual review scores or Steam store metadata for games?+
How does pagination work in `get_top_games`, and how many games are returned per page?+
page parameter to fetch deeper results. The response includes a page field confirming which page was returned. If you omit page, the endpoint returns the first page by default.