REST API 参考
公开读接口、参数、JSON 契约和限流。
站点地址:https://tapeline.recally.io。公开读接口无需 token,支持跨域读取。
端点
| 方法与路径 | 返回 |
|---|---|
| GET /api/health | {schema_version,status:"ok",database:"ok",documents} |
| GET /api/search | {schema_version,query,count,results} |
| GET /api/status | {schema_version,feeds} |
POST /api/admin/sync 是受管理 token 保护的后端管理端点,不经网站公开转发。普通客户端不能触发同步。
Search 参数
| 参数 | 语义 |
|---|---|
| q | 空白分隔关键词,全部匹配(AND);不填则按时间浏览 |
| provider | wscn / cnbc / cninfo;可重复或逗号分隔 |
| feed | wscn-global / wscn-a-stock / cnbc-top-news / cninfo-a / cninfo-hk;可重复或逗号分隔 |
| kind | flash / article / announcement;可重复或逗号分隔 |
| since / until | 包含边界;30m / 24h / 7d 等相对时间或 ISO 日期、时间;无时区按 UTC |
| security | MARKET:CODE 或单独代码,例如 SZ:300750 |
| exclude_digest | true / 1 / 空值开启,false / 0 关闭;默认关闭 |
| limit | 默认 20;正整数,最大 100;超过上限返回 400;无 offset |
网页默认近 24 小时;API 未指定 since 时检索全部已收录资讯。证券过滤以来源提供的证券关联为准;WSCN / CNBC 当前暂无代码关联。
curl --get 'https://tapeline.recally.io/api/search' \
--data-urlencode 'q=Fed' \
--data-urlencode 'since=24h' \
--data-urlencode 'exclude_digest=true' \
--data-urlencode 'limit=20'
Search 响应
query 使用 Python 的键名:text、providers、feeds、kinds、since、until、security、limit、exclude_digest。security=CN:000001 编码为 ["CN","000001"],裸代码编码为字符串。
以下是示意数据(裁剪了 query、id、body;不是实际采集结果):
{
"schema_version": 1,
"count": 1,
"results": [
{
"provider": "cnbc",
"feeds": ["cnbc-top-news"],
"publisher": "CNBC",
"kind": "article",
"title": "Fed policy outlook",
"summary": "示例摘要",
"url": "https://example.test/news",
"published_at": "2026-10-09T10:00:00Z",
"ts_precision": "second",
"first_seen_at": "2026-10-09T12:00:00Z",
"securities": [],
"is_partial": false,
"is_digest": false
}
]
}完整结果还包含 id 和 body(可为 null),不返回 raw_json。securities 的每条关联包含 market、code、name(可空)和 origin;来源关联以原始证券元数据为准。所有时间输出 UTC 秒精度,ts_precision 表示原始发布时间精度。
Status 响应
feeds 保留来源状态、provider、stability、doc_count、last_success_at、consecutive_failures、last_error、watermark_ts、oldest_published_at、newest_published_at 和嵌套 last_run;未运行时 last_run=null。last_run.gap 是 {start,end} 或 null,possible_gap 是可能缺口告警。水位表示最新时间,覆盖起点看 oldest_published_at。
错误与限流
非法 search 参数返回 400 和 {schema_version:1,error:"..."}。公开读接口按 CF-Connecting-IP 每 IP 每 60 秒共允许 60 次,Cloudflare 节点内近似计数。超限返回 429 和 Retry-After: 60;等待后重试,避免高频轮询。
成功响应可缓存 15 秒;错误使用 no-store。公开 GET 支持 Access-Control-Allow-Origin: *。
兼容承诺
所有 JSON 带 schema_version: 1。同一版本只向后兼容地追加字段,客户端应允许未知字段。MCP 的 search_news / feed_status 使用相同检索与状态语义。