Steam 游戏查询 API

Steam 游戏详情、价格、搜索与实时在线人数;配置 ITAD_API_KEY 后附带史低价

数据来源:Steam Web API / IsThereAnyDeal

返回统一的 JSON 格式 { code, message, cached, stale, updatedAt, data },支持跨域,免注册每天可免费调用 100 次,注册后每天 10000 次。

查询 Steam 游戏详情与当前价格(配置 ITAD_API_KEY 时附带史低价)

GET /api/steam/app

请求参数

  • id(必填):Steam AppID,示例 730
  • cc:商店地区代码(决定价格货币),例如 cn、us、hk,示例 cn
  • l:语言,例如 schinese、tchinese、english,示例 schinese

返回字段

  • id(number):Steam AppID
  • type(string):应用类型,上游原样返回。常见值:game 游戏,dlc 追加内容,demo 试玩版,music 原声音乐,video 视频,mod 模组,hardware 硬件
  • name(string):名称(语言由参数 l 决定,没有该语言时为原名)
  • isFree(boolean):是否为本体免费的游戏(如免费游玩的网游)。限时 100% 折扣的游戏这里仍为 false,要看 price.discountPercent
  • shortDescription(string):简短介绍(纯文本,已去掉 HTML 标签,语言由参数 l 决定);没有介绍时为空字符串
  • headerImage(string|null):460×215 头图链接;上游没有时为 null
  • capsuleImage(string|null):231×87 小封面图链接;上游没有时为 null
  • website(string|null):游戏官网链接;开发者未填写时为 null
  • developers(array):开发商名称(字符串数组),可能为空数组
  • publishers(array):发行商名称(字符串数组),可能为空数组
  • price(object|null):当前地区(参数 cc)的价格;本体免费、尚未发售或该地区不可购买时为 null
  • price.currency(string):货币代码(ISO 4217,如 CNY、USD),由参数 cc 决定
  • price.initial(number):原价,单位为货币主单位(人民币即元,不是分),如 298 表示 ¥298.00
  • price.final(number):现价(折后价),单位为货币主单位(人民币即元,不是分),如 178.8 表示 ¥178.80;限时免费时为 0
  • price.discountPercent(number):折扣百分比,0~100 的整数,表示减免的比例(40 表示减 40%,即打六折);0 表示未打折
  • price.initialFormatted(string|null):原价的格式化字符串,带货币符号,如 ¥ 298.00;未打折时 Steam 不给原价文本,此时与 finalFormatted 相同
  • price.finalFormatted(string|null):现价的格式化字符串,带货币符号,如 ¥ 178.80;上游没有给出时为 null
  • platforms(object):支持的操作系统;上游没有给出时为空对象 {}
  • platforms.windows(boolean):是否支持 Windows
  • platforms.mac(boolean):是否支持 macOS
  • platforms.linux(boolean):是否支持 Linux / SteamOS
  • metacritic(number|null):Metacritic 媒体评分(0~100);没有评分时为 null
  • recommendations(number|null):Steam 用户评测总数(上游 recommendations.total);没有数据时为 null
  • genres(array):游戏类型(字符串数组,语言由参数 l 决定,如 动作、角色扮演),可能为空数组
  • categories(array):功能分类(字符串数组,语言由参数 l 决定,如 单人、多人、Steam 成就),可能为空数组
  • releaseDate(string|null):发行日期,Steam 按语言 l 显示的原文(如 l=schinese 时为 2022 年 2 月 25 日),不是标准日期格式,未发售的游戏可能是"即将推出"之类的文字;上游为空时为 null
  • comingSoon(boolean):是否尚未发售:true 为即将推出,false 为已发售
  • screenshots(array):截图原图链接(字符串数组,通常为 1920×1080),最多 8 张,可能为空数组
  • supportedLanguages(string|null):支持的语言,逗号分隔,带 * 的表示有完整音频支持(如 英语*, 简体中文*, 日语*);上游没有给出时为 null
  • url(string):Steam 商店页面链接,如 https://store.steampowered.com/app/1245620/

按关键词搜索 Steam 商店

GET /api/steam/search

请求参数

  • q(必填):搜索关键词,示例 艾尔登法环
  • cc:商店地区代码(决定价格货币),例如 cn、us、hk,示例 cn
  • l:语言,例如 schinese、tchinese、english,示例 schinese

返回字段

  • total(number):匹配的结果数(上游 total,上游缺失时为 items 的长度)
  • items(array):搜索结果,按 Steam 的相关度排序;没有结果时为空数组
  • items[].type(string):条目类型,上游原样返回,通常为 app(游戏/应用);为 sub 时表示礼包(package)
  • items[].id(number):Steam 数字 ID:type 为 app 时是 AppID,可用于 /api/steam/app 和 /api/steam/players
  • items[].name(string):名称(语言由参数 l 决定,没有该语言时为原名)
  • items[].image(string|null):231×87 小封面图链接;上游没有时为 null
  • items[].price(object|null):当前地区(参数 cc)的价格;免费游戏或该地区不可购买时为 null
  • items[].price.currency(string):货币代码(ISO 4217,如 CNY、USD),由参数 cc 决定
  • items[].price.initial(number):原价,单位为货币主单位(人民币即元,不是分),如 298 表示 ¥298.00
  • items[].price.final(number):现价(折后价),单位为货币主单位(人民币即元,不是分),如 178.8 表示 ¥178.80
  • items[].metascore(number|null):Metacritic 媒体评分(0~100);没有评分时为 null
  • items[].platforms(object):支持的操作系统;上游没有给出时为空对象 {}
  • items[].platforms.windows(boolean):是否支持 Windows
  • items[].platforms.mac(boolean):是否支持 macOS
  • items[].platforms.linux(boolean):是否支持 Linux / SteamOS
  • items[].url(string):Steam 商店页面链接:type 为 sub 时是 /sub/<id>/,其余为 /app/<id>/

查询 Steam 游戏当前在线人数

GET /api/steam/players

请求参数

  • id(必填):Steam AppID,示例 570

返回字段

  • id(number):查询的 Steam AppID(即请求参数 id)
  • players(number):当前在线人数(Steam 官方实时统计;本接口缓存 1 分钟)