新时空 API
新时空 API

新时空 API 资讯详情查询

什么时候用这个接口

资讯列表查询仅返回摘要 summary,不含正文全文。以下场景调用本详情接口:

  • 需要阅读某篇文章的正文全文(返回清洗后的极简 Markdown,适合 LLM 直接读取);
  • 已知 article_id,精确取某一篇;
  • 批量按 ID 取文(一次最多 10 条);
  • 为同一篇文章切换语言版本(zh-cn / zh-hk / en)。

article_id 必须来自资讯列表查询的真实返回,不要自行构造或猜测。

请求方式

完整地址(Base URL:https://www.newtimespace.com),无需认证,支持 GET 与 POST(POST 可传 JSON body)。详情接口始终以 JSON 返回:

# 单篇

GET /api/v1/article/detail?article_ids=1445506

# 多篇(逗号分隔,中英文逗号均可,一次最多 10 条)

GET /api/v1/article/detail?article_ids=1445506,1444676

# 切换语言版本(article_id 跨语言通用)

GET /api/v1/article/detail?article_ids=1445506&language=en

参数类型必填描述默认值
article_idsstring是文章 ID,逗号分隔(中英文逗号均可,如 1024,1025),单次最多 10 条;兼容别名 articleIds,POST 亦可传 JSON 数组''
languagestring否输出语言:zh-cn(简体,默认)、zh-hk(繁体)、en(英文);未知值回退 zh-cnzh-cn
apikeystring否调用方标识,用于请求日志记录''

响应结构(data 恒为数组)

顶层字段为 status、data、request_id、server_time、applied_filters、warnings。data 恒为数组(即使只命中 1 条也是数组),无需再判断对象/数组双形态:

情况data行为
命中 1 条数组(1 个元素)data 仍为数组,直接遍历即可
命中多条数组返回命中的文章,单次最多 10 条
全部不存在空数组 []HTTP 200 + status=success,没有 404、没有 error
混入无效 ID跟随命中数无效 ID 被跳过,只返回命中的文章

data 数组中每篇文章含以下 6 个字段:

字段类型说明
article_idstring文章唯一 ID
titlestring标题(已按 language 本地化,zh-hk 自动转繁体)
authorstring作者
publish_timestringISO-8601 发布时间,北京时间(GMT+8)
contentstring清洗后的极简 Markdown 正文(已剔除脚本/样式/图片噪音,非 HTML)
word_countinteger正文字符数(UTF-8)

详情响应不含 url / category / summary 字段;如需引用原文链接 url,请从资讯列表查询的返回中获取。

响应示例

{
  "status": "success",
  "data": [
    {
      "article_id": "1445506",
      "title": "华夏纳指(03086.HK)盘中涨0.20%,平均价60.389港元",
      "author": "冯佳敏",
      "publish_time": "2026-09-09T14:54:55+08:00",
      "content": "### 核心要点\n截至2026年9月9日13:51,华夏纳指(03086.HK)上涨0.20%,报60.400港元……(已清洗为极简 Markdown)",
      "word_count": 1280
    }
  ],
  "request_id": "a1b2c3d4e5f60718",
  "server_time": "2026-09-23T09:30:00+08:00",
  "applied_filters": { "language": "zh-cn", "article_ids": [1445506] },
  "warnings": []
}

字段使用要点:

  • content:清洗后的极简 Markdown 正文(非 HTML),可直接作为 LLM 上下文或按 Markdown 渲染;
  • publish_time:ISO-8601 发布时间,北京时间(GMT+8),已含时区偏移,可直接解析比较;
  • word_count:正文字符数(UTF-8),可用于估算 Token 消耗;
  • 空值处理:字段为空串表示无该数据,不要自行推断补全;en 正文缺失时会回退简体原文并在 warnings 提示。

错误与限速

参数错误返回 HTTP 400,错误响应遵循 RFC 7807(Content-Type: application/problem+json),并保留 code/message 兼容旧客户端:

{
  "type": "about:blank",
  "title": "Bad Request",
  "status": 400,
  "detail": "缺少必要参数: article_ids。请提供至少一个整数 ID。",
  "error_code": "INVALID_PARAMETER",
  "request_id": "a1b2c3d4e5f60718",
  "instance": "/api/v1/article/detail",
  "code": 400,
  "message": "缺少必要参数: article_ids。请提供至少一个整数 ID。"
}
触发条件HTTPerror_code
未传 article_ids 或解析后为空400INVALID_PARAMETER
一次超过 10 条 ID400PARAMETER_EXCEEDED_LIMIT
超过每 IP 每 60 秒 60 次429RATE_LIMIT_EXCEEDED(携带 Retry-After,按其等待)
服务器内部错误500INTERNAL_SERVER_ERROR

超过 10 个 ID 时拆分为多批请求(如 25 个按 10 + 10 + 5 分三次);参数错误修正后再请求,不要对相同错误参数反复重试。

Agent 注意事项

  • data 恒为数组:无论命中几条,data 都是数组,直接遍历即可,无需兼容对象/数组双形态。
  • 正文为 Markdown:content 是清洗后的极简 Markdown(非 HTML),可直接阅读或作为 LLM 上下文。
  • 响应不带 BOM:为标准 UTF-8 JSON,直接 json.loads 即可,无需用 utf-8-sig 剥离 BOM。
  • 无效 ID 不是错误:返回 200 + "data": [],按“未找到”处理即可,不要重试。
  • article_id 必须来自列表接口的真实返回,不要自行构造或猜测。
  • language 传不支持的值回退 zh-cn,不会报错;并非每篇文章都有英文/繁体版本,en 正文缺失时回退简体并在 warnings 提示,切换语言后若 data 为空属正常。
  • 单次最多 10 条:超出返回 400(PARAMETER_EXCEEDED_LIMIT),请拆批请求。
  • 限速:每 IP 每 60 秒 60 次,响应不含剩余额度计数头,需自行统计频率。

完整调用示例(批量取文 + 读全文)

import json, urllib.request

BASE = "https://www.newtimespace.com/api/v1/article/detail"

def fetch(ids):
    # 批量取文,自动按 10 个拆批,返回文章对象列表
    out = []
    for i in range(0, len(ids), 10):
        url = BASE + "?article_ids=" + ",".join(map(str, ids[i:i+10]))
        raw = urllib.request.urlopen(url).read()
        data = json.loads(raw.decode("utf-8"))
        out += data["data"]          # data 恒为数组,直接合并
    return out

for a in fetch(["1445506", "1444676", "99999999999"]):   # 无效 ID 会被跳过
    print(a["article_id"], a["publish_time"], a["title"])
    print("  字数:", a["word_count"])
    print("  正文(Markdown):", a["content"][:120])