{
  "service": "www.cls.cn",
  "page": "https://www.cls.cn/subject/{id}",
  "title": "题材库 - 题材详情 (Subject Detail)",
  "summary": "单个题材详情。一次返回该题材下的 articles(新闻文章流)、plate(关联股票板块行情)、fund(关联主题基金指数)、top_articles(置顶解读)。这是财联社把『新闻 ↔ 板块 ↔ 主题基金』串成闭环的核心接口——投资题材型(人工智能、半导体芯片…)的 plate 与 fund 字段有值,新闻频道型题材(环球市场情报、盘面直播…)这两字段为 null。注意 fund 给的是『主题基金指数』聚合层(CLS 内部代码+涨跌幅),不是可交易 ETF 的代码,详见 caveats。",
  "method": "GET",
  "endpoint": "https://www.cls.cn/api/subject/detail/{id}",
  "signing": {
    "required": true,
    "algorithm": "sign = md5( sha1( urlencode(sorted(params)) ) ),params 先并入固定三件套。注意 {id} 是路径段不是 query 参数,不参与签名",
    "fixed_params": {
      "app": "CailianpressWeb",
      "os": "web",
      "sv": "8.4.6"
    },
    "python": "import hashlib,urllib.parse\nsubject_id=1103\np={'app':'CailianpressWeb','os':'web','sv':'8.4.6'}\nqs=urllib.parse.urlencode(sorted(p.items()))\nsign=hashlib.md5(hashlib.sha1(qs.encode()).hexdigest().encode()).hexdigest()\nurl=f'https://www.cls.cn/api/subject/detail/{subject_id}?{qs}&sign={sign}'"
  },
  "params": {
    "id": {
      "type": "integer",
      "required": true,
      "in": "path",
      "description": "题材 ID(来自 subject-hot-newest),如 1103",
      "example": "1103"
    }
  },
  "response": {
    "envelope": "{ errno:0, data:{ ... } }",
    "data_fields": {
      "id": "题材 ID",
      "name": "题材名称",
      "description": "题材简介",
      "attention_num": "关注人数",
      "articles": "关联文章/新闻数组(article_id, article_title, ...)—— 新闻流",
      "top_articles": "置顶解读文章",
      "plate": "关联股票板块(投资题材有值,新闻频道型为 null)。结构 {plate_id, plate_symbol:cls80xxx, plate_name, plate_change, stocks:[...]}",
      "fund": "关联主题基金指数(投资题材有值,新闻频道型为 null)。结构 {fund_id:cls80xxx, fund_name, change, tag:'主题基金'}。change 是真实独立涨跌(与同题材 plate_change 不同),代表该主题基金篮子的聚合表现",
      "reporter_card": "记者主理人信息"
    },
    "fund_object_fields": {
      "fund_id": "CLS 内部主题基金指数代码(cls80xxx,与同题材股票板块共用题材号,但是另一条指数序列)",
      "fund_name": "主题基金名称(如『人工智能』『芯片产业链』)",
      "change": "★真实涨跌幅(小数)。实测 cls80207:股票板块 +0.64% vs 主题基金 -1.12%,证明是独立标的而非股票篮子",
      "tag": "固定 '主题基金'"
    }
  },
  "example_call": "见 signing.python(subject_id=1103)",
  "related_maps": [
    "www.cls.cn/api/subject/hotAndNewestSubject.json",
    "x-quote.cls.cn/web_quote/plate/stocks.json"
  ],
  "caveats": [
    "必须签名,需带 Referer: https://www.cls.cn/",
    "plate 与 fund 字段仅在投资题材型 subject 下有值;纯新闻频道型题材为 null。如何区分:先调 subject-hot-newest 拿 id,再调本接口看 plate/fund 是否非空",
    "fund 给的是『主题基金指数』聚合层:有 CLS 内部代码(cls80xxx)+ 名称 + 真实涨跌幅,但【不是】可交易 ETF 的产品代码(如 159819)",
    "无法展开为 ETF 清单:用 fund_id(cls80xxx)调 plate-stocks 返回的是个股篮子,不是 ETF;专用基金端点(plate/funds、plate/etf、fund_list 等)实测全部 9004 not found;前端也无 fund 类 XHR",
    "要落到具体 ETF(代码/净值),需用 fund_name 去外部基金库(如东财/天天基金)做一次『主题名 → ETF』匹配,CLS 不提供这层",
    "★『新闻↔指数基金/ETF』信息流:用基金频道 id 调本接口取 articles[] —— 公募基金动态(1349)、易方达指数通(10011)、易方达基金(8478)(基金类目 1110 下还有更多品牌频道)。这些文章把市场事件直接关联到具体 ETF:ETF 名称+代码写在 article_title 文本里(如『科创芯片ETF易方达(589130)』),用正则 [((](\\d{6})[))] 提取、按 5x/15x/16x 开头过滤即得 ETF 代码;每篇同时带结构化 stock_list / plate_list / subjects。实测前15篇约11篇含 ETF 代码。这是 CLS 唯一的新闻→ETF 关联(ETF 不在行情系统,只能编辑写进正文)。每篇 articles[] 带 article_time(Unix 秒)= 该 ETF 新闻的发布时间(电报时间)",
    "时段行为:articles(新闻流)7×24 实时更新;plate_change / fund.change 受交易时段约束,盘后实测(15:38)为当日收盘值(冻结,与盘中末值一致)"
  ],
  "confidence": 0.85,
  "auto_discovered": true,
  "last_verified": "2026-06-16"
}

