中国国家统计局官方数据源
数据

中国国家统计局官方数据源

Use when the user asks for official Chinese statistics — GDP, CPI, population, industrial output, economic indicators, employment, investment (keywords:国家统计局、CPI、GDP、人口、工业增加值、中国经济数据、官方统计、NBS). Do NOT use for non-official estimates or non-China data sources.

interstellar
interstellar
浏览1,028
使用58

Skill 文件

SKILL.md
name
nbs-stats-datasource
title
中国国家统计局官方数据源
description
Use when the user asks for official Chinese statistics — GDP, CPI, population, industrial output, economic indicators, employment, investment (keywords:国家统计局、CPI、GDP、人口、工业增加值、中国经济数据、官方统计、NBS). Do NOT use for non-official estimates or non-China data sources.
tools
curl

中国国家统计局官方数据源

通过 curl tool 调用国家统计局官网数据发布库 API,获取权威的中国官方统计数据,包括宏观经济、价格指数、人口就业、分省数据等。

鉴权

国家统计局数据 API 免费且无需鉴权,直接发请求即可,不要传任何 token 或 API key。

注意:请求时需携带必要的 Headers 模拟浏览器行为:

  • User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...
  • Referer:
  • X-Requested-With: XMLHttpRequest

通用约定

  • Base URLhttps://data.stats.gov.cn/dg/website/publicrelease/web/external(必须使用 HTTPS)
  • 响应格式:JSON
  • 数据获取模式:两步走策略
    1. 找 CID + 拿指标:通过分类树或关键词搜索定位数据集 ID (cid) 和指标列表 (indicatorId)
    2. 取数据:通过关键词搜索接口直接获取具体数值(搜索接口返回的每条数据已含 value 字段),或通过增强的搜索参数筛选数据
  • 时间分片机制:同一业务指标按 5 年或统计制度变革周期分割成多个 CID,跨周期需分别查询后合并
  • 地区代码:全国统一为 000000000000,分省数据需传入具体省份代码

时间编码格式

类型编码格式示例
月度YYYYMM + MM202601MM 表示 2026年1月
季度YYYYQ + SS202501SS 表示 2025年第1季度
年度YYYY + YY2025YY 表示 2025年
时间范围Start-End202401MM-202602MM

分类代码

code含义
1月度数据
2季度数据
3年度数据
4分省月度数据
5分省季度数据
6分省年度数据
7主要城市月度价格
8主要城市年度数据
9港澳台月度数据
10港澳台年度数据

⚠️ 速率限制策略(必须遵守)

  1. 串行请求:同一时间只发 1 个 curl 请求,等返回后再发下一个。严禁并行发送多个请求
  2. 请求间隔:每两个请求之间至少间隔 2 秒
  3. 批量查询:充分利用搜索接口的分页能力,通过增大 pageSize(最大50)一次获取更多数据,避免逐条查询
  4. 数据复用:已获取的分类树、指标列表等元数据应缓存使用,避免重复请求
  5. 错误重试:收到非 200 状态码后等待 5 秒再重试,最多重试 3 次

常用接口

1. 关键词搜索定位 CID

快速通过关键词查找相关数据集。

GET /external/query?search={关键词}&pagenum=1&pageSize=10

参数

参数名位置必填说明
searchquery搜索关键词,如 "CPI"、"GDP"、"人口"
pagenumquery页码,默认 1
pageSizequery每页数量,默认 10

关键返回字段

JSON Path类型说明
data.data[].show_namestring数据集名称
data.data[].cidstring数据集 ID (cid)
data.data[].type_textstring数据类型(月度/季度/年度)

2. 遍历分类树获取 CID

从根节点层层下钻,找到叶子节点即数据集 CID。

GET /new/queryIndexTreeAsync?pid={父节点ID}&code={分类代码}

参数

参数名位置必填说明
pidquery父节点 ID,首次请求可为空字符串 "" 或根节点 ID
codequery顶级分类代码,如 1(月度)、3(年度)

关键返回字段

