新時空 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])