直播间用户实用 API

获取用户持有的粉丝勋章信息

https://api.live.bilibili.com/fans_medal/v5/live_fans_medal/iApiMedal (旧) https://api.live.bilibili.com/xlive/app-ucenter/v1/user/GetMyMedals

请求方式:GET

认证方式:Cookie(SESSDATA)或 APP

url 参数:

参数名类型内容必要性备注
page_sizenum每页的数量必要最大为 10,超出 1002002:参数异常
pagenum返回结果页数必要两个参数不填返回空,只 page 不填或错误则 500 异常

json 回复:

根对象:

字段类型内容备注
codenum返回值0:成功
-1002002:参数异常
-500:服务器异常
messagestr错误信息默认为 "0"
ttlnum1
dataobj信息本体

data对象:

字段类型内容备注
countnum勋章数量
itemsarray粉丝勋章信息本体
page_infoobj页码信息

items数组中的对象:

字段类型内容备注
can_deletebool可否删除
day_limitnum日经验上限(原力值)eg: 1500
guard_levelnum
guard_medal_titlestr加成状态
intimacynum当前已得亲密度
is_lightednum是否点亮0:未点亮
1:点亮
levelnum勋章等级
medal_namestr勋章名
medal_color_bordernum勋章边框颜色信息颜色数值为 10 进制的 16 进制值(下同)
medal_color_startnum勋章起始颜色从右往左渐变(20 级+勋章)
medal_color_endnum勋章结束颜色从右往左渐变(20 级+勋章)
medal_idnum粉丝勋章 id
next_intimacynum升级所需经验
today_feednum本日亲密度
roomidnum直播间房间号
statusnum
target_idnumberup 主 mid
target_namestrup 主用户名
unamestrup 主用户名

page_info对象:

字段类型内容备注
total_pagenum页码总长度
cur_pagenum当前返回的页码

示例:

curl https://api.live.bilibili.com/xlive/app-ucenter/v1/user/GetMyMedals?page=1&page_size=10 \
-b "SESSDATA=xxx"
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "items": [
      {
        "can_deleted": true,
        "day_limit": 1500,
        "guard_level": 0,
        "guard_medal_title": "未开启加成",
        "intimacy": 9617,
        "is_lighted": 0,
        "level": 11,
        "medal_name": "锦依卫",
        "medal_color_border": 12632256,
        "medal_color_end": 12632256,
        "medal_color_start": 12632256,
        "medal_id": 29245,
        "next_intimacy": 10000,
        "today_feed": 0,
        "roomid": 1546736,
        "status": 0,
        "target_id": 36081646,
        "target_name": "洛天依",
        "uname": "洛天依"
      }
    ],
    "page_info": {
      "cur_page": 1,
      "total_page": 1
    },
    "count": 1
  }
}

佩戴勋章

https://api.live.bilibili.com/xlive/web-room/v1/fansMedal/wear

请求方式:POST

表单参数:

参数名类型内容必要性备注
medal_idnum勋章 id必要
csrfnumcookie 中 bili_jct 字段必要
csrf_tokennum同上必要

json 回复:

根对象:

字段类型内容备注
codenum返回值0:成功
ttlnum1
messagestr错误信息默认为佩戴成功
dataobj信息本体默认为无

示例:

佩戴勋章 id 为 1 的勋章

var madelForm = new FormData();
madelForm.append("medal_id", 1);
madelForm.append("csrf", bili_jct);
madelForm.append("csrf_token", bili_jct);
$.ajax({
    url: "https://api.live.bilibili.com/xlive/web-room/v1/fansMedal/wear",
    type: "POST",
    data: madelForm,
    dataType: "JSON",
    processData: false,
    contentType: false,
    cache: false,
    xhrFields: {
        withCredentials: true
    },
    success: function (){

    }
})
查看响应示例:
{
  "code": 0,
  "message": "佩戴成功",
  "ttl": 1,
  "data": {}
}

直播签到

https://api.live.bilibili.com/xlive/web-ucenter/v1/sign/DoSign

请求方式:GET

认证方式:Cookie(SESSDATA)或 APP

json 回复:

根对象:

字段类型内容备注
codenum返回值0:成功
1:参数错误
ttlnum1
messagestr错误信息默认为当日签到奖励内容
dataobj信息本体默认为空

本月直播签到信息

https://api.live.bilibili.com/xlive/web-ucenter/v1/sign/WebGetSignInfo

请求方式:GET

认证方式:Cookie(SESSDATA)或 APP

json 回复:

根对象:

字段类型内容备注
codenum返回值0:成功
ttlnum1
messagestr错误信息默认为0
dataobj信息本体

data对象:

字段类型内容备注
textstr今日签到奖励信息默认为空
specialTextstr连续签到奖励信息默认为空
statusnum签到状态0:未签到
1:已签到
allDaysnum当月天数
curMonthnum当前月
curYearnum当前年
curDaynum当前日
curDatastr当前日期(格式化)eg: 2023-2-19
hadSignDaysnum当月已签到天数默认为0
newTasknum作用未知默认为0
signDaysListarray当月已签到日列表默认为空
signBonusDaysListarray当月已签到且有特殊奖励日列表默认为空
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "text": "3000点用户经验,2根辣条",
        "specialText": "再签到7天可以获得50根辣条",
        "status": 1,
        "allDays": 28,
        "curMonth": 2,
        "curYear": 2023,
        "curDay": 19,
        "curDate": "2023-2-19",
        "hadSignDays": 13,
        "newTask": 0,
        "signDaysList": [
            2,
            3,
            4,
            5,
            6,
            7,
            11,
            13,
            14,
            15,
            17,
            18,
            19
        ],
        "signBonusDaysList": [
            6
        ]
    }
}

上月直播签到信息

https://api.live.bilibili.com/sign/getLastMonthSignDays

请求方式:GET

认证方式:Cookie(SESSDATA)或 APP

json 回复:

根对象:

字段类型内容备注
codenum返回值0:成功
ttlnum1
messagestr错误信息默认为0
dataobj信息本体

data对象:

字段类型内容备注
daysnum上月天数
monthnum上月月份值
hadSignDaysnum上月已签到天数默认为0
signDaysListarray上月已签到日列表默认为空
signBonusDaysListarray上月已签到且有特殊奖励日列表默认为空
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "month": 1,
        "days": 31,
        "hadSignDays": 20,
        "signDaysList": [
            1,
            2,
            3,
            6,
            7,
            8,
            10,
            12,
            13,
            14,
            15,
            18,
            20,
            23,
            24,
            25,
            26,
            27,
            30,
            31
        ],
        "signBonusDaysList": [
            7,
            31
        ]
    }
}