JSON Path类型说明
data[]._idstring节点 ID。isLeaf=false 时作为下一层 pid;isLeaf=true 时即为 cid
data[].namestring节点名称
data[].isLeafbooleantrue=叶子节点(可查数据),false=目录节点(需继续下钻)
data[].sdatestring数据集起始时间(仅叶子节点)
data[].edatestring数据集结束时间(仅叶子节点)

3. 获取指标列表

获取指定数据集下的所有可用指标。

GET /new/queryIndicatorsByCid?cid={数据集ID}

参数

参数名位置必填说明
cidquery数据集 ID

关键返回字段

JSON Path类型说明
data.list[]._idstring指标唯一 ID,用于后续查询数据
data.list[].i_shownamestring指标显示名称,含单位
data.list[].i_markstring统计口径说明(计算方法、基期等)
data.list[].dustring单位 ID

4. 查询具体数据(核心接口)

通过关键词搜索接口获取数据值,每条返回结果已包含具体数值、时间、地区等完整信息。

方式一:关键词搜索直接获取数据值(推荐)

搜索接口返回的每条数据已包含具体数值,通过调整搜索关键词和参数即可获取目标数据。

GET /external/query?search={关键词}&pagenum=1&pageSize=50

增强参数

参数名位置必填说明
searchquery搜索关键词,如 "居民消费价格指数"、"城镇调查失业率"
pagenumquery页码,默认 1
pageSizequery每页数量,最大建议 50

返回数据格式(已含具体数值)

JSON Path类型说明
data.data[].show_namestring指标名称
data.data[].cidstring数据集 ID
data.data[].type_textstring数据类型(月度数据/季度数据/年度数据)
data.data[].valuestring具体数值(如 "100.8" 表示 CPI 同比上涨 0.8%)
data.data[].dtstring数据时间编码(如 "202605" 表示 2026年5月)
data.data[].dt_namestring数据时间名称(如 "2026年5月")
data.data[].dastring地区代码("000000000000" 为全国)
data.data[].da_namestring地区名称("全国")
data.data[].ekstring指标编码维度组合
data.data[].indic_idstring指标 ID
data.data[].i_namestring指标大类名称
data.data[].ek_namestring指标维度展开名称(如 "居民消费价格指数_全国_上年同月=100_食品烟酒")
data.data[].dt_typestring时间类型编码("MM" 月度、"SS" 季度、"YY" 年度)
data.countnumber总结果数

注意事项

  • 搜索接口返回的是扁平列表(每条记录代表一个指标在某时间点的数值),而非旧版的时间序列格式
  • 需要获取完整时间序列时,应先通过分类树 + 指标列表定位到精确的 cid 和 indicatorId,再用搜索接口反复查询不同时间点
  • pageSize 建议不超过 50,过大可能导致请求失败(400错误)

方式二:按数据集 CID + 指标查询(用于精确获取特定数据集的数据)

当已知数据集 ID (cid) 和指标 ID 时,使用此接口获取该数据集下的指标分类树,再结合搜索接口获取数据。

GET /external/getDaCatalogTreeByIndicatorCid?indicatorCid={数据集ID}

参数

参数名位置必填说明
indicatorCidquery数据集 ID(即 cid)

此接口返回该数据集下按地区和时间维度组织的分类树结构,可用于精确筛选目标数据。


5. 辅助接口

获取省份列表

GET /external/getAllProvince

返回所有省份代码和名称,用于分省数据查询。

获取发布日程

GET /external/queryAgendaByDate

返回数据发布日程安排,可用于确认某指标是否已发布。

获取新闻资讯

GET /external/new/queryCMSArticles?code=zxfb&pagenum=1&pageSize=10

返回国家统计局发布的新闻解读文章。


常用根节点 ID 速查

数据类型rootId
月度数据fc982599aa684be7969d7b90b1bd0e84
季度数据a94b8b7365a94874968cabbe392cf679
年度数据884c062607104a91967b22742537f44f

调用示例

场景:获取最近 6 个月的全国 CPI 同比数据

Step 1: 关键词搜索定位 CID 并获取数据值

搜索接口返回的数据已经包含具体数值,直接搜索即可获取目标数据。

