Steamデータ取得 データ取得

Steam公式Web APIの使い方|アプリ一覧・同時接続数・実績・ニュース取得

2025年10月17日

この記事では、Steam公式Web APIをPythonから使い、アプリ一覧、同時接続数、実績、ニュースなどを取得する基本をまとめます。

Steam公式Web APIで扱う範囲

Steam Web APIは、SteamがWeb開発者向けに提供しているAPIです。公式ドキュメントでは、API呼び出しの基本形や出力形式、APIキーの取得方法が説明されています。

Steam Web API Documentation

取得したいもの主な方法
アプリ一覧ISteamApps/GetAppList
現在の同時接続数ISteamUserStats/GetNumberOfCurrentPlayers
実績情報ISteamUserStats 系API
ゲームニュースISteamNews/GetNewsForApp
価格・レビュー本文Storefront API側で扱う

アプリ一覧を取得する

import requests

url = "https://api.steampowered.com/ISteamApps/GetAppList/v2/"
response = requests.get(url, timeout=30)
response.raise_for_status()

apps = response.json()["applist"]["apps"]
print(len(apps))
print(apps[:3])

アプリ一覧はAppIDの確認に使えます。後続の appdetailsappreviews、同時接続数取得ではAppIDが必要です。

同時接続数を取得する

import requests

appid = 730
url = "https://api.steampowered.com/ISteamUserStats/GetNumberOfCurrentPlayers/v1/"
params = {"appid": appid}

response = requests.get(url, params=params, timeout=30)
response.raise_for_status()

data = response.json()["response"]
print(data)

この値は取得時点の現在値です。推移を見たい場合は、一定間隔で自前収集して保存します。

ニュースを取得する

import requests

appid = 730
url = "https://api.steampowered.com/ISteamNews/GetNewsForApp/v2/"
params = {
    "appid": appid,
    "count": 5,
    "maxlength": 300,
    "format": "json",
}

response = requests.get(url, params=params, timeout=30)
response.raise_for_status()

items = response.json()["appnews"]["newsitems"]
for item in items:
    print(item["title"], item.get("url"))

公式APIとStorefront APIの切り分け

Steamのデータ取得では、公式Web APIだけで完結しないことがあります。価格、発売日、ジャンル、レビュー本文はStorefront API側の appdetailsappreviews を使うほうが自然です。

まとめ

Steam公式Web APIは、AppID確認、同時接続数、ニュース、実績情報などを扱う入口になります。一方で、ストアページ由来の価格やレビュー本文は別APIに分けて考えると、Steamデータ取得全体の見通しがよくなります。

-Steamデータ取得, データ取得