免费笑话接口整理与使用教程

简介: 本文整理了11个主流中文笑话API(含1个英文开源接口),涵盖鉴权方式、请求示例、返回结构及免费额度等关键信息,助开发者快速选型集成。所有内容基于公开文档整理,未实测连通性,接入前请自行验证。

说明:本文基于公开文档/文章整理,未对每个接口做真实请求实测,接口可用性以公开文档为准,集成前请自行验证。其中万维易源「笑话大全」需自备 appKey,本文仅按官方 OpenAPI 文档整理接入写法,未返回真实业务数据。

写在前面

给网站侧边栏、聊天机器人或命令行小工具接入一条随机笑话,是不少开发者会做的事。笑话接口的接入成本通常很低:注册账号、申请密钥、按文档发一次请求即可。不过市面上的免费笑话接口分散在不同平台,请求方式、鉴权方式、返回结构各不相同,逐个翻阅文档比较费时。本文把公开资料里写法完整的免费笑话接口按同一口径整理出来,方便对照选择。

一个通用的提醒:免费接口依赖服务商持续运营,部分接口可能已经停止服务或返回占位数据,集成前请自行发请求验证。本文只做文档整理,不代做连通性确认。

1. 接口总览

接口 请求地址 说明 HTTPS 编码 需要 Key 来源类型
接口盒子·随机笑话[20万] cn.apihz.cn/api/zici/xiaohua.php 约 20 万条中文笑话,随机返回单条 UTF-8 id + key 接口平台
ALAPI·笑话大全 v2.alapi.cn/api/joke 分页返回中文笑话列表 UTF-8 token 接口平台
RollToolsApi·每日搞笑段子 mxnzp.com/api/jokes/list/random 中文段子,随机/分页两种模式 UTF-8 app_id + app_secret 接口平台
天行数据·雷人笑话 apis.tianapi.com/joke/index 返回中文笑话列表 UTF-8 key 数据平台
六派数据·笑话大全 open.liupai.net/xiaohua/text 文字/图文笑话分页获取 否(http) - appkey 数据平台
ThinkAPI·笑话大全 api.topthink.com/joke/query 按时间/最新/随机获取笑话 - appCode 数据平台
谷谷数据·幽默笑话大全 api.gugudata.com/news/joke 35 种分类的中文笑话 UTF-8 appkey 数据平台
kegood·免费随机笑话 kegood.com/jsapi/sjapi.js 前端 JS 引入,约 10W 条 否(http) UTF-8/GBK JS 接口
APISpace·笑话大全 eolink.o.apispace.com/xhdq/common/joke/getJokesByRandom 随机返回笑话段子 - X-APISpace-Token 接口平台
Official Joke API official-joke-api.appspot.com/random_joke 英文笑话,无密钥 - 开源项目
万维易源·笑话大全 route.showapi.com/341-5 随机中文文本笑话,含标题 UTF-8 appKey 数据平台

2. 接口盒子「随机笑话[20万]」

随机返回一条中文小笑话,库存约 20 万条,请求方式宽松。

  • 请求地址:https://cn.apihz.cn/api/zici/xiaohua.php
  • 请求方式:GET / POST
  • 鉴权方式:id + key(用户中心数字 ID + 通讯密钥),两个参数均必填
  • 返回格式:JSON
  • 返回字段:code(200 成功 / 400 错误)、msg(提示信息)、content(笑话正文,code=200 时有效)

示例(GET):

https://cn.apihz.cn/api/zici/xiaohua.php?id=你的ID&key=你的KEY

返回示例:

{
   
  "code": 200,
  "content": "两只母鸡在聊天,看到一只公鸡无精打彩的走来,母鸡问:「咋地了?没精神?」公鸡说:「做点生意!」母鸡问:「做啥生意累这德性啊?」公鸡不好意思的说:「嗯卖点鸡精。」"
}

注意事项:接口本身免费,每日调用无上限;公共 id/key 共享分钟级限频,注册私有 id/key 后独享配额。笑话正文在 content 字段,不在 msg

3. ALAPI「笑话大全」