题材库 - 题材详情 (Subject Detail)

85% confidence verified: 2026-06-16

单个题材详情。一次返回该题材下的 articles(新闻文章流)、plate(关联股票板块行情)、fund(关联主题基金指数)、top_articles(置顶解读)。这是财联社把『新闻 ↔ 板块 ↔ 主题基金』串成闭环的核心接口——投资题材型(人工智能、半导体芯片…)的 plate 与 fund 字段有值,新闻频道型题材(环球市场情报、盘面直播…)这两字段为 null。注意 fund 给的是『主题基金指数』聚合层(CLS 内部代码+涨跌幅),不是可交易 ETF 的代码,详见 caveats。

API Endpoint

GET https://www.cls.cn/api/subject/detail/{id}
ParameterDescription
idrequired 题材 ID(来自 subject-hot-newest),如 1103 e.g. 1103

Notes

⚠ 必须签名,需带 Referer: https://www.cls.cn/
⚠ plate 与 fund 字段仅在投资题材型 subject 下有值;纯新闻频道型题材为 null。如何区分:先调 subject-hot-newest 拿 id,再调本接口看 plate/fund 是否非空
⚠ fund 给的是『主题基金指数』聚合层:有 CLS 内部代码(cls80xxx)+ 名称 + 真实涨跌幅,但【不是】可交易 ETF 的产品代码(如 159819)
⚠ 无法展开为 ETF 清单:用 fund_id(cls80xxx)调 plate-stocks 返回的是个股篮子,不是 ETF;专用基金端点(plate/funds、plate/etf、fund_list 等)实测全部 9004 not found;前端也无 fund 类 XHR
⚠ 要落到具体 ETF(代码/净值),需用 fund_name 去外部基金库(如东财/天天基金)做一次『主题名 → ETF』匹配,CLS 不提供这层
⚠ ★『新闻↔指数基金/ETF』信息流:用基金频道 id 调本接口取 articles[] —— 公募基金动态(1349)、易方达指数通(10011)、易方达基金(8478)(基金类目 1110 下还有更多品牌频道)。这些文章把市场事件直接关联到具体 ETF:ETF 名称+代码写在 article_title 文本里(如『科创芯片ETF易方达(589130)』),用正则 [((](\d{6})[))] 提取、按 5x/15x/16x 开头过滤即得 ETF 代码;每篇同时带结构化 stock_list / plate_list / subjects。实测前15篇约11篇含 ETF 代码。这是 CLS 唯一的新闻→ETF 关联(ETF 不在行情系统,只能编辑写进正文)。每篇 articles[] 带 article_time(Unix 秒)= 该 ETF 新闻的发布时间(电报时间)
⚠ 时段行为:articles(新闻流)7×24 实时更新;plate_change / fund.change 受交易时段约束,盘后实测(15:38)为当日收盘值(冻结,与盘中末值一致)
Copy raw JSON for agent
VeriGlow Agent Map — crowdsourced web data maps for AI agents