鸣潮小组件数据

October 30, 2025 · View on GitHub

注意这里同一个 API 有两套请求参数, 分别用于库街区内数据终端页面和桌面小组件数据更新, 但是响应参数一致, 下文都有说明

更新时间: 2025.01.13

请求地址

库街区内: https://event.kurobbs.com/gamer/widget/game3/getData 又改回去了 小组件: https://api.kurobbs.com/gamer/widget/game3/getData 小组件: https://api.kurobbs.com/gamer/widget/game3/refresh 两接口地址的请求参数与返回内容相同,但refresh返回的数据更准确点

请求方式

POST

认证方式

token

请求头

注意请求头有两套, 此处为库街区内角色信息页面的参数, 类似浏览器环境, 用于更新小组件的请求头请看 参数总结 中的例子

字段类型内容备注
pragmastr-no-cache
cache-controlstr-no-cache
sec-ch-uastr-"Not)A;Brand";v="99", "Android WebView";v="127", "Chromium";v="127"
sourcestr-android
sec-ch-ua-mobilestr1?1
user-agentstrUAMozilla/5.0 (Linux; Android 14; 23127PN0CC Build/UKQ1.230804.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/127.0.6533.2 Mobile Safari/537.36 Kuro/2.2.0 KuroGameBox/2.2.0
content-typestr-application/x-www-form-urlencoded
acceptstr-application/json, text/plain, */*
devcodestr-61.178.245.214, Mozilla/5.0 (Linux; Android 14; 23127PN0CC Build/UKQ1.230804.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/127.0.6533.2 Mobile Safari/537.36 Kuro/2.2.0 KuroGameBox/2.2.0
tokenstrtokeneyJhbGciOiJIUzI1NiJ9.eyJjcmVhdGVkIjoxNjg5NDk4MDkxMjQ1LCJ1c2VySWQiOjEwMDY1NjY5fQ.AAAA_AAAAAAAAAAAAAAAAAAAAAAAAAAA-AAAAAAAAAA
sec-ch-ua-platformstr-"Android"
originstrhttps://web-static.kurobbs.com
sec-fetch-sitestrsame-site
sec-fetch-modestrcors
sec-fetch-deststrempty
accept-encodingstrgzip, deflate, br, zstd
accept-languagestrzh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
prioritystr(?)u=1, i

请求体

字符串拼接, 注意两套请求也有不同

字段类型内容备注
gameIdnum游戏 id仅库街区页面内请求携带, 固定 鸣潮 = 3, 但不校验, 不必须
roleIdnum游戏角色 id仅库街区页面内请求携带, 需要同时携带正确的 serverId
不携带 serverId 将返回默认角色数据, serverId 错误将返回全 null 数据
roleId不存在或者未绑定或者错误都会返回 code = 6001, msg = 暂无数据,\n请漂泊者绑定角色后查看。
serverIdnum游戏区服 id仅库街区页面内请求携带, 不携带则返回默认角色数据
国服 = 76402e5b20be2c39f095a152090afddc, 国际服每个区服都不一样未记录
typenum?库街区内为 2, 更新卡片为 1, 不校验, 不必须
sizeTypenum?库街区内为 1, 更新卡片为 2, 不校验, 不必须

响应体

json, 两个渠道响应完全一致

注意库洛的傻逼服务器有时候返回的时间可能不对, 此时请根据 data.serverTime 推算其他时间戳

根对象

字段类型内容备注
codenum返回值220: token 失效
200: 成功
msgstr提示信息请求成功
successbooltrue/falsetoken 有效时才有
dataarr详细信息详细数据, 或者 null

data成员对象

字段类型内容备注
gameIdnum游戏 id固定 鸣潮 = 3
userIdnum库街区 id10065669
serverTimenum十位数服务器时间戳1719475203
serverIdstr服务器 id国服 = 76402e5b20be2c39f095a152090afddc, 国际服每个区服都不一样未记录
serverNamestr服务器名称鸣潮
signInUrlstr/null签到页面链接, 已完成签到就是 nullhttps://web-static.kurobbs.com/events2.0/index.html#/mc-month-sign/home
signInTxtstr签到提示已完成签到/前往签到
hasSignInbool是否已签到true/false
roleIdstr角色 id101812955
roleNamestr角色昵称首席
energyDataobj结晶波片数据这几个对象结构一致
livenessDataobj每日活跃数据这几个对象结构一致
storeEnergyDataobj结晶单质这几个对象结构一致
towerDataobj逆境深塔·深境区这几个对象结构一致
slashTowerDataobj冥歌海墟·禁忌海域这几个对象结构一致
weeklyDataobj战歌重奏这几个对象结构一致
weeklyRougeDataobj千道门扉的异想这几个对象结构一致
battlePassDataarr其他经验数据这个数组对象和上面几个对象结构一致
actionRecoverSwitchbool角色昵称首席

energyData livenessData 对象 battlePassData 数组成员对象

字段类型内容备注
namestr名称结晶波片/活跃度...见下方示例数据
imgstr图标链接https://web-static.kurobbs.com/gamerdata/widget/game3/energy.png...见下方示例数据
keystr/null单位暂时均为 null
refreshTimeStampnum/null十位时间戳波片回满时间戳, 其他均为 null
expireTimeStampnum/null十位时间戳资源过期时间戳, 暂时均为 null
valuenullnull
statusnum状态暂时均为 0
curnum当前数量146
totalnum最大数量240

示例

请求

const url = 'https://api.kurobbs.com/gamer/widget/game3/getData'
const headers = {
    pragma: 'no-cache',
    cache-control: 'no-cache',
    sec-ch-ua: '"Not)A;Brand";v="99", "Android WebView";v="127", "Chromium";v="127"',
    source: 'android',
    sec-ch-ua-mobile: '?1',
    user-agent: 'Mozilla/5.0 (Linux; Android 14; 23127PN0CC Build/UKQ1.230804.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/127.0.6533.2 Mobile Safari/537.36 Kuro/2.2.0 KuroGameBox/2.2.0',
    content-type: 'application/x-www-form-urlencoded',
    accept: 'application/json, text/plain, */*',
    devcode: '61.178.245.214, Mozilla/5.0 (Linux; Android 14; 23127PN0CC Build/UKQ1.230804.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/127.0.6533.2 Mobile Safari/537.36 Kuro/2.2.0 KuroGameBox/2.2.0',
    token: 'eyJhbGciOiJIUzI1NiJ9.eyJjcmVhdGVkIjoxNjg5NDk4MDkxMjQ1LCJ1c2VySWQiOjEwMDY1NjY5fQ.AAAA_AAAAAAAAAAAAAAAAAAAAAAAAAAA-AAAAAAAAAA',
    sec-ch-ua-platform: ''"Android"',
    origin: 'https://web-static.kurobbs.com',
    sec-fetch-site: 'same-site',
    sec-fetch-mode: 'cors',
    sec-fetch-dest: 'empty',
    accept-encoding: 'gzip, deflate, br, zstd',
    accept-language: 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
    priority: 'u=1, i',
}

