如何通过Steam API获取Steam市场道具买卖挂单的JSON格式数据
Steam市场道具买卖挂单数据获取方案
可行实现方法
- 方式1:解析商品页面内嵌JSON
访问目标道具的市场详情页,URL格式为https://steamcommunity.com/market/listings/{appid}/{market_hash_name},请求时需要携带已登录Steam账号的steamLoginSecureCookie。页面源码内会嵌入全局JS变量g_rgItemOrders,该变量存储的就是完整的实时买卖挂单数据,通过正则匹配提取g_rgItemOrders = (.*?);中的JSON片段解析即可,其中buy_order_graph字段为买单队列,sell_order_graph为卖单队列,每条数据包含价格、对应价格的挂单数量、累计挂单量三个核心属性,和价格历史接口的返回格式逻辑一致。 - 方式2:调用itemordershistogram接口
直接请求Steam未公开的挂单接口,URL格式如下:https://steamcommunity.com/market/itemordershistogram?country=CN¤cy=1&appid={替换为目标appid}&market_hash_name={替换为道具的URL编码名称}&language=schinese
该接口无需解析HTML,直接返回JSON格式的挂单数据,和页面内嵌的g_rgItemOrders内容完全一致,请求时同样需要携带合法的Steam登录Cookie,避免返回空数据或权限错误。
原有接口无法使用的原因
你之前尝试的两个接口本身就不包含挂单数据:
pricehistory接口仅返回道具的历史成交价格走势统计,不含实时挂单信息render接口用于分页加载当前在售的具体商品条目,仅返回挂牌商品的卖家、价格、道具属性等信息,不包含汇总的挂单队列数据
注意事项
- Steam市场接口有请求频率限制,建议每分钟请求次数不超过20次,否则会触发IP临时封禁,封禁时长从几分钟到数小时不等
- 请求时携带的Cookie所属账号区域、
country参数、currency参数需要保持一致,否则可能返回货币单位错误或空数据
内容的提问来源于stack exchange,提问作者Luci Gonzalez
相关产品推荐
相关产品推荐