分页返回中文笑话列表,每条笑话包含标题与正文,每天更新。

  • 请求地址:https://v2.alapi.cn/api/joke
  • 请求方式:GET / POST
  • 鉴权方式:token(关注公众号获取)
  • 请求参数:token 必填;num(获取数量,默认 10)、page(页码)选填
  • 返回格式:JSON
  • 返回字段:codemsg,成功时 data.data 内为笑话列表(title、content、unixtime、date)

请求示例:

https://v2.alapi.cn/api/joke?token=你的token

返回示例:

{
   
  "code": 200,
  "msg": "success",
  "data": {
   
    "current_page": 1,
    "data": [
      {
   
        "title": "【笑话】上次晚上开车遇到对面大货车灯光太刺眼了",
        "content": "#笑话# 上次晚上开车遇到对面大货车灯光太刺眼了……",
        "unixtime": "1583383675",
        "date": "2020-03-05 12:47:55"
      }
    ],
    "total": 3408
  }
}

注意事项:接口约 10QPS,支持 HTTPS。笑话列表分页获取,data 字段内嵌套 data 列表,解析时注意层级。

4. RollToolsApi「每日搞笑段子」

中文段子接口,提供随机获取与分页列表两种调用模式,数据为纯文本段子。

  • 请求地址:https://www.mxnzp.com/api/jokes/list/random(随机)/ https://www.mxnzp.com/api/jokes/list(分页)
  • 请求方式:GET
  • 鉴权方式:app_id + app_secret(注册后免费申请)
  • 返回格式:JSON
  • 返回字段:code(1 成功)、msg,成功时 data 为段子列表(content、updateTime)

请求示例:

https://www.mxnzp.com/api/jokes/list/random?app_id=你的app_id&app_secret=你的app_secret

返回示例:

{
   
  "code": 1,
  "msg": "数据返回成功",
  "data": [
    {
    "content": "……", "updateTime": "2026-08-01 10:00:00" }
  ]
}

注意事项:分页模式另传 page 页码。该服务在公开资料中同时出现过 mxnzp.com 与 idmayi.com 两个域名写法,内容与字段一致,接入前请以当前官方文档域名为准。

5. 天行数据「雷人笑话」

随机返回指定数量的中文笑话,属于该平台趣味娱乐类接口之一,同一账号可申请平台内多个数据接口。

  • 请求地址:https://apis.tianapi.com/joke/index?key={apiKey}
  • 请求方式:GET / POST
  • 鉴权方式:key(注册后免费申请)
  • 支持协议:http / https
  • 返回格式:UTF-8 JSON
  • 免费额度:普通会员 100 次/天

请求示例:

https://apis.tianapi.com/joke/index?key=你的key

注意事项:平台按会员等级提供不同每日调用次数(普通 100 次/天、高级 1 万次/天等),免费档位适合低频调用场景。

6. 六派数据「笑话大全」

提供文字笑话、图文笑话、全部笑话三类获取,支持分页与随机排序。

  • 请求地址:http://open.liupai.net/xiaohua/text
  • 请求方式:GET / POST
  • 鉴权方式:appkey
  • 请求参数:pagenum(页码,必填)、pagesize(每页条数,必填,最大 20)、sort(排序,addtime 按时间倒叙 / rand 随机,选填;sort=rand 时 pagenum 无效)
  • 返回格式:JSON / JSONP
  • 返回字段:total、pagenum、pagesize、content、addtime
  • 免费额度:免费会员 100 次/天

请求示例:

http://open.liupai.net/xiaohua/text?appkey=yourappsecret&pagenum=1&pagesize=10&sort=rand

注意事项:接口为 http 协议;按会员等级不同每日调用次数不同(免费 100 次/天、白银 600 次/天、钻石 15 万次/日)。

7. ThinkAPI「笑话大全」

搜集网络幽默、搞笑、内涵段子并持续更新,提供按更新时间查询、获取最新笑话、随机获取笑话等接口。

  • 请求地址:https://api.topthink.com/joke/query(按更新时间查询)
  • 请求方式:GET
  • 鉴权方式:appCode(用户授权码)
  • 请求参数:sort(类型,desc 指定时间之前发布 / asc 指定时间之后发布,必填)
  • 免费额度:每日 100 次免费调用,会员不限次数

