Steam データ活用

Steam Web APIキーの取得方法|登録・保管・Pythonでの接続確認

2025年10月18日

この記事では、Steam Web APIを使う前に必要になる Steam Web APIキー の取得方法と、安全な保管方法、Pythonでの接続確認手順を解説します。

Steamの公式Web APIを使うと、アプリ一覧、ユーザー統計、実績情報、ニュース、同時接続数など、Steam上のさまざまな公開データを取得できます。APIによってはキーが必要になるため、Steamデータ分析を行う前に準備しておくと便利です。

本記事では、APIキーの取得、.env または config.ini での保管、Pythonの最小サンプルによる動作確認までを整理します。

この記事でできること

  • Steam Web APIキーが必要になる場面を理解する
  • Steam Web APIキーの登録ページを確認する
  • APIキーを取得するときの注意点を理解する
  • .envconfig.ini でAPIキーを安全に保管する
  • PythonでAPIキーを読み込む
  • GetSchemaForGame を使って接続確認する
  • APIキーが見つからない・認証エラーになる場合の確認点を整理する

想定読者

  • Steam Web APIをPythonから使いたい方
  • Steamの実績、ニュース、アプリ情報などを取得したい方
  • APIキーをコードに直書きせず安全に管理したい方
  • Steamレビュー分析や同時接続数分析の前準備をしたい方
  • Steam API関連の記事を順番に読み進めたい方

Steam Web APIキーとは

Steam Web APIキーは、Steam Web APIを利用するときに使う認証用の文字列です。APIリクエスト時に key パラメータとして指定します。

SteamのAPIには、キーが必要なものと、キーなしでも取得できる場合があるものがあります。ただし、Steam Web APIを継続的に利用する場合は、APIキーを取得し、利用規約を確認したうえで使うのが安全です。

APIキーは秘匿情報です。記事本文、GitHubなどの公開リポジトリ、共有ノート、スクリーンショットなどに載せないよう注意してください。

Steam Web APIキーの取得手順

Steam Web APIキーは、Steam Communityの開発者向けページから取得できます。

https://steamcommunity.com/dev/apikey

基本的な流れは以下です。

  1. Steamアカウントでサインインする
  2. APIキー登録ページを開く
  3. Domain Name に自分のドメイン名を入力する
  4. Steam Web API Terms of Use を確認する
  5. 登録ボタンを押してAPIキーを発行する
  6. 表示されたAPIキーを安全な場所に保管する

Domain Name には、通常は自分が管理しているドメイン名を入力します。たとえば、このサイトであれば anon-dsc.com のように入力します。

https:// やパス部分は不要です。URL全体ではなく、ドメイン名のみを入力します。

APIキーを扱うときの注意点

APIキーは、パスワードほど強い権限を持つものではありませんが、公開してよいものではありません。以下の点に注意してください。

  • PythonコードにAPIキーを直接書かない
  • GitHubなどの公開リポジトリにAPIキーを含めない
  • 記事やスクリーンショットにAPIキーを載せない
  • 漏えいした可能性がある場合は、キーを失効して再発行する
  • 複数人で作業する場合は、共有方法に注意する
  • ローカルPCでは .envconfig.ini など、コード外のファイルで管理する

APIキー管理の考え方は、以下の記事でも詳しく整理しています。

APIキーを外部ファイルで安全に管理する方法|.env・config.iniの使い分け

保管方法1:.envで管理する

個人開発や分析用スクリプトでは、.env ファイルでAPIキーを管理する方法が扱いやすいです。

まず、プロジェクトフォルダに .env ファイルを作成します。

STEAM_WEB_API_KEY=あなたのSteam Web APIキー

Python側では python-dotenv を使って読み込みます。

pip install -U python-dotenv requests
import os
from dotenv import load_dotenv

load_dotenv()

api_key = os.getenv("STEAM_WEB_API_KEY")

if not api_key:
    raise ValueError("STEAM_WEB_API_KEY が見つかりません。")

print("APIキーを読み込みました。")

.env を使う場合は、Git管理から除外するために .gitignore に以下を追加します。

.env

APIキーを外部に公開しないため、.env はGitHubなどにアップロードしないようにしてください。

保管方法2:config.iniで管理する

複数のAPIキーや設定値をまとめて管理したい場合は、config.ini も便利です。

たとえば、以下のように config.ini を作成します。

[steam]
API_KEY = あなたのSteam Web APIキー

Python側では、標準ライブラリの configparser で読み込みます。

import configparser
from pathlib import Path


def load_api_key_from_config(config_path: str = "config.ini") -> str:
    config_file = Path(config_path)

    if not config_file.exists():
        raise FileNotFoundError(f"{config_path} が見つかりません。")

    config = configparser.ConfigParser()
    config.read(config_file, encoding="utf-8")

    if not config.has_option("steam", "API_KEY"):
        raise ValueError("[steam] API_KEY が見つかりません。")

    api_key = config.get("steam", "API_KEY").strip()

    if not api_key:
        raise ValueError("API_KEY が空です。")

    return api_key


api_key = load_api_key_from_config()

print("APIキーを読み込みました。")

config.ini を使う場合も、APIキーを含むファイルは公開リポジトリに含めないようにします。

config.ini

環境変数・.env・config.iniの使い分け

