操作

提交答题

提交基础题

https://api.bilibili.com/x/answer/v4/base/check

请求方式:POST

认证方式:APP或Cookie(SESSDATA)

正文参数( application/x-www-form-urlencoded ):

参数名类型内容必要性备注
question_idnum题目id必要拉取基础题api获得
ans_hashstr选项hash必要拉取基础题api获得
csrfstrCSRF Token(位于cookie)Cookie方式必要

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功
-101:账号未登录
-400:请求错误
41014:答题过快或错误太多
41012:用户答题提交题目id不合法
41020:用户基础题已通过
41023:用户答题记录不存在
messagestr错误信息默认为0
ttlnum1
dataobj信息本体

data对象:

字段类型内容备注
passedbool选项是否正确true:选项正确
false:选项错误

示例:

提交题目id为104的题,选项hash为cb4c8cc9424fc771f7c1598e74de498f

curl 'https://api.bilibili.com/x/answer/v4/base/check' \
--data-urlencode 'question_id=104' \
--data-urlencode 'ans_hash=cb4c8cc9424fc771f7c1598e74de498f' \
--data-urlencode 'csrf=xxxx' \
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "passed": true
    }
}

提交附加题

https://api.bilibili.com/x/answer/v4/base/check

请求方式:POST

认证方式:APP或Cookie(SESSDATA)

正文参数( application/x-www-form-urlencoded ):

参数名类型内容必要性备注
question_idnum题目id必要拉取基础题api获得
ans_hashstr选项hash必要拉取基础题api获得
csrfstrCSRF Token(位于cookie)Cookie方式必要

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功
-101:账号未登录
-400:请求错误
41014:答题过快或错误太多
41012:用户答题提交题目id不合法
41023:用户答题记录不存在
messagestr错误信息默认为0
ttlnum1
dataobj信息本体

data对象:

字段类型内容备注
passedbool选项是否正确true:选项正确
false:选项错误

示例:

提交题目id为104的题,选项hash为cb4c8cc9424fc771f7c1598e74de498f

curl 'https://api.bilibili.com/x/answer/v4/base/check' \
--data-urlencode 'question_id=104' \
--data-urlencode 'ans_hash=cb4c8cc9424fc771f7c1598e74de498f' \
--data-urlencode 'csrf=xxxx' \
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "passed": true
    }
}

提交自选题

https://api.bilibili.com/x/answer/v4/pro/check

请求方式:POST

认证方式:APP或Cookie(SESSDATA)

正文参数( application/x-www-form-urlencoded ):

参数名类型内容必要性备注
question_idnum题目id必要拉取基础题api获得
ans_hashstr选项hash必要拉取基础题api获得
csrfstrCSRF Token(位于cookie)Cookie方式必要

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功
-101:账号未登录
-400:请求错误
41014:答题过快或错误太多
41012:用户答题提交题目id不合法
41023:用户答题记录不存在
41026:获取用户DB题目信息异常
messagestr错误信息默认为0
ttlnum1
dataobj信息本体

data对象:

字段类型内容备注
passedbooltrue恒为true

示例:

提交题目id为2935的题,选项hash为ffd55cbe0624f466bee2ea3eb576a4d0

curl -G 'https://api.bilibili.com/x/answer/v4/pro/check' \
--data-urlencode 'question_id=2935' \
--data-urlencode 'ans_hash=ffd55cbe0624f466bee2ea3eb576a4d0' \
--data-urlencode 'csrf=xxxx' \
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "passed": true
    }
}

获取验证码

https://api.bilibili.com/x/answer/v4/captcha

请求方式:GET

认证方式:APP或Cookie(SESSDATA)

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功
-101:账号未登录
-400:请求错误
41010:用户答题非法访问
41014:答题过快或错误太多
41020:用户基础题已通过
41021:用户基础题未通过
messagestr错误信息默认为0
ttlnum1
dataobj信息本体

data对象:

字段类型内容备注
typestr验证码类型?geetest:极验
gtstr极验id
challengestr极验key
tokenstr(?)
urlstr(?)

示例:

