全市场股票清单(代码 / 名称 / 上市日期 / 行业) API
一次拿全 A 股约 5576 只的清单:代码、名称、市场、上市日期、行业、板块、发行价、注册资本。 它解决什么:建标的池、选股前置、核对代码时,第一步都是「市场上有哪些票」。/v1/search 需要关键词、/v1/quote 需要代码,都不适合枚举 —— 本端点一次返回全部,可直接入库。 用法: - GET /v1/stocks —— 全量(约 5576 只) - GET /v1/stocks?market=sz&limit=100 —— 深市前 100 只 - GET /v1/stocks?industry=食品饮料 —— 按行业取 - GET /v1/stocks?offset=1000&limit=100 —— 翻页 字段:code(sh600519)· name · market(sh 沪 / sz 深 / bj 北)· listedDate(上市日期 YYYY-MM-DD)· industry(行业)· sector(板块)· issuePrice(发行价)· regCapital(注册资本)。 返回:total(符合筛选条件的总数)· returned(本次返回条数)· data(数组)。 ⚠️ 字段值为 '-' 表示数据源对该标的没有这项(例如个别次新股尚未归档),不是取数失败。 ⚠️ 口径是当前在册:已退市的不在清单里;新股会在调用时自动补入,无需等我们更新。 ⚠️ 全量响应约 1 MB —— 日常建议带 limit 分页,或只在初始化时全量拉一次。
GET /v1/stocksGET /v1/stocks?market=hscurl "https://api.ashareapi.com/v1/stocks?market=hs&key=YOUR_KEY"market · industry · limit · offset带 * 为必填快速开始
把下面的代码里的 Key 换成你的(免费端点无需 Key,直接调):
# 推荐:Authorization 头(密钥不进日志)
curl -H "Authorization: Bearer YOUR_KEY" \
"https://api.ashareapi.com/v1/stocks?market=hs"
# 快速测试:直接浏览器打开(?key= 会留在日志/历史里,别用于生产)
curl "https://api.ashareapi.com/v1/stocks?market=hs&key=YOUR_KEY"import requests
r = requests.get(
"https://api.ashareapi.com/v1/stocks",
headers={"Authorization": "Bearer YOUR_KEY"},
params={},
timeout=30,
)
print(r.json())const r = await fetch("https://api.ashareapi.com/v1/stocks?market=hs", {
headers: { Authorization: "Bearer YOUR_KEY" },
});
console.log(await r.json());参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| market | string | 否 | sh 沪 / sz 深 / bj 北(留空=全部) |
| industry | string | 否 | 行业名精确匹配,如 '食品饮料'(留空=全部) |
| limit | integer | 否 | 返回条数,0=全量(约 5576 只) |
| offset | integer | 否 | 跳过前 N 条(翻页) |
marketstringindustrystringlimitintegeroffsetinteger返回字段
下表由线上真实调用采集(非文档推断):每行是响应里的字段名、类型和一条真实样例值,用来对齐解析代码。
data.data[]统一信封: ok / endpoint / tier / elapsed_ms / source取样日: 2026-10-20| 字段 | 类型 | 真实样例值 |
|---|---|---|
| name | str | 德明利 |
| market | str | sz |
| listedDate | str | 2022-07-01 |
| industry | str | 电子 |
| sector | str | 电子 |
| issuePrice | str | 26.54 |
| regCapital | str | 31758.0018 |
统一返回信封: { ok, endpoint, tier, elapsed_ms, source, data }
数据在 data 字段;数据源为空时 ok:false 且不扣次数。
免费端点无需 Key(匿名 5 次/分,解一次 PoW 可到 15 次/分;每次最多 250 根 K 线、每天最多 10 万条)。付费端点按档位限流:体验 30 · 标准 120 · 专业 300 · 机构版 600 次/分;买断档按总量计(不用完不过期)。
看错误码对照表 →常见问题
通用问题(所有端点通用)
免费端点不需要:health、challenge、quote、kline、hot、market-overview、changedist 匿名即可调用。付费端点需要:在请求头带 Authorization: Bearer <你的 Key>。⚠️ 匿名额度按调用者类型分级:浏览器(真人)5 次/分;脚本 / SDK / AI Agent(curl、requests、axios、openai 等 UA)2 次/分 —— 自动化流量更易被滥用。解一次 PoW 挑战(GET /v1/challenge,再带 X-PoW 头)可提到 15 次/分,与类型无关。⚠️ 另外,匿名调用单次最多取 250 根 K 线、每天最多 10 万条 —— 要一次拿满 1212 根或不限日量,请用 API Key。
不会。数据源失败或空结果时返回 ok:false,并自动退回本次计费(total_calls / usage_log / ep_log 三处同时回滚)。只有真正取到数据的请求才计入用量。
行情类(quote / kline / orderbook / changedist)为实时或当日;财务、股东、分红、事件等为数据源披露后 T+1 内。响应里的 source 字段标明本次实际命中的数据通道。
不能。code 是单值参数,一次一只;批量请并发调用(注意各自档位的每分钟限流)。
配一次 MCP 即可,之后直接问 AI「查一下……」它会自己调。MCP 暴露 65 个工具,覆盖行情 / 财务 / 选股 / 板块 / 宏观。