どの方法を使うか迷う場合は、以下のように考えると分かりやすいです。

方法向いている場面注意点
環境変数サーバー運用、本番環境、CI/CD設定場所が環境ごとに異なる
.envローカル開発、個人分析、試作.gitignore で除外する
config.ini複数設定をまとめたい場合、ローカル分析APIキー入りファイルを公開しない

個人のPython分析では、まず .env または config.ini から始めれば十分です。サーバーや自動実行環境に移す場合は、環境変数を使うと管理しやすくなります。

PythonでAPIキーを読み込む共通関数

ここでは、環境変数、.envconfig.ini の順にAPIキーを探す関数を用意します。

import os
import configparser
from pathlib import Path

try:
    from dotenv import load_dotenv
except ImportError:
    load_dotenv = None


def load_steam_api_key(
    config_path: str = "config.ini",
) -> str:
    """
    Steam Web APIキーを読み込む。

    優先順位:
    1. 環境変数 STEAM_WEB_API_KEY
    2. .env 内の STEAM_WEB_API_KEY
    3. config.ini の [steam] API_KEY
    """

    # .env が使える場合は読み込む
    if load_dotenv is not None:
        load_dotenv()

    # 1. 環境変数または .env
    api_key = os.getenv("STEAM_WEB_API_KEY")

    if api_key and api_key.strip():
        return api_key.strip()

    # 2. config.ini
    config_file = Path(config_path)

    if config_file.exists():
        config = configparser.ConfigParser()
        config.read(config_file, encoding="utf-8")

        if config.has_option("steam", "API_KEY"):
            api_key = config.get("steam", "API_KEY").strip()

            if api_key:
                return api_key

    raise RuntimeError(
        "Steam Web APIキーが見つかりません。"
        "STEAM_WEB_API_KEY または config.ini の [steam] API_KEY を設定してください。"
    )


api_key = load_steam_api_key()

print("APIキーを読み込みました。")

この関数を用意しておくと、Steam API関連の別スクリプトでも使い回せます。

接続確認:GetSchemaForGameを呼び出す

APIキーが正しく読み込めているかを確認するために、ISteamUserStats/GetSchemaForGame を呼び出します。

ここでは例として、AppID 2246340 を使います。対象タイトルは必要に応じて変更してください。

import requests


def get_schema_for_game(
    appid: int,
    api_key: str,
    lang: str = "japanese",
) -> dict:
    """
    Steam Web APIの GetSchemaForGame を呼び出す。
    """
    url = "https://api.steampowered.com/ISteamUserStats/GetSchemaForGame/v2/"

    params = {
        "key": api_key,
        "appid": appid,
        "l": lang,
        "format": "json",
    }

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

    return response.json().get("game", {})


api_key = load_steam_api_key()

appid = 2246340

schema = get_schema_for_game(
    appid=appid,
    api_key=api_key,
)

achievements = (
    schema
    .get("availableGameStats", {})
    .get("achievements", [])
)

print("AppID:", appid)
print("gameName:", schema.get("gameName"))
print("achievements:", len(achievements))

以下のように、ゲーム名や実績数が表示されれば、APIキーの読み込みと通信は成功しています。

AppID: 2246340
gameName: Monster Hunter Wilds
achievements: 50

実績がないタイトルや、実績情報が取得できないタイトルでは、achievements が0件になる場合があります。その場合でも、レスポンス自体が取得できていれば、APIキーの読み込み確認としては問題ありません。

APIキーが正しく使えているか確認するポイント

接続確認でエラーになった場合は、以下を確認します。

症状確認すること
APIキーが見つからない環境変数名、.env の場所、config.ini のセクション名を確認する
認証エラーになるAPIキーのコピー漏れ、余計な空白、失効済みキーを確認する
JSONDecodeErrorになるHTMLエラーページが返っている可能性があるため、レスポンス本文を確認する
404や403になるエンドポイントURL、メソッド名、AppID、APIキーを確認する
実績数が0になる対象タイトルに実績がない、または実績スキーマが取得できない可能性がある

まずは、APIキーを読み込めているか、次にAPIからJSONレスポンスが返っているかを順番に確認すると切り分けしやすいです。

APIキーを漏えいした場合

APIキーをGitHub、記事、スクリーンショットなどに公開してしまった場合は、登録ページからキーを失効し、必要に応じて再発行してください。

その後、以下も確認します。

  • 公開リポジトリの履歴にAPIキーが残っていないか
  • 記事本文や画像にAPIキーが写っていないか
  • 共有したCSVやログにAPIキーが含まれていないか
  • 古いAPIキーを参照しているスクリプトが残っていないか

APIキーは、発行後よりも「公開しない運用」を整えることが重要です。

次に読む記事

まとめ

この記事では、Steam Web APIキーの取得方法、APIキーの安全な保管方法、Pythonでの接続確認手順を紹介しました。

Steam Web APIキーは、Steamの公式Web APIを使うための重要な設定情報です。コードに直接書くのではなく、環境変数、.envconfig.ini などを使って管理するのがおすすめです。

APIキーの準備ができたら、次は GetAppList、同時接続数、実績、ニュースなど、Steam公式Web APIで取得できる情報をPythonから扱っていきます。

-Steam, データ活用