知识题库

正常 NEW

知识题库查询服务,内置 80,908 道四选一题,覆盖中文成语释义、歇后语、唐诗/宋词填空与 19 类英文通用知识。支持分类/语言/难度筛选、分页列表、关键词搜索、随机出题、答题校验、批量查询。无第三方框架依赖,PDO 直连 MySQL。

协议:HTTP 格式:JSON 版本:v1.0.0日调用量:1268次
¥ 0.002 / 次
按次计费

健康检查

健康检查

调用方式:在接口地址后拼接 ?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
GET http://www.shujuyu.cn/v1/api/quiz/ping JSON

请求参数

参数名类型必填说明
key string 是 您的API密钥,可在个人中心获取

返回参数说明

参数名类型说明
code int 业务状态码,0 表示成功
msg string 提示信息,成功时为 pong
data object 业务数据对象
data.version string 服务版本号
data.time string 服务器当前时间
data.types array 支持的题型列表
data.difficulties array 支持的难度列表
data.langs array 支持的语言列表
data.page_size_max int 分页每页条数上限
data.random_max int 随机出题数量上限
data.batch_max int 批量查询条数上限

请求示例

返回示例

{"msg":"pong","code":0,"data":{"time":"2026-10-31 19:55:32","langs":["zh","en"],"types":["单选题","多选题","判断题"],"version":"1.0","batch_max":20,"random_max":20,"difficulties":["easy","medium","hard"],"page_size_max":20}}

数据统计

数据统计

调用方式:在接口地址后拼接 ?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
GET http://www.shujuyu.cn/v1/api/quiz/stats JSON

请求参数

参数名类型必填说明
key string 是 您的API密钥,可在个人中心获取

返回参数说明

参数名类型说明
code int 业务状态码,0 表示成功
msg string 提示信息,成功时为 success
data object 业务数据对象
data.total int 题目总数
data.categories int 分类数量
data.updated_at string 题库数据更新日期
data.by_lang object 按语言统计的题量
data.by_type object 按题型统计的题量

请求示例

返回示例

{"msg":"success","code":0,"data":{"total":80908,"by_lang":{"en":35357,"zh":45551},"by_type":{"单选题":80908},"categories":23,"updated_at":"2026-11-01"}}

分类列表

返回全部分类及题量(按固定顺序),客户端使用 slug 定位分类

调用方式:在接口地址后拼接 ?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
GET http://www.shujuyu.cn/v1/api/quiz/categories JSON

请求参数

参数名类型必填说明
key string 是 您的API密钥,可在个人中心获取

返回参数说明

参数名类型说明
code int 业务状态码,0 表示成功
msg string 提示信息,成功时为 success
data object 业务数据对象
data.total int 分类总数
data.list array 分类列表,含 slug、名称、语言与题量

请求示例

返回示例

{"msg":"success","code":0,"data":{"list":[{"lang":"zh","name":"成语释义","slug":"chengyu","total":26926,"name_en":"","description":"根据成语选择正确释义"}],"total":23}}

字段列表

返回可返回字段及中文标签、是否属于 brief 模式

调用方式:在接口地址后拼接 ?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
GET http://www.shujuyu.cn/v1/api/quiz/fields JSON

请求参数

参数名类型必填说明
key string 是 您的API密钥,可在个人中心获取

返回参数说明

参数名类型说明
code int 业务状态码,0 表示成功
msg string 提示信息,成功时为 success
data object 业务数据对象
data.list array 可返回字段列表,含中文标签与 brief 标记

请求示例

返回示例

{"msg":"success","code":0,"data":{"list":[{"brief":true,"field":"id","label":"ID"},{"brief":true,"field":"category","label":"分类标识"},{"brief":true,"field":"category_name","label":"分类名称"},{"brief":true,"field":"type","label":"题型"},{"brief":true,"field":"question","label":"题目内容"},{"brief":false,"field":"options","label":"选项"},{"brief":false,"field":"answer","label":"答案","requires":"with_answer"},{"brief":false,"field":"analysis","label":"解析","requires":"with_answer"},{"brief":false,"field":"difficulty","label":"难度"},{"brief":false,"field":"lang","label":"语言"}]}}

