API 文档

供智能体、脚本和小型集成使用的公开 JSON 接口,无需账号或 API 密钥。

我最近在做什么

以结构化 JSON 返回 /now 页面上的活动,内容会在网站部署后更新。

阅读 /now 页面 →打开 JSON ↗

请求

GET /api/now

默认返回英语。添加 ?lang=zh 返回中文,或用 ?lang=en 指定英语。不支持其他查询参数。

curl --fail --silent --show-error 'https://leodeng.dev/api/now?lang=zh'

响应示例

此示例只展示一项活动。实际响应包含全部活动,包括暂停和已完成的项目。

{
  "schemaVersion": 1,
  "url": "https://leodeng.dev/zh/now",
  "language": "zh",
  "updatedAt": "2026-10-24T13:13:19+08:00",
  "detailsFormat": "markdown",
  "events": [
    {
      "id": "ipad-2-home-assistant",
      "title": "iPad 2 + Home Assistant",
      "status": "active",
      "startedAt": null,
      "updatedAt": "2026-10-24T13:13:19+08:00",
      "finishedAt": null,
      "details": "正在折腾 iPad 2 与家里 Home Assistant 服务器的兼容性。"
    }
  ]
}

响应字段

字段含义
schemaVersion响应格式版本,目前为 1。
url对应语言的 /now 页面地址。details 中的相对链接应基于此地址解析。
languagetitle 和 details 的语言:en 或 zh。
updatedAt内容最后编辑时间,采用 ISO 8601 格式,并非本次请求时间。
detailsFormat固定为 markdown。details 返回源文本,不包含渲染后的 HTML。
events[]全部活动,每项包含 id、title、status、startedAt、updatedAt、finishedAt 和 details。
events[].id稳定的活动标识符,可用于匹配不同请求中的同一项活动。
events[].statusactive:正在做;recurring:持续进行;paused:暂停;finished:已完成。
events[].startedAt / updatedAt / finishedAt活动日期在有值时采用带时区偏移的 ISO 8601 格式。缺失日期为 null,请保留原时区。

在智能体中使用

获取 JSON 后按状态筛选。例如,下面的命令会列出我正在做的项目:

curl --fail --silent --show-error 'https://leodeng.dev/api/now?lang=zh' \
  | jq '.events[] | select(.status == "active") | {id, title, details}'

HTTP 行为

GET 返回 JSON。HEAD 返回相同的响应头,不返回正文。支持浏览器的 OPTIONS 请求,允许跨域读取。响应最多可缓存 60 秒,每分钟轮询一次即可。

无效查询参数返回 400 和 JSON 错误。不支持的请求方法返回 405,并附带 Allow 响应头。此接口只读。