Steam Trends API

Steam concurrent player counts over time as a normalized time series. Track any game's player momentum, measure peak-to-current decline or growth, and compare across titles - via a single POST endpoint.

Steam's own API has a GetNumberOfCurrentPlayers endpoint. It tells you how many people are playing a game right now. What it does not tell you is how that number looked 3 months ago, or whether the game's player base is in a long decline or a post-update resurgence.

Trends MCP exposes that historical view - monthly concurrent player data, normalized and comparable across titles.

Endpoint

POST https://api.trendsmcp.ai/api
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Get a time series

Historical concurrent player data for any Steam game, normalized 0-100.

{
  "source": "steam",
  "keyword": "Elden Ring"
}

Response:

[
  {
    "date": "2026-03-01",
    "value": 31,
    "volume": null,
    "keyword": "Elden Ring",
    "source": "steam"
  }
]

Note: Steam data is reported at monthly granularity. The data_mode field is ignored for this source.

Measure growth

Track how a game's player count has moved between any two periods.

{
  "source": "steam",
  "keyword": "Counter-Strike 2",
  "percent_growth": ["3M", "1Y"]
}

Custom date comparison - useful for measuring launch vs. current:

{
  "source": "steam",
  "keyword": "Baldur's Gate 3",
  "percent_growth": [
    { "name": "since launch", "recent": "2026-01-01", "baseline": "2023-09-01" }
  ]
}

Preset periods available: 7D 14D 30D 1M 2M 3M 6M 9M 12M 1Y 18M 24M 2Y 36M 3Y 48M 60M 5Y MTD QTD YTD

Code examples

Python

import requests

res = requests.post(
    "https://api.trendsmcp.ai/api",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={"source": "steam", "keyword": "Elden Ring", "percent_growth": ["3M", "1Y"]}
)
data = res.json()

JavaScript

const res = await fetch("https://api.trendsmcp.ai/api", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({ source: "steam", keyword: "Elden Ring", percent_growth: ["3M", "1Y"] })
});
const data = await res.json();

Common questions

Steam's Web API returns current player counts and game metadata via endpoints like GetNumberOfCurrentPlayers. It does not expose historical concurrent player data as a normalized comparable time series. Trends MCP provides that historical view.
Use the game's display name as it appears on Steam. Examples: 'Elden Ring', 'Counter-Strike 2', 'Baldur's Gate 3'. Exact casing helps but partial matches are handled.
The 0-100 value reflects concurrent player count relative to that game's peak in the queried window. A value of 100 means peak player count; lower values indicate proportional decline.