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.
Get Steam Trends API in 30 seconds
Free tier includes 100 requests per month. No credit card required. Works with Claude, Cursor, ChatGPT, Raycast, and every MCP client.
Get your free API key