curl 'https://api.bilibili.com/x/answer/v4/captcha' \
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "type": "geetest",
        "gt": "abc55d1fb914cb110cfb4c232a4b4c35",
        "challenge": "90a6e03e626e13ee186ddae0107c3ae2",
        "token": "",
        "url": ""
    }
}

提交验证码

https://api.bilibili.com/x/answer/v4/captcha/check

请求方式:POST

认证方式:APP或Cookie(SESSDATA)

注:

旧版edition=0同时提交自选题分类以及验证码

新版edition=2仅仅提交验证码

正文参数( application/x-www-form-urlencoded ):

参数名类型内容必要性备注
typesnums自选题分类(旧版)非必要新版不需要此字段
typestr验证码类型非必要
bilibili_tokenstr非必要
bilibili_codestr非必要
geetest_challengestr极验key非必要
geetest_seccodestr极验结果+|jordan非必要
geetest_validatestr极验结果非必要
csrfstrCSRF Token(位于cookie)Cookie方式必要

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功
-101:账号未登录
-105:验证码错误
-400:请求错误
41010:用户答题非法访问
41014:答题过快或错误太多
41021:用户基础题未通过
41031:自选题未通过
messagestr错误信息默认为0
ttlnum1

示例:

curl 'https://api.bilibili.com/x/answer/v4/captcha/check' \
--data-urlencode 'types=' \
--data-urlencode 'type=geetest' \
--data-urlencode 'bilibili_token=' \
--data-urlencode 'bilibili_code=' \
--data-urlencode 'geetest_challenge=3f809a7a9c51edca751fd26c032c182d' \
--data-urlencode 'geetest_seccode=513ec576a275a3eb250829202d4dce46|jordan' \
--data-urlencode 'geetest_validate=513ec576a275a3eb250829202d4dce46' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1
}

提交自选题分类

https://api.bilibili.com/x/answer/v4/pro/type/check

请求方式:POST

认证方式:APP或Cookie(SESSDATA)

正文参数( application/x-www-form-urlencoded ):

参数名类型内容必要性备注
typesnums自选题分类(新版)必要
csrfstrCSRF Token(位于cookie)Cookie方式必要

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功
-101:账号未登录
-400:请求错误
41010:用户答题非法访问
41014:答题过快或错误太多
41021:用户基础题未通过
41031:自选题未通过
41052:用户题目类型不合法
41055:基础附加题未通过
messagestr错误信息默认为0
ttlnum1

示例:

选择游戏 影视 科教/知识 动画/动漫分类

curl 'https://api.bilibili.com/x/answer/v4/pro/type/check' \
--data-urlencode 'types=1,2,3,4' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1
}

提前交卷

https://api.bilibili.com/x/answer/v4/submit

请求方式:POST

认证方式:APP或Cookie(SESSDATA)

当当前得分>=60时,可请求本接口提前完成答题

正文参数( application/x-www-form-urlencoded ):

参数名类型内容必要性备注
csrfstrCSRF Token(位于cookie)Cookie方式必要

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功
-101:账号未登录
-400:请求错误
41014:答题过快或错误太多
41023:用户答题记录不存在
41031:自选题未通过
messagestr错误信息默认为0
ttlnum1
dataobj信息本体

data对象:

字段类型内容备注
hidnum答题会话id
midnum答题用户mid
scorenum得分
statusnum0
numbernum0
resultstrsucceed
stagestrresult
versionstr版本目前为v4
start_timenum本次答题开始时间时间戳
first_answernum0
progressstr
textstr
urlstr
in_reg_auditbool
editionnum答题版本0:旧版(40+10+50)
2:新版(40+30+30)
rewardsnull
captchanum1

示例:

curl 'https://api.bilibili.com/x/answer/v4/submit' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxxx'
查看响应示例:
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "hid": 1623207905520705,
        "mid": 293793435,
        "score": 63,
        "status": 3,
        "number": 0,
        "result": "succeed",
        "stage": "result",
        "version": "v4",
        "start_time": 1636889218,
        "first_answer": 0,
        "progress": "",
        "text": "",
        "url": "",
        "in_reg_audit": false,
        "edition": 0,
        "rewards": null,
        "captcha": 1
    }
}