请求示例:

GET https://api.topthink.com/joke/query?appCode=你的appCode&sort=desc

注意事项:该平台还有获取最新笑话、随机获取笑话等接入点,同属笑话大全产品,具体路径以官方文档为准。

8. 谷谷数据「幽默笑话大全」

提供全网中文幽默笑话数据,每日定时更新,支持 35 种文章分类检索。

  • 请求地址:https://api.gugudata.com/news/joke
  • 请求方式:GET
  • 鉴权方式:appkey(付费后获取)
  • 请求参数:appkey(必填)、type(笑话分类,必填,如 经典、爆笑男女、哈哈趣闻、幽默、儿童 等)、pageindex(页码)、pagesize(每页条数)
  • 返回格式:application/json; charset=utf-8
  • 协议:HTTPS

请求示例:

https://api.gugudata.com/news/joke?appkey=YOUR_APPKEY&type=经典&pageindex=1&pagesize=10

注意事项:appkey 需要付费后获取;分类参数可选值较多,按官方文档的 type 枚举传入。

9. kegood「免费随机笑话」

前端 JS 引入式接口,无密钥,直接在页面中嵌入脚本即可显示随机笑话,约 10 万条库存。

  • 引入地址:http://www.kegood.com/jsapi/sjapi.js
  • 调用方式:在页面中加入 script 标签,参数 lmapi=1 启用、sjlm 指定笑话分类(99 综合)、bm 指定编码(utf / gbk)
  • 显示元素:apiliebie(类别)、apibiaoti(标题)、apineirong(内容)

嵌入示例:

<script src="http://www.kegood.com/jsapi/sjapi.js?lmapi=1&sjlm=99&bm=utf" id="apijs"></script>
<b id="apiliebie"></b>
<b id="apibiaoti"></b>
<p id="apineirong"></p>

注意事项:无需注册与密钥,适合纯前端展示;需要 GBK 编码时将 bm=utf 改为 bm=gbk。按分类获取时将 sjlm 换成对应分类编号(如 1 综合、2 宗教、3 整人、4 愚人)。

10. APISpace「笑话大全」

随机返回笑话段子,属于该平台的通用数据接口之一。

  • 请求地址:https://eolink.o.apispace.com/xhdq/common/joke/getJokesByRandom
  • 请求方式:POST
  • 请求头:X-APISpace-Token(接口密钥)、Authorization-Type: apikeyContent-Type: application/x-www-form-urlencoded
  • 请求体:pageSize(每页条数)
  • 返回格式:JSON

请求示例(curl 形式):

curl -X POST "https://eolink.o.apispace.com/xhdq/common/joke/getJokesByRandom" \
  -H "X-APISpace-Token: 你的token" \
  -H "Authorization-Type: apikey" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "pageSize=5"

注意事项:该平台各接口提供免费调用次数,token 在请求头中传递,勿放在 URL 中。

11. Official Joke API(英文)

开源笑话接口项目,无需注册与密钥,提供英文笑话数据,支持随机获取、批量获取与按类型筛选。

  • 请求地址:https://official-joke-api.appspot.com/random_joke
  • 请求方式:GET
  • 鉴权方式:无
  • 返回格式:JSON(setup 铺垫、punchline 笑点等字段)
  • 项目来源:开源社区镜像(gitcode.com/gh_mirrors/of/official_joke_api)

请求示例:

curl https://official-joke-api.appspot.com/random_joke

注意事项:服务部署在海外,国内网络环境下访问可能不稳定;返回为英文笑话,适合对中文无要求的场景。

12. 万维易源「笑话大全」

随机生成文本笑话接口,一次请求返回一条中文笑话,附带标题字段。本接口需自备 appKey,本文仅按官方 OpenAPI 文档整理接入写法,未返回真实业务数据。

  • 请求地址:https://route.showapi.com/341-5
  • 请求方式:POST(页面亦标注支持 GET)
  • 鉴权方式:appKey(控制台创建应用后获取,作为 query 参数传递)
  • 返回格式:JSON
  • 返回字段:业务数据位于 showapi_res_body 内,含 id、title(标题)、text(笑话正文)、ret_code(0 为成功)、remark、ct(时间)
  • 免费额度:注册后默认可免费调用,设有使用档次限制

