HITOKOTO · API

每一次请求,
遇见一句话。

一个简单的一言接口。获取随机语录,按类别和长度筛选,或选择适合你的返回格式。

试试接口 ↗

快速开始

发送 GET 请求即可获取一条随机一言。默认返回 JSON,默认最大长度为 30。

GET /api

所有查询参数均为可选。接口支持跨域请求;浏览器预检 OPTIONS /api 返回允许的跨域方法和请求头。

本服务只有一个一言接口,以下参数均用于 /api,不是分别独立的接口。

请求参数

参数说明示例
c分类代码,取值 a–l。不传或为空时从所有分类中筛选;只读取第一个 c,不支持多分类同时筛选。未知分类通常返回 404。c=a
encode返回格式:json(默认)、text 或 js。其他值按 JSON 返回,不应用 callback。encode=text
min_length最小长度,包含边界;不传时不限制下限。建议使用正整数。min_length=10
max_length最大长度,包含边界;不传时不限制上限。建议使用正整数,且不能小于最小长度。max_length=20
select仅用于 encode=js,指定页面上的 CSS 选择器;默认 .hitokoto。目标元素必须存在。select=%23hitokoto
callback非空时将 json、text 或 js 结果包装为 JavaScript 函数调用;json 的参数是 JSON 字符串,而非对象。callback=show

长度依据数据中的 length 字段。当前实现使用整数解析,可能截取数值前缀(例如 12abc 被解析为 12);请始终传入纯正整数。相同参数重复出现时只读取第一个值。

分类

通过 c 参数指定一个分类;点击分类代码可直接试用。不传 c 时从全部分类中筛选。

代码分类说明
a动画动画类语录
b漫画漫画类语录
c游戏游戏类语录
d文学主要收录现代文学,如小说、散文、戏剧
e原创原创类语录
f网络来自网络的语录
g其他其他类语录
h影视影视类语录
i诗词主要收录中国古代文学,如诗、歌、词、赋、曲
j网易云主要收录网易云音乐热评
k哲学哲学类语录
l抖机灵抖机灵类语录

分类名称和范围参考句子库的 categories.json。

返回格式与字段

JSON(默认)

成功时返回一个对象(字段值取决于语录数据,部分字段可能为 null):

字段说明
id语录编号
hitokoto语录正文
type分类代码
from出处
from_who作者或来源人物,可能为 null
length数据记录的语录长度
timestamp响应生成时的 Unix 时间戳,单位毫秒

纯文本与 JavaScript

encode=text 只返回语录正文。encode=js 返回一段脚本,执行时将正文写入 select 指定元素的 innerText。

使用 callback=show 时,响应形如 ;show("内容");;默认 JSON 格式传给回调的是序列化后的 JSON 字符串,需要自行解析。返回 JavaScript 的参数只应使用可信内容,不要拼入未经信任的输入。

状态码与错误

状态码含义
200请求成功;OPTIONS 预检也返回 200。
400长度参数解析后不是正整数,或最大长度小于最小长度。
404没有符合筛选条件的语录。
500服务处理请求时发生异常。

错误以 JSON 返回,包含 code、message 和毫秒时间戳 timestamp,例如:

{"code":400,"message":"min_length 必须是正整数","timestamp":1730000000000}

请求示例

随机 JSON:/api
动画分类:/api?c=a
纯文本:/api?encode=text
长度筛选:/api?min_length=10&max_length=20
生成页面脚本:/api?encode=js&select=%23hitokoto
文本回调:/api?encode=text&callback=show
JSON 回调:/api?callback=show