分页列表

分页列表

调用方式:在接口地址后拼接 ?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
GET http://www.shujuyu.cn/v1/api/quiz/list JSON

请求参数

参数名类型必填说明
key string 是 您的API密钥,可在个人中心获取
page int 否 页码
page_size int 否 每页条数,最大 20
category string 否 分类标识
type string 否 题型
difficulty string 否 难度
lang string 否 语言
brief bool 否 简洁模式
with_answer bool 否 是否返回答案与解析
fields string 否 返回字段
after_id int 否 游标分页:只返回 id > after_id 的记录;传此参数时忽略 page

返回参数说明

参数名类型说明
code int 业务状态码,0 表示成功
msg string 提示信息,成功时为 success
data object 业务数据对象
data.page int 当前页码
data.page_size int 每页条数
data.total int 符合筛选条件的题目总数
data.pages int 总页数
data.next_after_id int 下一页游标 ID,用于 after_id 翻页
data.list array 题目列表

请求示例

返回示例

{"msg":"success","code":0,"data":{"list":[{"id":35358,"lang":"zh","type":"单选题","options":{"A":"指相互勾结,相互偏袒,结党营私。","B":"辄即;咎过失,罪责。动不动就受到指摘或责难。","C":"眼睛象蜂,声音象豺。形容坏人的面貌声音。","D":"替老虎加上翅膀。比喻帮助坏人,增加恶人的势力。"},"category":"chengyu","question":"成语「阿党比周」的正确释义是?","difficulty":"medium","category_name":"成语释义"}],"page":1,"pages":13454,"total":26926,"page_size":2,"next_after_id":35359}}

题目详情

题目详情

调用方式:在接口地址后拼接 ?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
GET http://www.shujuyu.cn/v1/api/quiz/detail JSON

请求参数

参数名类型必填说明
key string 是 您的API密钥,可在个人中心获取
id int 是 题目 ID
brief bool 否 简洁模式
with_answer bool 否 是否返回答案与解析,默认 false
fields string 否 返回字段

返回参数说明

参数名类型说明
code int 业务状态码,0 表示成功
msg string 提示信息,成功时为 success
data object 业务数据对象
data.id int 题目 ID
data.category string 分类标识 slug
data.category_name string 分类中文名称
data.type string 题型,如单选题
data.question string 题干文本
data.options object 选项对象,键为 A-H,值为选项文本
data.difficulty string 难度等级 easy/medium/hard
data.lang string 题目语言 zh/en

请求示例

返回示例

{"msg":"success","code":0,"data":{"id":1,"lang":"en","type":"单选题","options":{"A":"Snake","B":"Frog","C":"Sloth","D":"Mouse"},"category":"animals","question":"Three of these animals hibernate. Which one does not?","difficulty":"medium","category_name":"动物世界"}}

关键词搜索

搜索策略:

调用方式:在接口地址后拼接 ?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
GET http://www.shujuyu.cn/v1/api/quiz/search JSON

请求参数

参数名类型必填说明
key string 是 您的API密钥,可在个人中心获取
keyword string 是 关键词,最大 128 字符
limit int 否 返回条数,默认 20,最大 20
offset int 否 偏移量,默认 0
category/lang/type/difficulty - 否 过滤条件
brief/fields - 否 字段控制
with_answer bool 否 是否返回答案与解析,默认 false

返回参数说明

参数名类型说明
code int 业务状态码,0 表示成功
msg string 提示信息,成功时为 success
data object 业务数据对象
data.mode string 实际搜索模式,ngram 全文或 like
data.total int 匹配结果总数
data.limit int 本次返回条数上限
data.offset int 结果偏移量
data.list array 匹配的题目列表

请求示例

返回示例

{"msg":"success","code":0,"data":{"list":[{"id":2428,"question":"Professor Sir Alec John Jeffreys, who was awarded the Albert Einstein World Award of Science in 1996..."}],"mode":"like","limit":3,"total":22,"offset":0}}

随机出题

实现方式为 ID 区间抽样,避免 ORDER BY RAND() 全表扫描;命中不足时自动回退随机排序

调用方式:在接口地址后拼接 ?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
GET http://www.shujuyu.cn/v1/api/quiz/random JSON

