API
你的服务器数据,用在你自己的工具里。
面向 Premium 服务器的只读 API:在线玩家、当前对局、玩家、击杀和历史数据。密钥在 WARPANEL → 设置 → API 中创建。
接口 · warpanel.gg/api/v1只读
GET/v1/servers你的服务器当前状态(服务器浏览器)
GET/v1/server服务器当前状态
GET/v1/players玩家及其数据(排行榜)
GET/v1/players/{steamId}单个玩家
GET/v1/matches最近对局
GET/v1/events事件流(击杀和对局结果)
GET/v1/weapons武器
GET/v1/maps地图
GET/v1/totals总计(今天、本赛季、历史累计)
GET/v1/history历史和最热门时段
~❯curl -H "Authorization: Bearer $WARPANEL_API_KEY" https://warpanel.gg/api/v1/server
{
"server": {
"id": "x7k2p9",
"name": "[DOGS] Dog House EU | KOTK",
"joinCode": "ABCD1234",
"region": "eu-central",
"source": "rcon"
},
"online": true,
"players": {
"current": 58,
"max": 100
},
"match": {
"map": "Bakurani",
"lighting": "Day",
~❯
工作方式
- 01基于 HTTPS 的只读 JSON。基础 URL:https://warpanel.gg/api/v1
- 02认证:以
Authorization: Bearer wpk_…(或X-API-Key: wpk_…)发送密钥。密钥由服主在 WARPANEL → 设置 → API 中创建。服务器密钥只能读取一台服务器;网络密钥(仅限服主)可读取服主在 WARPANEL 中的所有服务器。 - 03网络密钥用 ?server=<id> 选择服务器(id 来自 GET /servers;也可以用 slug 或加入代码),或用 ?server=all 合并所有服务器(玩家按 Steam ID 合并)。不带 ?server 时,能合并的接口会合并(all),而 /server 会要求指定一台。服务器密钥可以省略 ?server。
- 04仅限 Premium 服务器。若创建密钥的服务器处于免费版,该密钥将停止响应(403 premium_required)。
- 05每个密钥每分钟 60 次请求。响应头:X-RateLimit-Limit、X-RateLimit-Remaining、X-RateLimit-Reset(秒)。超出限制:返回 429 并附带 Retry-After。
- 06我们这边会缓存:实时数据 10 秒、事件流 5 秒、统计数据 1–2 分钟、历史数据 10 分钟,所以更频繁地轮询没有意义。你那边也请做缓存(网站缓存 30–60 秒就足够了)。
- 07时间为 UTC 的 ISO 8601 格式。/totals 和 /history 接受 ?tz=(IANA 时区,如 Europe/Berlin),用于计算“今天”和最热门时段。Steam ID 为 17 位 SteamID64 字符串。阵营为 Valkyra(红)、Lonestar(蓝)和 Manticore(绿);一台服务器最多容纳 100 名玩家。
- 08在排行榜中隐藏自己的玩家不会出现在玩家列表中;在其他地方(实时列表、对局、事件)他们显示为“隐藏玩家”,steamId 为 null。
- 09GET 请求已开放 CORS,但请把密钥放在服务器端(后端路由、无服务器函数或 Cloudflare Worker)——浏览器 JavaScript 里的任何内容都能被每个访客看到。