免费歇后语查询接口整理与使用教程
说明:本文基于公开文档/文章整理,未对每个接口做真实请求实测,接口可用性以公开文档为准,集成前请自行验证。其中易源(ShowAPI)为需 key 的商业接口,本文仅按官方 OpenAPI 文档整理接入写法,未做真实数据请求实测。
歇后语是中文内容里出现频率很高的一类趣味语料,做聊天机器人、趣味问答小游戏、文案素材库、教学工具时经常要用到。市面上的歇后语查询接口大致分两类:一类是平台型数据服务商提供的通用接口(多数带每日免费额度),另一类是纯网页查询工具(适合人工使用、不适合程序化调用)。
一个通用的坑:部分免费接口可能已停止服务或返回占位数据,集成前请自行发请求验证——这也是本文只整理"写法完整、文档可考"的接口、并如实声明未做真实请求实测的原因。下面按接口逐个整理接入方式。
1. 接口总览
| 接口 | 请求地址 | 说明 | HTTPS | 编码 | 需要 Key | 来源类型 |
|---|---|---|---|---|---|---|
| 梦学谷 RollToolsApi | https://www.mxnzp.com/api/xiehouyu/search | 按关键词模糊查询 / 随机返回,2 个端点 | 是 | UTF-8 | 需要(免费申请) | 免费接口平台 |
| 天聚数行 TianAPI | https://apis.tianapi.com/xiehou/index | 随机返回指定数量歇后语 | 是 | UTF-8 | 需要(注册获取) | 会员免费接口 |
| 极速数据 | https://api.jisuapi.com/xhy/search | 按关键词查询歇后语 | 是 | UTF-8 | 需要(注册获取) | 免费会员接口 |
| 聚合数据 | http://japi.juhe.cn/askanswer/getCat | 鬼马问答接口,分类含歇后语 | 否 | UTF-8 | 需要(注册获取) | 需 key 数据接口 |
| 万维易源 ShowAPI | https://route.showapi.com/1635-1 | 查询歇后语,随机返回几条 | 是 | UTF-8 | 需要(appKey) | 商业接口(需 key,本文未实测数据) |
以上各接口的 key 均为在对应平台注册账号后在控制台/个人中心自行获取,本文不再逐一重复说明。
2. 梦学谷 RollToolsApi 歇后语接口
梦学谷(mxnzp.com)的 RollToolsApi 通用系列提供两个歇后语端点:按关键词查询、随机返回一条。接口文档公开,文档中明确说明 app_id 和 app_secret 为临时密钥,正式使用需注册账号后申请专属密钥。
按关键词查询
-
接口地址:
https://www.mxnzp.com/api/xiehouyu/search -
请求方式:GET
-
返回格式:JSON
-
请求示例:
https://www.mxnzp.com/api/xiehouyu/search?key=小葱拌豆腐&app_id=YOUR_APP_ID&app_secret=YOUR_APP_SECRET
-
接口备注:根据内容查询歇后语信息,支持至少两个字的模糊查询。
返回示例:
{
"code": 1,
"msg": "数据返回成功!",
"data": [
{
"riddle": "小葱拌豆腐",
"answer": "一清(青)二白"
}
]
}
随机返回一条歇后语
-
接口地址:
https://www.mxnzp.com/api/xiehouyu/random -
请求方式:GET
-
请求示例:
https://www.mxnzp.com/api/xiehouyu/random?app_id=YOUR_APP_ID&app_secret=YOUR_APP_SECRET
返回示例:
{
"code": 1,
"msg": "数据返回成功!",
"data": {
"riddle": "小葱拌豆腐",
"answer": "一清(青)二白"
}
}
注意事项:接口文档提示"不再提供请自主申请"的占位密钥仅用于演示,实际调用必须使用自己账号下的密钥,否则会被拒绝。
3. 天聚数行 TianAPI 歇后语接口
天聚数行(tianapi.com)的歇后语接口属于趣味娱乐类,注册后为会员免费接口,普通会员每日调用量 100 次,高级会员每日 1 万次(按会员方案递增)。
-
接口地址:
https://apis.tianapi.com/xiehou/index?key={apiKey} -
支持协议:http/https
-
请求方法:get/post
-
返回格式:utf-8 json
请求参数:
| 名称 | 类型 | 必须 | 示例值/默认值 | 说明 |
|---|---|---|---|---|
| key | string | 是 | 您自己的 ApiKey | API 密钥(注册账号后获得) |
| num | int | 否 | 10 | 返回数量,取值 1-10 |
返回示例:
{
"msg": "success",
"code": 200,
"result": {
"list": [
{
"quest": "江边上洗萝卜",
"result": "一个个来(比喻按次序地进行。)"
}
]
}
}
失败调用示例(错误码 150:API 可用次数不足):
{
"code": 150,
"msg": "API可用次数不足"
}
注意事项:正常请求均返回 HTTP 200,当业务状态码 code 为 200 时表示请求成功计费;quest 为问题(歇后语前半句),result 为结果。错误码 230 表示密钥无效、240 表示缺少 key 参数,集成时注意区分。
4. 极速数据 歇后语接口
极速数据(jisuapi.com)的歇后语接口收录了 5 万多条经典歇后语,免费会员每日 100 次调用额度。
-
接口地址:
https://api.jisuapi.com/xhy/search -
返回格式:JSON
-
请求方法:GET POST
-
请求示例:
https://api.jisuapi.com/xhy/search?appkey=YOUR_APPKEY&keyword=女人&pagenum=1&pagesize=1
请求参数:
| 参数名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
| keyword | string | 是 | 关键词 |
| pagenum | int | 是 | 当前页 |
| pagesize | int | 是 | 每页数据,最大为 2 |
返回参数:
| 参数名称 | 类型 | 说明 |
|---|---|---|
| total | string | 总数 |
| pagenum | int | 当前页 |
| pagesize | int | 每页数据 |
| content | string | 问题(歇后语前半句) |
| answer | string | 答案 |
JSON 返回示例:
{
"status": 0,
"msg": "ok",
"result": {
"total": "6",
"pagenum": "1",
"pagesize": "1",
"list": [
{
"content": "小脚女人走路",
"answer": "东倒西歪;慢腾腾"
}
]
}
}
PHP 调用示例(来自官方文档):
<?php
require_once 'curl.func.php';
$appkey = 'your_appkey_here';//你的appkey
$keyword = '女人';//utf8
$pagesize = 1;
$pagenum = 1;
$url = "https://api.jisuapi.com/xhy/search?appkey=$appkey&keyword=$keyword&pagesize=$pagesize&pagenum=$pagenum";
$result = curlOpen($url, ['ssl'=>true]);
$jsonarr = json_decode($result, true);
if($jsonarr['status'] != 0)
{
echo $jsonarr['msg'];
exit();
}
$result = $jsonarr['result'];
echo $result['total'].' '.$result['pagesize'].' '.$result['pagenum'].'<br>';
foreach($result['list'] as $val)
{
echo $val['content'].' '.$val['answer'].'<br>';
}
?>
注意事项:pagesize 单次最大为 2,需要更多数据请翻页(递增 pagenum);接口状态码 status 为 0 表示调用成功。
5. 聚合数据 鬼马问答接口(含歇后语分类)
聚合数据(juhe.cn)的"鬼马问答"接口数据范围包括脑筋急转弯、谜语、打油诗、笑话、歇后语、绕口令等题目及答案,歇后语是其中的一个内容分类,适合作为歇后语语料的补充来源。
分类/题目列表查询
-
接口地址:
http://japi.juhe.cn/askanswer/getCat -
支持格式:json
-
请求方式:get/post
-
请求示例:
http://japi.juhe.cn/askanswer/getCat?cat=1&start=0&count=2&key=YOUR_KEY
JSON 返回示例:
{
"error_code": 0,
"reason": "Success!",
"result": [
{
"id": 135611,
"body": "",
"valid": 0,
"title": "女孩子的大姨妈最像哪个动画人物?喜羊羊、灰太狼、黑猫警长、葫芦娃?"
}
]
}
题目答案查询
-
接口地址:
http://japi.juhe.cn/askanswer/answer -
请求示例:
http://japi.juhe.cn/askanswer/answer?id=135611&key=YOUR_KEY
JSON 返回示例:
{
"error_code": 0,
"reason": "Success!",
"result": [
{
"id": 135611,
"body": "灰太狼,因为灰太狼被打败后每次都会说:我还会回来的!",
"valid": 0,
"title": "女孩子的大姨妈最像哪个动画人物?喜羊羊、灰太狼、黑猫警长、葫芦娃?",
"cname": "脑筋急转弯"
}
]
}
注意事项:该接口域名是 http(非 https),线上环境若强制 HTTPS 会无法直接调用,需要走网关或自行评估;key 在聚合数据官网注册后获取。
6. 万维易源 ShowAPI 查询歇后语接口
万维易源(showapi.com)的"查询歇后语"接口(接口编号 1635),提供节气、季节、动物、昆虫、人物、谐音、经典等各类歇后语查询,官方文档说明数据定期更新。该接口需自备 appKey,本文按官方 OpenAPI 文档整理接入写法,未返回真实业务数据。
-
接口地址:
https://route.showapi.com/1635-1 -
请求方式:POST(application/x-www-form-urlencoded)
-
认证方式:query 参数
appKey
请求参数:
| 参数名称 | 类型 | 必须 | 说明 |
|---|---|---|---|
| appKey | string | 是 | 从 ShowAPI 控制台获取的 appKey |
| num | string | 否 | 随机返回几条 |
返回结构(官方文档字段说明):
| 字段 | 说明 |
|---|---|
| showapi_res_code | API 返回的状态码 |
| showapi_res_error | API 返回的错误信息 |
| showapi_res_id | API 请求的唯一标识 |
| showapi_fee_num | API 调用计费次数 |
| showapi_res_body | 业务返回体(含 ret_code / remark / contentlist / maxResult / allNum / allPages / currentPage) |
其中 showapi_res_body 内的字段含义:
| 字段 | 说明 |
|---|---|
| ret_code | 接口调用是否成功,0 为成功,其他为失败 |
| remark | 提示信息 |
| contentlist | 内容 |
| maxResult | 每页最大条数 |
| allNum | 总条数 |
| allPages | 总页数 |
| currentPage | 当前页码 |
注意事项:该接口为计费接口(showapi_fee_num 表示计费次数),调用前请先确认账户额度;appKey 在 ShowAPI 控制台创建应用后获取,属于敏感凭证,不要写入公开代码仓库。
横向对比(事实对照)
| 维度 | 梦学谷 RollToolsApi | 天聚数行 TianAPI | 极速数据 | 聚合数据 | 万维易源 ShowAPI |
|---|---|---|---|---|---|
| 需要 Key | 是(app_id/app_secret) | 是(key) | 是(appkey) | 是(key) | 是(appKey) |
| 返回格式 | JSON | JSON | JSON | JSON | JSON |
| HTTPS | 是 | 是 | 是 | 否(http) | 是 |
| 编码 | UTF-8 | UTF-8 | UTF-8 | UTF-8 | UTF-8 |
| 来源类型 | 免费接口平台 | 会员免费接口 | 免费会员接口 | 需 key 数据接口 | 商业接口 |
各有取舍:有的免费额度高但限速,有的接口是 http 需自行处理,有的按计费次数。没有全能最优,按你自己的成本、调用量和精度需求选即可。
生产环境参考实现(多源降级)
下面是一段 Python 参考实现,把本文整理的接口都列为对等节点,按"发请求并落业务字段、失败则切换下一源"的通用逻辑串联。各源排序由调用方自行决定,上线前建议自行补一次连通性验证。
# -*- coding: utf-8 -*-
"""歇后语查询多源降级参考实现(未做真实请求实测,集成前请自行验证)"""
import requests
# 各源按你自己的优先级排序;key 通过环境变量注入,勿硬编码
SOURCES = [
{
"name": "mxnzp",
"url": "https://www.mxnzp.com/api/xiehouyu/search",
"params": lambda kw, app_id, app_secret: {
"key": kw, "app_id": app_id, "app_secret": app_secret,
},
"key_env": ("MXNZP_APP_ID", "MXNZP_APP_SECRET"),
"parse": lambda j: [(d["riddle"], d["answer"]) for d in j.get("data", [])],
},
{
"name": "tianapi",
"url": "https://apis.tianapi.com/xiehou/index",
"params": lambda kw, api_key: {"key": api_key, "num": 10},
"key_env": ("TIANAPI_KEY",),
"parse": lambda j: [(d["quest"], d["result"]) for d in j.get("result", {}).get("list", [])],
},
{
"name": "jisuapi",
"url": "https://api.jisuapi.com/xhy/search",
"params": lambda kw, appkey: {
"appkey": appkey, "keyword": kw, "pagenum": 1, "pagesize": 1,
},
"key_env": ("JISUAPPKEY",),
"parse": lambda j: [(d["content"], d["answer"]) for d in j.get("result", {}).get("list", [])],
},
{
"name": "juhe",
"url": "http://japi.juhe.cn/askanswer/getCat",
"params": lambda kw, key: {"cat": 1, "start": 0, "count": 2, "key": key},
"key_env": ("JUHE_KEY",),
"parse": lambda j: [(d.get("title", ""), d.get("body", "")) for d in j.get("result", [])],
},
{
"name": "showapi",
"url": "https://route.showapi.com/1635-1",
"params": lambda kw, appkey: {"num": 1, "appKey": appkey},
"key_env": ("SHOWAPI_APPKEY",),
"parse": lambda j: _showapi_parse(j), # 按 showapi_res_body.contentlist 解析
},
]
def _showapi_parse(j):
body = j.get("showapi_res_body") or {}
content = body.get("contentlist") or []
return [(c.get("riddle"), c.get("answer")) for c in content] if isinstance(content, list) else []
def query_xiehouyu(keyword, env):
for src in SOURCES:
try:
keys = [env[k] for k in src["key_env"]]
params = src["params"](keyword, *keys)
resp = requests.get(src["url"], params=params, timeout=8)
items = src["parse"](resp.json())
if items:
return src["name"], items
except Exception as e:
print(f"[{src['name']}] 失败: {e}")
continue
return None, []
调用方把各平台的密钥放进环境变量(如 MXNZP_APP_ID、TIANAPI_KEY、JISUAPPKEY、JUHE_KEY、SHOWAPI_APPKEY),按序降级即可。
踩坑清单
-
接口域名协议不一致:聚合数据问答接口是
http://japi.juhe.cn,在强制 HTTPS 的环境(小程序、部分云函数)里需要先确认是否允许明文请求,或走代理网关。 -
分页参数差异大:极速数据
pagesize最大 2;天聚num取值 1-10;梦学谷搜索接口按关键词模糊匹配,注意接口对最少字数的限制。 -
免费额度与限速:免费会员通常有每日调用上限(如 100 次/天)和 QPS 限制,流量上来后要提前评估升级方案或做多源轮询。
-
key 管理:所有接口的密钥都应通过环境变量或配置中心注入,不要写死在代码或提交到仓库;泄露后及时在控制台重置。
-
返回结构差异:有的用
code,有的用status,有的用error_code,有的数据在data、result、list等不同层级——接入时以每个接口文档的字段说明为准,做一层统一解析适配。 -
失效风险:免费接口可能随时下线或改版,接口地址、返回字段以各平台官方文档最新版本为准。
附录:补充说明
以下同类接口在网上流传较广,但因需自备 key 或公开文档中写法不完整(未提取到完整请求地址/返回示例),本文未收入正文,仅作补充记录:
-
ALAPI 歇后语大全(alapi.cn):免费会员 100 次/天,参数为 token + word(搜索关键词)+ page(分页),返回
data数组含riddle/answer字段;接口地址以官网文档页为准(需登录查看完整请求地址)。 -
APISpace 歇后语大全(apispace.com):按流量包计费、支持免费试用 200 次,认证头为
X-APISpace-Token;文档称"随机返回 N 条歇后语"。 -
凡数 歇后语查询(findapi.cn):付费接口,示例代码与接口文档需登录后查看,公开页面未给出完整请求写法。
-
六派数据 歇后语 API(6api.net):付费接口,文档页未公开完整接入点。
-
即刻数据 歇后语查询(jikeapi.cn):以 AI Agent Skill 形式分发,公开介绍未给出完整 HTTP 接入写法。
以上接口如需使用,请到对应平台注册后按其官方文档集成,并自行验证可用性。
常见问题 FAQ
Q1:歇后语查询接口需要申请 key 吗?
需要。本文整理的接口均需在对应平台注册账号后获取密钥(如梦学谷的 app_id/app_secret、天聚与极速的 key、聚合数据的 key、易源的 appKey),免费额度通常为每天 100 次左右。
Q2:哪个歇后语接口返回格式最简单?
梦学谷 RollToolsApi 与天聚数行返回结构最直白:梦学谷 data 数组里是 riddle(谜面)和 answer(谜底)两个字段,天聚 result.list 里是 quest 和 result。极速数据多了 pagenum/pagesize 分页字段,聚合数据问答接口需要先查列表再查答案两步。
Q3:歇后语接口支持按关键词搜索吗?
支持。梦学谷 /api/xiehouyu/search?key=关键词 支持至少两个字的模糊查询;极速数据 /xhy/search?keyword=关键词 按关键词查询;聚合数据通过分类参数取列表。天聚与易源是随机返回模式,不支持关键词搜索。
Q4:这些接口免费额度是多少?
各平台免费会员普遍为每天 100 次(如天聚普通会员 100 次/天、极速免费会员 100 次/天、ALAPI 免费会员 100 次/天),梦学谷需注册后看账号等级,易源为计费接口按调用次数计费。
Q5:歇后语接口返回的是 JSON 还是 XML?
本文整理的接口全部返回 JSON 格式,编码为 UTF-8,中文内容无需额外转码。
Q6:接口请求方式有什么不同?
梦学谷、天聚、极速、聚合均支持 GET(部分同时支持 POST);易源 1635 接口为 POST 表单提交。参数都走 query/form 传递,没有复杂的请求体结构。
Q7:多接口之间如何切换降级?
可以按"发请求→解析业务字段→失败则换下一个源"的顺序串行调用,参考本文"生产环境参考实现"的多源降级写法,把各源密钥放到环境变量里管理。
Q8:聚合数据鬼马问答接口和歇后语是什么关系?
聚合数据的鬼马问答接口(japi.juhe.cn/askanswer/getCat)数据范围包含脑筋急转弯、谜语、笑话、歇后语、绕口令等,歇后语只是其中的内容分类之一,取数时需要注意用分类参数过滤。
Q9:接口域名有 http 的会影响使用吗?
会。聚合数据接口域名是 http://japi.juhe.cn,在强制 HTTPS 的环境(微信小程序、部分云函数、企业网关)中可能被拦截,需要自行处理明文请求或改用其它 HTTPS 接口。
Q10:歇后语数据量大概有多少?
各家宣传口径不一:极速数据文档称收录 5 万多条;天聚为会员免费接口、按 num 参数随机返回 1-10 条;梦学谷为模糊搜索+随机两种模式。具体数据量与更新频率以各平台官方文档为准。
Q11:免费接口会不会突然不能用?
免费接口有下线或改版风险,返回字段、接口地址可能调整。建议在代码里做多源降级和超时处理,上线前自行发请求验证,并以各平台官方文档最新版本为准。
Q12:key 放在哪里比较安全?
所有接口的密钥都应放在环境变量或配置中心,通过参数注入调用,不要硬编码在代码或提交到公开仓库;一旦泄露,及时到对应平台控制台重置密钥。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)