TAPELINE · 纸带
文档

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);不填则按时间浏览
providerwscn / cnbc / cninfo;可重复或逗号分隔
feedwscn-global / wscn-a-stock / cnbc-top-news / cninfo-a / cninfo-hk;可重复或逗号分隔
kindflash / article / announcement;可重复或逗号分隔
since / until包含边界;30m / 24h / 7d 等相对时间或 ISO 日期、时间;无时区按 UTC
securityMARKET:CODE 或单独代码,例如 SZ:300750
exclude_digesttrue / 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 使用相同检索与状态语义。