
中国国家统计局官方数据源
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.
Skill 文件
| 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 URL:
https://data.stats.gov.cn/dg/website/publicrelease/web/external(必须使用 HTTPS) - 响应格式:JSON
- 数据获取模式:两步走策略
- 找 CID + 拿指标:通过分类树或关键词搜索定位数据集 ID (
cid) 和指标列表 (indicatorId) - 取数据:通过关键词搜索接口直接获取具体数值(搜索接口返回的每条数据已含
value字段),或通过增强的搜索参数筛选数据
- 找 CID + 拿指标:通过分类树或关键词搜索定位数据集 ID (
- 时间分片机制:同一业务指标按 5 年或统计制度变革周期分割成多个 CID,跨周期需分别查询后合并
- 地区代码:全国统一为
000000000000,分省数据需传入具体省份代码
时间编码格式
| 类型 | 编码格式 | 示例 |
|---|---|---|
| 月度 | YYYYMM + MM | 202601MM 表示 2026年1月 |
| 季度 | YYYYQ + SS | 202501SS 表示 2025年第1季度 |
| 年度 | YYYY + YY | 2025YY 表示 2025年 |
| 时间范围 | Start-End | 202401MM-202602MM |
分类代码
| code | 含义 |
|---|---|
| 1 | 月度数据 |
| 2 | 季度数据 |
| 3 | 年度数据 |
| 4 | 分省月度数据 |
| 5 | 分省季度数据 |
| 6 | 分省年度数据 |
| 7 | 主要城市月度价格 |
| 8 | 主要城市年度数据 |
| 9 | 港澳台月度数据 |
| 10 | 港澳台年度数据 |
⚠️ 速率限制策略(必须遵守)
- 串行请求:同一时间只发 1 个 curl 请求,等返回后再发下一个。严禁并行发送多个请求
- 请求间隔:每两个请求之间至少间隔 2 秒
- 批量查询:充分利用搜索接口的分页能力,通过增大
pageSize(最大50)一次获取更多数据,避免逐条查询 - 数据复用:已获取的分类树、指标列表等元数据应缓存使用,避免重复请求
- 错误重试:收到非 200 状态码后等待 5 秒再重试,最多重试 3 次
常用接口
1. 关键词搜索定位 CID
快速通过关键词查找相关数据集。
GET /external/query?search={关键词}&pagenum=1&pageSize=10参数:
| 参数名 | 位置 | 必填 | 说明 |
|---|---|---|---|
| search | query | 是 | 搜索关键词,如 "CPI"、"GDP"、"人口" |
| pagenum | query | 否 | 页码,默认 1 |
| pageSize | query | 否 | 每页数量,默认 10 |
关键返回字段:
| JSON Path | 类型 | 说明 |
|---|---|---|
| data.data[].show_name | string | 数据集名称 |
| data.data[].cid | string | 数据集 ID (cid) |
| data.data[].type_text | string | 数据类型(月度/季度/年度) |
2. 遍历分类树获取 CID
从根节点层层下钻,找到叶子节点即数据集 CID。
GET /new/queryIndexTreeAsync?pid={父节点ID}&code={分类代码}参数:
| 参数名 | 位置 | 必填 | 说明 |
|---|---|---|---|
| pid | query | 是 | 父节点 ID,首次请求可为空字符串 "" 或根节点 ID |
| code | query | 是 | 顶级分类代码,如 1(月度)、3(年度) |
关键返回字段:
| JSON Path | 类型 | 说明 |
|---|---|---|
| data[]._id | string | 节点 ID。isLeaf=false 时作为下一层 pid;isLeaf=true 时即为 cid |
| data[].name | string | 节点名称 |
| data[].isLeaf | boolean | true=叶子节点(可查数据),false=目录节点(需继续下钻) |
| data[].sdate | string | 数据集起始时间(仅叶子节点) |
| data[].edate | string | 数据集结束时间(仅叶子节点) |
3. 获取指标列表
获取指定数据集下的所有可用指标。
GET /new/queryIndicatorsByCid?cid={数据集ID}参数:
| 参数名 | 位置 | 必填 | 说明 |
|---|---|---|---|
| cid | query | 是 | 数据集 ID |
关键返回字段:
| JSON Path | 类型 | 说明 |
|---|---|---|
| data.list[]._id | string | 指标唯一 ID,用于后续查询数据 |
| data.list[].i_showname | string | 指标显示名称,含单位 |
| data.list[].i_mark | string | 统计口径说明(计算方法、基期等) |
| data.list[].du | string | 单位 ID |
4. 查询具体数据(核心接口)
通过关键词搜索接口获取数据值,每条返回结果已包含具体数值、时间、地区等完整信息。
方式一:关键词搜索直接获取数据值(推荐)
搜索接口返回的每条数据已包含具体数值,通过调整搜索关键词和参数即可获取目标数据。
GET /external/query?search={关键词}&pagenum=1&pageSize=50增强参数:
| 参数名 | 位置 | 必填 | 说明 |
|---|---|---|---|
| search | query | 是 | 搜索关键词,如 "居民消费价格指数"、"城镇调查失业率" |
| pagenum | query | 否 | 页码,默认 1 |
| pageSize | query | 否 | 每页数量,最大建议 50 |
返回数据格式(已含具体数值):
| JSON Path | 类型 | 说明 |
|---|---|---|
| data.data[].show_name | string | 指标名称 |
| data.data[].cid | string | 数据集 ID |
| data.data[].type_text | string | 数据类型(月度数据/季度数据/年度数据) |
| data.data[].value | string | 具体数值(如 "100.8" 表示 CPI 同比上涨 0.8%) |
| data.data[].dt | string | 数据时间编码(如 "202605" 表示 2026年5月) |
| data.data[].dt_name | string | 数据时间名称(如 "2026年5月") |
| data.data[].da | string | 地区代码("000000000000" 为全国) |
| data.data[].da_name | string | 地区名称("全国") |
| data.data[].ek | string | 指标编码维度组合 |
| data.data[].indic_id | string | 指标 ID |
| data.data[].i_name | string | 指标大类名称 |
| data.data[].ek_name | string | 指标维度展开名称(如 "居民消费价格指数_全国_上年同月=100_食品烟酒") |
| data.data[].dt_type | string | 时间类型编码("MM" 月度、"SS" 季度、"YY" 年度) |
| data.count | number | 总结果数 |
注意事项:
- 搜索接口返回的是扁平列表(每条记录代表一个指标在某时间点的数值),而非旧版的时间序列格式
- 需要获取完整时间序列时,应先通过分类树 + 指标列表定位到精确的 cid 和 indicatorId,再用搜索接口反复查询不同时间点
pageSize建议不超过 50,过大可能导致请求失败(400错误)
方式二:按数据集 CID + 指标查询(用于精确获取特定数据集的数据)
当已知数据集 ID (cid) 和指标 ID 时,使用此接口获取该数据集下的指标分类树,再结合搜索接口获取数据。
GET /external/getDaCatalogTreeByIndicatorCid?indicatorCid={数据集ID}参数:
| 参数名 | 位置 | 必填 | 说明 |
|---|---|---|---|
| indicatorCid | query | 是 | 数据集 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 次 |
重要提示
-
核心接口:数据获取通过
GET /external/query搜索接口实现,搜索结果中每条数据已包含value(具体数值)、dt(时间)、ek_name(维度展开)等字段。 -
时间分片处理:当需要长历史数据时,同一指标可能被分割成多个 CID(如 2016-2020、2021-2025)。需要分别查询后在本地按时间拼接。
-
数据发布周期:官方统计数据有固定发布时间,如 CPI 通常每月 10 日左右发布上月数据。查询时在最新月份可能返回空值,属正常情况。
-
统计口径:在
queryIndicatorsByCid返回的i_mark字段中,包含了至关重要的统计说明(如"按不变价计算"、"基期为 2020 年"等)。展示数据时务必附带此说明。 -
分省数据:分省数据集需使用对应分类代码(4/5/6)遍历树结构获取 CID,可通过
GET /external/getAllProvince获取省份代码列表。 -
搜索结果格式说明:新版搜索接口返回扁平列表(每条代表一个指标在某时间点的数值),而非旧版的时间序列结构。获取时间序列需要按
dt字段对多条记录进行排序和拼接。 -
辅助接口:新增
GET /external/getDaCatalogTreeByIndicatorCid(按指标CID获取分类树)、GET /external/getAllProvince(省份列表)、GET /external/new/queryCMSArticles(新闻资讯)、GET /external/queryAgendaByDate(发布日程)等辅助接口。