const formData = new URLSearchParams()
formData.append('gameId', 3)
formData.append('roleId', '101812955')
formData.append('serverId', '76402e5b20be2c39f095a152090afddc')
formData.append('sizeType', 1)
formData.append('type', 2)
try {
    const response = await fetch(url, {
        method: 'POST',
        headers: headers,
        body: formData,
    })

    if (!response.ok) {
        console.error('fetch error: ', response.status, response.statusText)
    }

    const rsp = await response.json()

    if (rsp.code === 200) {
        console.info('api rsp:', JSON.stringify(rsp))
    } else {
        console.error('api error:', JSON.stringify(rsp))
    }
} catch (error) {
    console.error('fetch error:', error)
}

响应

{
  "code": 200,
  "msg": "请求成功",
  "data": {
    "gameId": 3,
    "userId": 10065669,
    "serverTime": 1719475326,
    "serverId": "76402e5b20be2c39f095a152090afddc",
    "serverName": "鸣潮",
    "signInUrl": null,
    "signInTxt": "已完成签到",
    "hasSignIn": true,
    "roleId": "101812955",
    "roleName": "首席",
    "energyData": {
      "name": "结晶波片",
      "img": "https://web-static.kurobbs.com/gamerdata/widget/game3/energy.png",
      "key": null,
      "refreshTimeStamp": 1719508373,
      "expireTimeStamp": null,
      "value": null,
      "status": 0,
      "cur": 146,
      "total": 240
    },
    "livenessData": {
      "name": "活跃度",
      "img": "https://web-static.kurobbs.com/gamerdata/widget/game3/liveness.png",
      "key": null,
      "refreshTimeStamp": null,
      "expireTimeStamp": null,
      "value": null,
      "status": 0,
      "cur": 100,
      "total": 100
    },
    "storeEnergyData": {
      "name": "结晶单质",
      "img": "https://web-static.kurobbs.com/gamerdata/widget/game3/storeEnergy.png",
      "key": null,
      "value": null,
      "status": 0,
      "cur": 345,
      "total": 480,
      "refreshTimeStamp": 0,
      "timePreDesc": null,
      "expireTimeStamp": 0
    },
    "towerData": {
      "name": "逆境深塔·深境区",
      "img": "https://web-static.kurobbs.com/gamerdata/widget/game3/tower.png",
      "key": null,
      "value": null,
      "status": 0,
      "cur": 12,
      "total": 36,
      "refreshTimeStamp": 1762718400,
      "timePreDesc": "深境区",
      "expireTimeStamp": 0
    },
    "slashTowerData": {
      "name": "冥歌海墟·禁忌海域",
      "img": "https://web-static.kurobbs.com/gamerdata/widget/game3/slashTower.png",
      "key": null,
      "value": "奖励进度:暂无数据",
      "status": 1,
      "cur": 0,
      "total": 0,
      "refreshTimeStamp": 1761508800,
      "timePreDesc": "再生海域",
      "expireTimeStamp": 0
    },
    "weeklyData": {
      "name": "战歌重奏",
      "img": "https://web-static.kurobbs.com/gamerdata/widget/game3/weekly.png",
      "key": null,
      "value": null,
      "status": 0,
      "cur": 0,
      "total": 3,
      "refreshTimeStamp": 0,
      "timePreDesc": null,
      "expireTimeStamp": 0
    },
    "weeklyRougeData": {
      "name": "千道门扉的异想",
      "img": "https://web-static.kurobbs.com/gamerdata/widget/game3/weekly.png",
      "key": null,
      "value": null,
      "status": 0,
      "cur": 6000,
      "total": 6000,
      "refreshTimeStamp": 0,
      "timePreDesc": null,
      "expireTimeStamp": 0
    },
    "battlePassData": [
      {
        "name": "电台等级",
        "img": null,
        "key": null,
        "refreshTimeStamp": null,
        "expireTimeStamp": null,
        "value": null,
        "status": 0,
        "cur": 0,
        "total": 0
      },
      {
        "name": "本周经验",
        "img": null,
        "key": null,
        "refreshTimeStamp": null,
        "expireTimeStamp": null,
        "value": null,
        "status": 0,
        "cur": 0,
        "total": 0
      }
    ]
  },
  "success": true
}