适用场景王者荣耀全国战力查询 API 为开发者提供了一套标准化的接口可以获取以下两类核心数据英雄列表返回 130 个英雄的中文名、ename数字 ID、称号、头像 URL 等元信息可用于构建英雄选择器或数据展示 UI。战力分布数据针对指定英雄和区服Android QQ / Android 微信 / iOS QQ / iOS 微信查询其在全国各省、市、区的战力排名分布约 90 条记录支持返回完整列表、仅最低战力相近排名或仅最高战力相近排名。典型应用包括开发“国服战力查询”小程序或公众号用户输入英雄和区服即可查看所在省份的门槛战力。爬取多个英雄的历史战力数据用于分析版本强度变化或制作数据报告。在游戏社群工具中集成战力对比功能辅助玩家决策。接口能力边界请求方式GET基准地址https://v1.apizero.cn/api/wzry速率限制5 QPS每秒请求数超出后可能返回 429 状态码或限流提示具体以服务端实际行为为准。数据新鲜度响应中包含syn_date字段如2026-05-06表示该数据的同步日期并非实时数据通常为每日或每周更新请勿期望秒级实时。查询范围actionquery时返回约 90 条省/市/区级记录覆盖主要地区和部分相近排名完整榜单可能受限于官方数据源。请求参数详解Query 参数参数名必填类型说明示例值action是string操作类型heroes获取英雄列表query获取战力查询queryhero否string英雄中文名如赵云与hero_id二选一actionquery时必传其一赵云hero_id否number英雄 ename如赵云为107与hero二选一若同时提供则hero_id优先级更高107zone否string区服代码aqq Android QQ,awx Android 微信,iqq iOS QQ,iwx iOS 微信actionquery时必填aqqtype否string返回类型all完整列表默认min仅最低战力及相近排名max仅最高战力及相近排名min注意当actionheroes时只需传入action参数其余参数会被忽略。Header 参数参数名必填类型说明示例值Authorization否stringAPI Key 鉴权头格式Bearer sk_live_xxx匿名调用时每日有调用次数限制具体以文档为准Bearer sk_live_xxxxxxxxxxxxxx鉴权方式也支持通过X-API-Key头传递两种方式二选一。匿名调用可省略鉴权头但每日配额有限超出后可能返回 403 或 429。建议在生产环境使用 API Key 以避免中断。curl 请求示例获取英雄列表curl -sS -X GET \ -H Authorization: Bearer YOUR_API_KEY \ https://v1.apizero.cn/api/wzry?actionheroes查询战力匿名调用curl -sS -X GET \ https://v1.apizero.cn/api/wzry?actionqueryhero赵云zoneaqqtypemin查询战力带鉴权curl -sS -X GET \ -H Authorization: Bearer YOUR_API_KEY \ https://v1.apizero.cn/api/wzry?actionqueryhero_id107zoneiwxtypemaxPython 代码接入示例以下 Python 脚本演示如何先获取英雄列表再查询某个英雄的最低战力分布。import requests BASE_URL https://v1.apizero.cn/api/wzry API_KEY sk_live_xxxxxxxxxxxxxx # 可选 HEADERS {} if API_KEY: HEADERS[Authorization] fBearer {API_KEY} # 1. 获取英雄列表 params {action: heroes} resp requests.get(BASE_URL, paramsparams, headersHEADERS) heroes_data resp.json() if heroes_data.get(code) 0: hero_list heroes_data[data] # 打印前5个英雄 for hero in hero_list[:5]: print(f{hero[ename]} - {hero[cname]}{hero[title]}) else: print(获取英雄列表失败:, heroes_data.get(msg)) exit(1) # 2. 查询赵云ename107在 Android QQ 区的最低战力 params { action: query, hero_id: 107, zone: aqq, type: min } resp requests.get(BASE_URL, paramsparams, headersHEADERS) query_result resp.json() if query_result.get(code) 0: data query_result[data] print(f英雄{data[hero][name]}) print(f区服{data[zone][system]} {data[zone][platform]}) print(f数据类型{data[type]}) print(f数据日期{data[syn_date]}) rank_data data[rank_data] extreme rank_data.get(extreme, {}) for level in [province, city, district]: if level in extreme: info extreme[level] print(f{level}: {info[address]}战力 {info[rank]}) similar rank_data.get(similar, {}) for level in [province, city, district]: items similar.get(level, []) for item in items: print(f相近 {level}: {item[address]}战力 {item[rank]}) else: print(查询失败:, query_result.get(msg))注意实际返回的数据结构可能因type参数而异务必根据响应中的type_code进行解析。返回字段解读以下是actionquery且typemin时的 JSON 结构示例已脱敏{ code: 0, msg: 成功, request_id: abc123def456, data: { action: query, hero: { avatar: https://game.gtimg.cn/images/yxzj/img201606/heroimg/107/107.jpg, ename: 107, name: 赵云, title: 苍天翔龙 }, rank_data: { extreme: { province: { adcode: 530000, address: 云南, level: province, rank: 4500 }, city: { adcode: 460200, address: 海南/三亚市, level: city, rank: 1800 }, district: { adcode: 110105, address: 北京/朝阳区, level: district, rank: 800 } }, similar: { province: [ { address: 云南, rank: 4500 }, { address: 甘肃, rank: 4520 } ], city: [], district: [] } }, syn_date: 2026-05-06, type: 最低战力, type_code: min, zone: { code: aqq, platform: QQ, system: Android } } }关键字段说明路径类型含义codeint业务状态码0 表示成功非 0 表示异常msgstring状态描述request_idstring本次请求的唯一标识可用来排查问题data.heroobject英雄基本信息name、ename、title、avatardata.rank_data.extremeobject各级province/city/district的战力极值当 typemin 时为最低战力typemax 时为最高战力data.rank_data.extreme.province.ranknumber省级战力数值国服最低/最高data.rank_data.similarobject与极值战力相近的排名列表keys 为province/city/district值为数组可能为空data.syn_datestring数据同步日期格式YYYY-MM-DDdata.type_codestring返回类型all、min、max与请求参数一致data.zoneobject区服信息包含 code、platform、system当typeall时rank_data的结构会不同不再有extreme和similar而是直接返回一个约 90 项的数组按 level 混合排列。建议根据type_code动态解析。常见错误处理HTTP 状态码可能原因处理建议200code≠0参数错误、鉴权失败、限流查看msg字段确定具体错误如缺少必要参数、无权限访问、请求过于频繁400请求格式错误如无效参数值检查是否传入了非法字符或类型不匹配403鉴权失败或匿名用户超出每日限额检查 API Key 是否正确或等待配额重置429请求频率超限QPS 5实现指数退避重试或将请求分散到不同时间片5xx服务端内部错误可重试若持续失败需联系 API 提供方参数校验注意事项hero和hero_id只能二选一同时传时以hero_id为准。zone必须为aqq/awx/iqq/iwx之一否则返回错误。英雄名称必须与官方完全一致如“赵云”不能写作“赵子龙”建议先调用actionheroes获取合法名称列表。工程化注意事项缓存策略英雄列表变化频率极低基本只在版本更新时增加新英雄建议本地缓存至少 24 小时。战力数据建议缓存 1 小时以上避免频繁请求被限流。限速与重试QPS 限制为 5并发请求时需加锁或使用令牌桶控制。推荐使用retry库在遇到 429 或 5xx 时自动重试最多 3 次间隔 1s、2s、4s。请求 ID 记录每次请求的request_id应记录到日志方便排查问题。参数安全避免直接将用户输入拼接到 URL 中应先进行校验或使用 URL 编码。数据分页actionquery目前不提供分页参数若需获取全部记录如typeall时返回约 90 条直接使用即可。跨平台兼容不同区服的战力数据独立查询时需明确用户选择的区服。实战示例构建一个简易战力查询 CLI以下是一个使用 Python 和 argparse 的命令行工具接受英雄名称、区服、类型参数输出简要结果import argparse import requests import json API_URL https://v1.apizero.cn/api/wzry def main(): parser argparse.ArgumentParser(description王者荣耀战力查询 CLI) parser.add_argument(--hero, requiredTrue, help英雄中文名) parser.add_argument(--zone, requiredTrue, choices[aqq,awx,iqq,iwx], help区服代码) parser.add_argument(--type, defaultmin, choices[all,min,max], help返回类型) parser.add_argument(--key, default, helpAPI Key (可选)) args parser.parse_args() headers {} if args.key: headers[Authorization] fBearer {args.key} params { action: query, hero: args.hero, zone: args.zone, type: args.type } resp requests.get(API_URL, paramsparams, headersheaders) if resp.status_code ! 200: print(fHTTP {resp.status_code}: {resp.text}) return data resp.json() if data.get(code) ! 0: print(f业务错误: {data.get(msg)}) return info data[data] print(f\n{info[hero][name]} - {info[zone][system]} {info[zone][platform]}) print(f数据日期: {info[syn_date]}) rank_data info[rank_data] if args.type ! all: extreme rank_data.get(extreme, {}) for level in [province,city,district]: if level in extreme: item extreme[level] print(f{level}: {item[address]} - 战力 {item[rank]}) similar rank_data.get(similar, {}) for level in [province,city,district]: items similar.get(level, []) if items: print(f相近 {level}: {, .join([f{i[address]}({i[rank]}) for i in items])}) else: # all 类型直接输出列表数量 items rank_data.get(list, []) print(f共 {len(items)} 条记录) for item in items[:5]: # 显示前5条 print(f {item[address]} - {item[rank]}) if __name__ __main__: main()使用方法python wzry_cli.py --hero 赵云 --zone aqq --type min参考文档接口文档页原始 Markdown 文档官方英雄列表源https://pvp.qq.com/web201605/js/herolist.json仅做参考本接口已聚合