请求参数

参数名类型必填说明
key string 是 您的API密钥,可在个人中心获取
count int 否 题量,最大 20
category/lang/type/difficulty - 否 过滤条件
with_answer bool 否 是否返回答案与解析;默认只返回题干和选项。兼容旧参数 answer

返回参数说明

参数名类型说明
code int 业务状态码,0 表示成功
msg string 提示信息,成功时为 success
data object 业务数据对象
data.count int 实际返回的题目数量
data.list array 随机抽取的题目列表

请求示例

返回示例

{"msg":"success","code":0,"data":{"list":[{"id":3118,"lang":"en","type":"单选题","options":{"A":"Palm Sunday","B":"Clean Monday","C":"Good Friday","D":"Lazarus Saturday"},"category":"general","question":"What day marks the start of Easter fasting in Eastern Christianity?","difficulty":"medium","category_name":"通用常识"}],"count":3}}

答题校验

答题校验

调用方式:在接口地址后拼接 ?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
POST http://www.shujuyu.cn/v1/api/quiz/check JSON

请求参数

参数名类型必填说明
key string 是 您的API密钥,可在个人中心获取
id int 是 题目 ID
answer string 是 选项字母(多选用 AB 形式,顺序无关)或选项原文
reveal bool 否 是否返回正确答案与解析,默认 false

返回参数说明

参数名类型说明
code int 业务状态码,0 表示成功
msg string 提示信息,成功时为 success
data object 业务数据对象
data.id int 题目 ID
data.correct bool 作答是否正确
data.your_answer string 提交的答案原文

请求示例

返回示例

{"msg":"success","code":0,"data":{"id":100,"correct":true,"your_answer":"A"}}

批量查询

批量查询

调用方式:在接口地址后拼接 ?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
POST http://www.shujuyu.cn/v1/api/quiz/batch JSON

请求参数

参数名类型必填说明
items array 是 题目 ID 数组,最多 20 个
key string 否 仅支持 id
brief/fields - 否 字段控制
with_answer bool 否 是否返回答案与解析,默认 false

返回参数说明

参数名类型说明
code int 业务状态码,0 表示成功
msg string 提示信息,成功时为 success
data object 业务数据对象
data.requested int 去重后的请求题目数
data.found int 成功查到的题目数
data.not_found int 未找到的题目数
data.list array 查询结果列表,未找到项含 error

请求示例

返回示例

{"msg":"success","code":0,"data":{"list":[{"id":1,"options":{"A":"..."},"question":"..."},{"id":2,"options":{"A":"..."},"question":"..."},{"id":999999,"error":"not_found"}],"found":2,"not_found":1,"requested":3}}

数据导入

仅限配置了 QUIZ_ADMIN_KEY 且请求携带正确管理密钥时可用;未配置时返回 4031,密钥错误返回 4032

调用方式:在接口地址后拼接 ?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
POST http://www.shujuyu.cn/v1/api/quiz/import JSON

请求参数

参数名类型必填说明
key string 是 管理密钥 (也可用 X-Admin-Key 请求头)
questions array 是 题目对象数组, 最多 20 条
dry_run bool 否 仅校验不写入, 默认 false

返回参数说明

参数名类型说明
received int 接收到的题目条数
valid int 校验通过的条数
inserted int 实际写入条数 (dry_run=true 时恒为 0)
duplicated int 重复跳过的条数
invalid int 校验失败的条数
errors array 校验错误列表 (最多 20 条)

请求示例

返回示例

{"msg":"success","code":0,"data":{"valid":1,"errors":[],"invalid":0,"inserted":0,"received":1,"duplicated":0}}

产品说明

产品概述

知识题库查询服务,内置 80,908 道四选一题,覆盖中文成语释义、歇后语、唐诗/宋词填空与 19 类英文通用知识。支持分类/语言/难度筛选、分页列表、关键词搜索、随机出题、答题校验、批量查询。无第三方框架依赖,PDO 直连 MySQL。

使用场景

数据查询:快速集成 知识题库 到您的应用中
业务系统:将 知识题库 数据嵌入业务流程
开发工具:通过 API 接口获取 教育学习 数据
数据分析:基于 知识题库 数据进行分析和决策