curl(url = "https://data.stats.gov.cn/dg/website/publicrelease/web/external/query?search=居民消费价格指数+上年同月=100&pagenum=1&pageSize=50",      X = "GET",     H = ["User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "Referer: https://data.stats.gov.cn/dg/website/page.html", "X-Requested-With: XMLHttpRequest"])

从返回结果中筛选:

  • type_text 为 "月度数据"
  • show_name 包含 "居民消费价格指数" 且 ek_name 包含 "上年同月=100"
  • 每条数据的 value 字段即为该指标在 dt 时间点的数值
  • 例如找到 value: "100.8",dt: "202602",即表示 2026年2月 CPI 同比为 100.8(上涨 0.8%)

Step 2(可选):精确定位指标 ID

如需获取特定细分类别的数据,先通过指标列表接口获取精确的 indicatorId:

curl(url = "https://data.stats.gov.cn/dg/website/publicrelease/web/external/new/queryIndicatorsByCid?cid=5c7452825c7c4dcba391db5ca7f335c5",     X = "GET",     H = ["User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "Referer: https://data.stats.gov.cn/dg/website/page.html", "X-Requested-With: XMLHttpRequest"])

data.list 中找到:

  • i_showname 为 "居民消费价格指数 (上年同月=100) " 的指标
  • 记录其 _id: 53180dfb9c14411ba4b762307c85920c

Step 3:使用更精确的搜索关键词获取目标指标数据

利用搜索接口结合指标名称关键词进行精确查询:

curl(url = "https://data.stats.gov.cn/dg/website/publicrelease/web/external/query?search=居民消费价格指数+全国+上年同月=100&pagenum=1&pageSize=50",      X = "GET",     H = ["User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "Referer: https://data.stats.gov.cn/dg/website/page.html", "X-Requested-With: XMLHttpRequest"])

结果解析

  • 从返回的 data.data 数组中,每条数据代表一个指标在某时间点的数值
  • dt 值为 "202605" 表示 2026年5月
  • value 即为该月 CPI 同比指数值(如 "100.8" 表示同比上涨 0.8%)
  • ek_name 包含维度展开信息,如 "居民消费价格指数_全国_上年同月=100"
  • 可通过 dt_type 判断时间类型:"MM"=月度、"SS"=季度、"YY"=年度

错误处理

状态含义应对方式
404接口路径错误核对 URL 路径,确认使用 /external/query 等有效接口
success 为 false参数错误或服务器异常核对请求参数格式,检查关键词是否正确
data 为空数组搜索关键词无匹配或数据未发布更换搜索关键词,或确认数据发布周期
pageSize 过大导致 400请求数据量超限降低 pageSize(建议不超过 50)
长时间无响应网络或服务器问题5秒后重试,最多 3 次

重要提示

  1. 核心接口:数据获取通过 GET /external/query 搜索接口实现,搜索结果中每条数据已包含 value(具体数值)、dt(时间)、ek_name(维度展开)等字段。

  2. 时间分片处理:当需要长历史数据时,同一指标可能被分割成多个 CID(如 2016-2020、2021-2025)。需要分别查询后在本地按时间拼接。

  3. 数据发布周期:官方统计数据有固定发布时间,如 CPI 通常每月 10 日左右发布上月数据。查询时在最新月份可能返回空值,属正常情况。

  4. 统计口径:在 queryIndicatorsByCid 返回的 i_mark 字段中,包含了至关重要的统计说明(如"按不变价计算"、"基期为 2020 年"等)。展示数据时务必附带此说明。

  5. 分省数据:分省数据集需使用对应分类代码(4/5/6)遍历树结构获取 CID,可通过 GET /external/getAllProvince 获取省份代码列表。

  6. 搜索结果格式说明:新版搜索接口返回扁平列表(每条代表一个指标在某时间点的数值),而非旧版的时间序列结构。获取时间序列需要按 dt 字段对多条记录进行排序和拼接。

  7. 辅助接口:新增 GET /external/getDaCatalogTreeByIndicatorCid(按指标CID获取分类树)、GET /external/getAllProvince(省份列表)、GET /external/new/queryCMSArticles(新闻资讯)、GET /external/queryAgendaByDate(发布日程)等辅助接口。

Ln 1, Col 1MarkdownSpaces: 2
No errors