Quick start
Use a Steam App ID to request data for a game. The example below retrieves the newest concurrent-player
observations for Steam App ID 730. You can try requests without a key or
create a free API key for higher-capacity access.
cURL request
curl "https://games-popularity.com/swagger/api/game/players/730?apiKey=YOUR_API_KEY"
Example JSON response
{
"steamId": "730",
"history": [
{
"players": 123456,
"added": "2026-07-16T12:00:00Z"
}
],
"nextCursor": null
}
JavaScript example
const response = await fetch(
"https://games-popularity.com/swagger/api/game/players/730?apiKey=YOUR_API_KEY"
);
if (!response.ok) throw new Error(`API request failed: ${response.status}`);
const data = await response.json();
console.log(data.history);
Open interactive API explorer
View OpenAPI JSON
Base URL and authentication
https://games-popularity.com/swagger/api
An API key is optional. Requests without a valid key are limited to 100 requests per day per IP address.
Requests with a valid key use the authenticated API capacity, currently limited to
200 requests per second across authenticated traffic. A 429 Too Many Requests
response means the relevant limit has been reached.
Pass the key as the apiKey query parameter:
https://games-popularity.com/swagger/api/top-sellers?apiKey=YOUR_API_KEY
Current Steam rankings
GET/top-wishlist
Returns the current Steam top wishlist ranking, ordered by position. The list is refreshed hourly
and includes the game name and Steam App ID.
curl "https://games-popularity.com/swagger/api/top-wishlist?apiKey=YOUR_API_KEY"
GET/top-sellers
Returns the current Steam global top sellers ranking, ordered by position. This ranking is refreshed
every two hours and includes the game name and Steam App ID.
curl "https://games-popularity.com/swagger/api/top-sellers?apiKey=YOUR_API_KEY"
Ranking response format
{
"validTimeUtc": "2026-07-16T12:00:00Z",
"data": [
{
"position": 1,
"gameName": "Example Game",
"steamId": "123456"
}
]
}
Game lookup and latest statistics
GET/apps-list
Returns Steam applications in the Games Popularity dataset. Use this endpoint to map game names to
Steam App IDs before requesting statistics. Results contain up to 1,000 apps.
cursor — optional Steam App ID returned as nextCursor.
curl "https://games-popularity.com/swagger/api/apps-list?cursor=730&apiKey=YOUR_API_KEY"
{
"apps": [
{ "steamId": 730, "name": "Counter-Strike 2" }
],
"nextCursor": 740
}
GET/game/latest/{steamId}
Returns the latest available player count, follower count, store price, global top-seller position,
wishlist position, and all-language review totals for one game. A data object can be null
when that metric has not been recorded for the requested game.
steamId — required numeric Steam App ID.
curl "https://games-popularity.com/swagger/api/game/latest/730?apiKey=YOUR_API_KEY"
{
"steamId": "730",
"players": { "players": 123456, "added": "2026-07-16T12:00:00Z" },
"followers": { "followers": 4567890, "added": "2026-07-16T08:00:00Z" },
"price": { "price": 0, "added": "2026-07-16T09:00:00Z" },
"global": { "position": 4, "added": "2026-07-16T12:00:00Z" },
"wishlist": null,
"reviews": {
"reviewsAll": 100000,
"reviewsPositive": 90000,
"reviewsNegative": 10000,
"added": "2026-07-16T09:00:00Z"
}
}
Historical Steam game data
All history endpoints require a numeric steamId. They return observations newest first,
with up to 1,000 records per request. When nextCursor is present, pass it as the optional
ISO 8601 cursor query parameter to retrieve the next page.
GET/game/top-wishlist/{steamId}
Historical positions for a game in Steam's public top wishlist ranking. This tracks ranking position,
not the private number of users who added a game to their personal wishlist.
curl "https://games-popularity.com/swagger/api/game/top-wishlist/123456?apiKey=YOUR_API_KEY"
GET/game/top-sellers/{steamId}
Historical positions for a game in Steam's global top sellers ranking.
curl "https://games-popularity.com/swagger/api/game/top-sellers/730?apiKey=YOUR_API_KEY"
GET/game/players/{steamId}
Historical concurrent-player observations for a Steam game. Player data is collected hourly.
curl "https://games-popularity.com/swagger/api/game/players/730?apiKey=YOUR_API_KEY"
GET/game/followers/{steamId}
Historical Steam Community follower totals for a game. Follower updates run daily.
curl "https://games-popularity.com/swagger/api/game/followers/730?apiKey=YOUR_API_KEY"
GET/game/price/{steamId}
Historical Steam game store prices recorded by Games Popularity. This endpoint concerns game store
prices, not Steam Community Market item prices. The response currently returns a numeric price without
a separate currency field.
curl "https://games-popularity.com/swagger/api/game/price/730?apiKey=YOUR_API_KEY"
GET/game/reviews/{steamId}
Historical all-language Steam review totals, including total, positive, and negative review counts.
curl "https://games-popularity.com/swagger/api/game/reviews/730?apiKey=YOUR_API_KEY"
History response format
{
"steamId": "730",
"history": [
{
"position": 4,
"added": "2026-07-16T12:00:00Z"
}
],
"nextCursor": "2026-01-01T00:00:00.0000000Z"
}
The metric inside each history item depends on the endpoint: position, players,
followers, price, or the review-count fields.
Frequently asked questions
Is the Steam game data API free?
Yes. You can make up to 100 requests per day per IP address without a key. Creating an account gives
you a free API key and access to the authenticated request capacity.
Is this Valve's official Steam Web API?
No. Games Popularity is an independent service. It organizes current and historical Steam game
popularity and store data that is not presented as one unified dataset by the official Steam Web API.
Does the wishlist endpoint return a user's personal wishlist?
No. It returns Steam's public top wishlist ranking and the historical ranking position of games.
It does not expose private user wishlist data or exact wishlist counts.
How do I find a game's Steam App ID?
Use the
apps list endpoint, or copy the number from a Steam store URL such as
store.steampowered.com/app/730/....