请求示例:

curl -X POST "https://route.showapi.com/341-5?appKey=你的appKey" \
  -H "content-type: application/x-www-form-urlencoded"

返回示例(结构):

{
   
  "showapi_res_code": 0,
  "showapi_res_body": {
   
    "id": "69a921a1530719e3c602fe0b",
    "title": "讽刺、荒唐的爆笑事儿",
    "text": "博士毕业两年多,父母从老家来看我……",
    "ret_code": 0,
    "remark": "查询成功!",
    "ct": "2026-03-05 14:24:33.420"
  }
}

注意事项:需自备 key,本文未做真实数据实测;业务字段统一在 showapi_res_body 内,判断 ret_code 是否为 0 来确认成功。

横向对比(事实对照)

维度 接口盒子 ALAPI RollToolsApi 天行数据 六派数据 ThinkAPI 谷谷数据 kegood APISpace Official Joke 万维易源
请求方式 GET/POST GET/POST GET GET/POST GET/POST GET GET JS 引入 POST GET POST/GET
需要 Key
返回格式 JSON JSON JSON JSON JSON/JSONP JSON JSON HTML 元素 JSON JSON JSON
HTTPS
内容语言 中文 中文 中文 中文 中文 中文 中文 中文 中文 英文 中文
免费额度 公共 key 限频 10QPS 注册申请 100 次/天 100 次/天 100 次/天 付费后获取 无限制 免费次数 无限制 免费档位

各接口在鉴权方式、免费额度、是否 HTTPS 上各有取舍,没有全能最优,按你自己的成本与需求选择即可。

生产环境参考实现(多源降级)

接入多条笑话接口时,可以把各源列为对等节点,按「发请求并落业务字段、失败则切换下一源」的通用逻辑串联,避免单一接口抖动影响整体。以下示例不暗示任何一源更优,各源排序交由调用方自行决定:

import requests

# 各源均为对等节点:名称 -> (请求构造, 正文字段提取)
SOURCES = {
   
    "apihz": lambda: (
        requests.get("https://cn.apihz.cn/api/zici/xiaohua.php",
                     params={
   "id": "YOUR_ID", "key": "YOUR_KEY"}, timeout=10),
        lambda j: j.get("content") if j.get("code") == 200 else None,
    ),
    "tianapi": lambda: (
        requests.get("https://apis.tianapi.com/joke/index",
                     params={
   "key": "YOUR_KEY"}, timeout=10),
        lambda j: (j.get("result") or [{
   }])[0].get("content"),
    ),
    "showapi": lambda: (
        requests.post("https://route.showapi.com/341-5",
                      params={
   "appKey": "YOUR_APPKEY"}, timeout=10),
        lambda j: (j.get("showapi_res_body") or {
   }).get("text"),
    ),
}

def get_joke():
    for name, (req_builder, extractor) in SOURCES.items():
        try:
            resp, extract = req_builder()
            if resp.status_code == 200:
                data = extract(resp.json())
                if data:
                    return name, data
        except Exception:
            continue
    return None, None

上线前建议自行补一次连通性验证,并确认各源当前免费配额。

踩坑清单

  • 免费额度限流:多数平台免费档为每日 100 次左右(天行数据、六派数据、ThinkAPI),超量后请求返回错误码,需按业务量预估配额。
  • 密钥不要放前端:APISpace 的 token、各平台的 key/appkey 一旦出现在前端代码里即可被直接抓取,应放在服务端调用。
  • 海外接口国内不稳定:Official Joke API 等服务部署在海外,国内网络环境访问可能超时或失败。
  • 域名会迁移:部分服务在公开资料中出现过多个域名写法(如段子接口的 mxnzp.com 与 idmayi.com),接入前以当前官方文档为准。
  • 字段层级不一致:不同接口的正文字段位置不同——showapi_res_body(万维易源)、data(ALAPI、RollToolsApi)、result(天行数据)、content(接口盒子),解析代码要按各源分别处理。
  • 免费接口可能下线:免费服务依赖服务商运营状态,集成前请自行发请求验证,生产环境保留备用源。

附录:补充说明

