使用 SereneReader API 构建自动化工作流
为什么要自动化你的阅读?
RSS 已经将来自多个来源的内容汇聚到一处。SereneReader API 让你能够将这些内容引入脚本、定时任务以及其他工具中。
认证方式很简单,只需一个 API 密钥:创建后,在每次 HTTP 请求中携带它,即可获得 JSON 格式的响应。该 API 为只读模式,不支持 webhook,因此脚本需要按计划轮询。
快速开始
API 访问权限包含在 Pro 版(网页端每月 $5)和 Team 版中。
创建 API 密钥
在 SereneReader 中,打开「设置」并选择「API」标签页。创建一个密钥,为其取一个便于识别的名称,并将其妥善保存;密钥只会显示一次。Pro 账户最多可创建 5 个密钥,Team 账户最多可创建 10 个。
认证
每次请求都需要将你的密钥作为 Bearer 令牌放在 Authorization 请求头中。无需客户端 ID、刷新令牌或权限范围。设置中的「API」标签页列出了基础 URL、各端点及请求示例。
请求频率限制
API 每个账户每分钟允许 30 次请求,由该账户下的所有密钥共享。对于按计划运行的脚本来说,这已完全足够。每条响应都包含 X-RateLimit-Remaining 请求头。如果超出限制,API 将返回 429 状态码,并附带 Retry-After 请求头;请等待其指定的秒数后再重试。
你可以做什么
API 为你提供对文章和订阅源的读取权限:
GET /api/v1/articles返回你订阅源中的文章,按最新顺序排列。你可以按订阅源、文件夹或发布日期筛选,并分页浏览结果(默认每次返回 50 条,最多 200 条)。每篇文章包含标题、URL、订阅源名称、作者、发布日期、摘要,以及已读或已加星标的状态。GET /api/v1/feeds列出你的所有订阅,包含未读数量和所属文件夹。GET /api/v1/usage显示当前所用密钥在过去 1 小时、8 小时和 24 小时内的请求次数。
设置中的「API」标签页提供了完整的参数列表和响应字段说明。
使用场景
每日摘要邮件
编写一个脚本,每天早上 7 点运行,获取前一天的文章,并向你发送摘要邮件。按日期筛选,通过 jq 处理 JSON 以提取标题和 URL,再用你习惯的邮件或通知工具发送结果。
静默订阅源检查
订阅源可能会失效:域名到期、路径变更、服务器宕机。API 不会报告抓取错误或订阅源最后发布的时间,但每周运行一次的脚本仍然可以发现已停止更新的订阅源。列出你的所有订阅源,使用 feedId 和 since 参数请求每个订阅源的近期文章,并标记出在过去几周内没有任何发布内容的订阅源。如果你订阅了大量来源,请适当控制请求频率,以免超出限制。
静默的订阅源不一定是失效的,但这份列表能告诉你哪些博客值得去看看。
导出到其他工具
将文章导入本地数据库、Notion 页面、Obsidian 知识库或电子表格。API 返回结构化的 JSON 数据,因此转换处理通常只需几行 jq 或简短的 Python 脚本即可完成。
与 AI 代理结合使用
该 API 支持与能够发起 HTTP 请求的 AI 工具配合使用。如果你使用 OpenClaw 等助手,可以将其指向 SereneReader,让它处理你的订阅源。我们为此专门写了一篇文章:如何将 RSS 订阅源连接到 AI 代理。
更多想法
以下是一些只需几行代码即可实现的功能:创建一个定时任务,将某个文件夹当天的文章通过邮件发送给你;创建一个 shell 别名,汇总 /api/v1/feeds 返回的所有未读数量;或者编写一个轮询脚本,将某个订阅源的新文章发送到 Slack 频道。
这些都不需要任何框架。curl 和 jq 可以覆盖大多数场景,其余情况用任何支持 HTTP 客户端的语言均可实现。
在设置的「API」标签页中创建你的密钥。