指数成分股
公开接口指数行情 Index · 指数成分股
查询指定指数的最新成分股与权重,按权重降序返回。数据由定时任务每天从 Tushare 的指数权重接口同步,保存的是最新一期快照,不是历史调仓记录。index_code 用裸码或全码都可以。
接口地址
GET /cn/index/constituents完整地址:
https://api.databull.cn/cn/index/constituents接口说明
查询指定指数的最新成分股及权重,按权重降序返回。数据由定时任务每天从 Tushare 的指数权重接口同步,保存的是**最新一期快照**(不是历史调仓记录)。
index_code 用裸码(000300)或全码(000300.SH)都可以。返回体 data.index 是本次命中的指数档案,data.items 是成分股明细,data.trade_date 是这批权重的**快照日**(权重按月发布,通常为月末)。
成分股按指数**整体替换**同步,且每日同步只覆盖主流宽基与常用行业主题指数;未在同步范围内的指数,其成分股为空并返回 empty_reason: constituents_not_synced。
请求参数
参数位置类型必填默认说明
index_code查询string否000300指数代码,裸码(000300)或全码(000300.SH)都可以;默认 000300(沪深300)page查询integer否1页码,从 1 开始;不小于 1page_size查询integer否100每页条数,1~5000;取值 1~5000返回字段
字段类型说明
codenumber业务状态码,0 表示成功dataobject查询结果对象data.indexobject本次命中的指数档案(symbol / index_code / name / market / category);指数不在清单中时该字段不出现data.itemsarray成分股数组,按权重降序(无权重的历史数据排在最后)data.items[].stock_codestring成分股代码(裸码),如 600519data.items[].stock_namestring成分股名称,取自本地股票档案data.items[].weightnumber权重(%);同指数内权重合计约 100data.items[].trade_datestring权重快照日,YYYY-MM-DDdata.items[].add_datestring纳入指数日期;Tushare 不提供该字段,同步写入的行恒为空值data.totalnumber该指数已落库的成分股总条数data.page / data.page_sizenumber当前页码 / 每页条数data.has_moreboolean是否还有下一页data.trade_datestring该指数成分股权重快照日(批数据的口径日)empty_reasonstring仅当 items 为空时出现,标注为空的原因(见下)接口示例
cURL
curl "https://api.databull.cn/cn/index/constituents?index_code=000300&page=1" \
-H "Authorization: Bearer $DATABULL_API_KEY"Python
import requests
url = "https://api.databull.cn/cn/index/constituents"
params = {
"index_code": "000300",
"page": "1",
}
headers = {"Authorization": "Bearer YOUR_API_KEY"}
resp = requests.get(url, params=params, headers=headers, timeout=10)
resp.raise_for_status()
print(resp.json())响应示例
JSON
{
"code": 0,
"data": {
"index": {
"symbol": "000300",
"index_code": "000300.SH",
"name": "沪深300",
"market": "SSE",
"category": "规模指数"
},
"items": [
{
"stock_code": "600519",
"stock_name": "贵州茅台",
"weight": 3.092,
"trade_date": "2026-08-31",
"add_date": null
},
{
"stock_code": "300750",
"stock_name": "宁德时代",
"weight": 3.66,
"trade_date": "2026-08-31",
"add_date": null
}
],
"total": 300,
"page": 1,
"page_size": 100,
"has_more": true,
"trade_date": "2026-08-31"
}
}错误码
状态码触发条件
401缺少或无效 API 凭证
400index_code 为空
说明
- 权重按月发布,
trade_date通常是月末日,因此同一指数的权重快照日可能落后当前日期一个月左右,属正常。 - 每天同步的只是主流宽基与常用行业主题指数(约 30 只)——指数权重接口需逐只调用,把上万只指数全量拉一遍既慢也容易触发频率限制。白名单之外的指数成分股为空,返回
empty_reason: constituents_not_synced。 - 需要白名单以外的指数时,可自行用维护接口
POST /cn/index/sync_constituents补同步(该接口不在公开文档中,需凭证调用)。 - 空结果的两种原因:
index_not_found(清单里根本没有这只指数,多半是代码写错)与constituents_not_synced(指数存在但成分股尚未同步)。两者都会同时写入响应头X-Empty-Reason。
Esc