费用计算

按次计费单价
¥0.002 / 次
每次调用接口从账户余额中扣除相应费用,VIP 用户可享折扣

扣费优先级

免费额度
次数包
余额扣费

计费方式详解

1 免费额度
· 接口每日免费额度已关闭
· VIP 用户月度免费额度:
· 个人版:每月 5000 次,本接口月上限 5000 次
· 专业版:每月 30000 次,本接口月上限 30000 次
· 企业版:每月 200000 次,本接口月上限 200000 次
· 账户如有注册/活动赠送的免费次数,会优先于接口免费额度扣减
· VIP 月度免费额度仅适用于单次售价不高于 ¥0.0800/次 的接口;接口每日免费额度按接口配置执行
VIP 月度免费额度每月重置,未使用部分不累计至下月。
2 次数包
预付费购买固定调用次数,折算单价与按次付费相同,用完为止。
次数包为独立计费,不与 VIP 折扣叠加。
请在有效期内使用,过期后未使用的次数不可再用。
3 余额扣费
按次从账户余额扣除费用;所有用户可享量折扣,VIP 用户额外享 VIP 折扣。
扣费公式:实际扣费 = 接口单价 × (1 - VIP 折扣比例 - 量折扣比例),并受总折扣上限和最低利润率保护约束
VIP 折扣: 个人版9折 专业版8折 企业版7折
量折扣: 月付费调用 ≥1000 次享 2%、 月付费调用 ≥10000 次享 5%、 月付费调用 ≥20000 次享 10%
· 量折扣按账号当月全部接口的付费调用次数统计,达到更高档位时按更高档位计算
总折扣上限:VIP 折扣 + 量折扣合计不超过 50%
最低利润率保护:折后价不得低于成本价 × (1 + 15%);若接口售价本身低于该保护价,则取消折扣并按售价计费
余额不足时调用将失败,请及时充值。

VIP 权益对比

等级每月免费次数本接口月免费上限折扣VIP 折后单价
免费版 按接口配置 — - ¥0.002/次
个人版 5000 次 5000 次 10% ¥0.0018/次
专业版 30000 次 30000 次 20% ¥0.0016/次
* VIP 月度免费额度每月重置。每月免费次数为账号级 VIP 月额度,本接口月免费上限为其中对本接口的限制(接口可单独设置上限或关闭)。VIP 折扣仅适用于余额扣费方式,VIP 折后单价不含量折扣。 本接口已关闭接口级月度免费额度(不影响 VIP 月度免费额度)。接口每日免费额度已关闭。

费用计算示例

* 以下示例未包含量折扣,量折扣按账号当月全部接口的付费调用量另行计算。
示例1:普通用户按次付费
调用 1000 次,费用 = 0.002 × 1000 = ¥2.00
示例2:个人版用户按次付费(仅 VIP 折扣,已考虑最低利润率保护)
调用 1000 次,折扣约 10%,费用 = 0.002 × (1 - 10%) × 1000 ≈ ¥1.80

错误码说明

本接口未定义专属错误码,调用时请参考通用错误码体系。

查看通用错误码参考
错误码说明解决方案
200请求成功-
400000请求参数错误检查参数名、格式与取值
401000认证失败检查 Authorization: Bearer 密钥是否正确、是否过期
401002缺少 API 认证参数请求未携带 key,请通过 URL 参数 key 或请求头 Authorization 传递密钥
402000账户余额不足充值后重试
403000无访问权限确认密钥权限、接口范围与 IP 白名单是否满足要求
404001接口或端点不存在检查 API 与端点的请求路径
409000请求冲突请稍后重试
422000参数校验失败检查参数格式与取值
429001请求频率超限(QPS)降低请求频率,或升级套餐提升额度
429002分钟级调用频率超限降低调用频率,或升级套餐提升额度
429003小时级调用额度已用完升级套餐提升额度,或整点后重试
429004今日调用额度已用完升级套餐提升额度,或次日重试
500000服务器内部错误携带响应中的 request_id 联系技术支持
502000服务暂时不可用稍后重试
503000服务暂时不可用稍后重试
504000请求超时稍后重试

更新日志

暂无更新日志