以下接口在公开资料中可查,但写法未在本文完整展开或属特殊形式,一并说明:

  • 聚合数据「笑话大全」:公开文档可查,提供最新笑话、随机笑话等功能,需自备 key,普通会员免费额度 50 次/天;完整调用地址与参数以官方文档为准。
  • Pipeworx Dad Jokes MCP:以 MCP 服务形式封装海外 icanhazdadjoke.com 的英文笑话,通过 MCP 网关接入 AI 客户端,属特殊接入形式且依赖海外访问。
  • ironjava smartServlet:早年公开的笑话接口(sinaapp 托管,smartServlet?content=笑话 形式),无密钥,服务时间久远,集成前需验证其是否仍在运行。

再次提醒:以上部分接口可能已不可用,集成前请自行验证。

常见问题 FAQ

免费笑话接口有哪些?
公开资料中写法完整的免费笑话接口包括:接口盒子「随机笑话[20万]」、ALAPI「笑话大全」、RollToolsApi「每日搞笑段子」、天行数据「雷人笑话」、六派数据「笑话大全」、ThinkAPI「笑话大全」、谷谷数据「幽默笑话大全」、kegood「免费随机笑话」、APISpace「笑话大全」以及万维易源「笑话大全」等,均为中文内容、JSON 或简单格式返回。

哪些笑话接口不需要 API Key?
kegood 的免费随机笑话(前端 JS 引入)和 Official Joke API(英文)无需密钥即可调用;其余多数平台接口需要注册后免费申请 key、token 或 appKey。

中文笑话接口和英文笑话接口有什么区别?
中文接口(如接口盒子、天行数据、万维易源)返回中文笑话,适合中文站点;英文接口(如 Official Joke API)返回英文笑话,且服务多在海外,国内访问可能不稳定。

笑话接口的免费额度一般是多少?
常见免费档位为每日 100 次左右,例如天行数据、六派数据、ThinkAPI 均为 100 次/天;聚合数据普通会员为 50 次/天;部分平台免费档还有分钟级限频。

如何申请笑话接口的密钥?
一般在对应平台注册开发者账号后,在控制台创建应用即可获得 appKey/key/appCode;ALAPI 需要关注公众号获取 token;RollToolsApi 需要注册后申请 app_id 与 app_secret。

随机笑话接口和分页笑话接口有什么区别?
随机接口每次返回随机一条或若干条笑话,适合页面占位;分页接口按页码返回列表,适合构建笑话库或做内容归档,可配合参数控制每页条数。

免费笑话接口返回什么格式?
绝大多数返回 JSON,常见字段为 code/msg 加业务数据(content、data、result 或 showapi_res_body);kegood 为前端 JS 注入方式,直接在页面元素中显示文本。

调用笑话接口时密钥要放在哪里?
密钥应放在服务端代码中,作为请求参数或请求头传递;APISpace 的 token 需放在 X-APISpace-Token 请求头中,不要写入前端脚本或 URL 分享出去。

免费笑话接口会不会突然失效?
有可能。免费服务依赖服务商运营状态,可能调整限流、迁移域名或下线。集成前应自测,生产环境建议同时配置多个备用源做降级。

海外笑话接口在国内能用吗?
部分可用但稳定性一般。Official Joke API 等服务部署在海外,国内网络环境访问可能超时或失败,对稳定性要求高的场景建议优先使用国内接口。

如何在网页中嵌入随机笑话?
最简单的做法是使用 kegood 的前端 JS 接口,引入 script 标签后指定显示元素即可;服务端场景则调用任一 JSON 接口获取正文字段后渲染。

集成笑话接口前需要做什么验证?
建议至少验证三件事:接口当前是否可连通、免费档位配额是否满足业务量、返回字段结构与官方文档是否一致;确认后再接入生产环境。

相关文章
人工智能 缓存 前端开发
11711 59
人工智能 JavaScript 开发工具
4682 17
Web App开发 人工智能 API
1197 1
开发工具 Swift git
1899 6
人工智能 Java BI
1312 1
人工智能 JavaScript 测试技术
2164 2
人工智能 JavaScript 测试技术
1106 4
缓存 JavaScript Shell
2059 3