Skip to content

About

A股数据 API 官方 Python SDK —— 行情/K线/分时/财务/资金/龙虎榜/板块/因子选股/量化回测(40 端点,免费端点无需注册)|Official Python SDK for the A-Share Data API — quotes, K-lines, financials, money flow, dragon-tiger lists, sectors, factor screening and quant backtests (40 endpoints, free endpoints need no signup)

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

ashareapi

ashareapi — A股数据 API 官方 Python SDK

行情 / K线 / 财务 / 资金 / 龙虎榜 / 板块 / 因子选股 / 量化回测 —— 40 个端点,免费端点无需注册。

Python pandas PyPI CI License

中文 · English

官网 · 文档 · 端点清单 · MCP 接入 · Agent Skill

GitHub 源码 · 问题反馈 Issues · 更新日志

常用端点文档:K 线 · 因子选股 · 健康检查

pip install ashareapi            # 基础(返回 list[dict])
pip install "ashareapi[pandas]"  # 加 DataFrame 支持(推荐)

也有 Node.js / TypeScript SDK:npm install ashareapi —— npm

这是什么

A股数据 API 的官方 Python SDK —— 把 HTTP 端点包成一行方法调用,省掉自己拼 URL、处理重试、解析返回结构。pip install ashareapi 之后:

from ashareapi import AShareAPI
cli = AShareAPI(api_key="ct-你的Key")   # 或用环境变量 ASHARE_API_KEY
print(cli.quote("sh600667"))            # 行情
print(cli.backtest(code="sh600667", strategy="mom20"))   # 量化回测

5 个端点无需 Key(装上就能调):/v1/quote · /v1/kline · /v1/hot · /v1/market-overview · /v1/changedist。其余端点需要 Key(获取,¥9.9 起)。

30 秒上手

from ashareapi import AShareAPI

cli = AShareAPI()                     # 免费端点无需 Key
df = cli.quote("sh600667")            # 实时行情 → DataFrame
print(df[["date", "last", "turnover"]])

print(cli.kline("600667.SH", count=5))  # 代码格式随便写(自动归一化)
print(cli.hot(limit=10))                # 热搜榜

付费端点(财务 / 资金 / 龙虎榜 / 选股等)需要 Key(获取,¥9.9 起):

cli = AShareAPI("ct-你的Key")          # 或设环境变量 ASHARE_API_KEY
df = cli.screen(preset="low_pe", orderby="ROETTM", limit=10)
print(df.head())

为什么用它

  • 免费端点真的免 Key:quote / kline / hot / market-overview / changedist 直接调,无需注册
  • 代码格式兼容:sh600667 / 600667.SH / 600667 都认(不同写法的项目都能直接用)
  • 多源自动切换:后端 70 个数据源互为备份,取数失败会自动换源且不扣调用次数
  • 口径固定,不用二次处理:K 线固定前复权(没有 adjust 参数),不会二次复权
  • 不用你维护:多源切换 / 缓存 / 巡检都在服务端,客户端只负责调用
  • 错误分类清楚:AuthError / RateLimitError / UpstreamError / EmptyResultError(无数据 ≠ 失败)—— 每类都告诉你该做什么
  • pandas 可选:不想装 pandas 也能用(返回 list[dict])

端点一览

方法 说明 免 Key
quote(code) 实时行情快照 ✅
kline(code, period, count, start, end) K 线(日/周/月/季/年 + 分钟线 m1~m120)· 复权口径由服务端固定(日线及以上前复权 · 分钟线不复权) ✅ 日线及以上 / ⚠️ 分钟线付费
minute(code, days) 分时(当日 / 近 5 日盘中走势)· 付费 —
hot(limit) 热搜榜 ✅
market_overview(type) 市场总览(画像/估值/风格轮动) ✅
changedist() 涨跌分布(市场广度) ✅
finance(code, num) 三大报表 —
fund(code) 资金流 + 龙虎榜 + 大宗 + 两融 —
technical(code) MA / MACD / KDJ / RSI / BOLL —
lhb(type) 龙虎榜分榜(机构 / 游资 / 活跃席位) —
screen(expr/preset, ...) 因子选股 —
search(q) 搜索消歧 —
kline_full(code, fq, start, end) 全历史日线一次拿全(约 2465 根)· fq 可选 qfq/hfq/nofq —
backtest(strategy, mode, code, ...) 量化回测(单标的实时 / 组合查预置区间 · weighting 可选等权或波动率倒数) —
backtest_batch(codes, strategies, ...) 批量回测(多标的 × 多策略对比矩阵 · ≤20 只 × 10 条) —
strategies() 量化策略清单(20 条单标的 + 9 条组合,含参数范围) —
factors(category, kind) 量化因子库(88 因子 + 50 筛选入口 + 22 预设) —
playbooks(category, id) 量化方法论库(13 条「怎么判断市场」流程) —
ip_whitelist(action, ips) IP 白名单(把 Key 锁定到固定 IP · action = get/set/clear) —

⚠️ K 线价格口径固定为前复权(除权除息日不跳空;没有 adjust 参数)—— 不要再自己复权(会二次复权)。

(完整 40 端点见 端点清单)

返回形态

装了 pandas 时方法返回 DataFrame(未装则返回 list[dict]),可直接按列名取字段:

df = cli.quote("sh600667")
print(df[["date", "last", "turnover"]])

需要原始信封(含 endpoint / tier / elapsed_ms / source)时用 raw=True:

cli = AShareAPI(raw=True)
env = cli.quote("sh600667")
# { 'ok': True, 'endpoint': '/v1/quote', 'tier': 'free', 'elapsed_ms': 862, 'source': '...', 'data': [...] }

⚠️ 三种返回形态:多数端点是单表 → DataFrame;finance() 是表列表(list[list[dict]]);shareholder() / calendar() 是多段结构({tables, data},原样 dict)。后两种不会被套成 DataFrame。

错误处理

from ashareapi import AShareAPI, AuthError, RateLimitError, UpstreamError, EmptyResultError

cli = AShareAPI()
try:
    df = cli.fund("sh600667")
except AuthError as e:          # 401 / 缺 Key → 去拿 Key
    print(e)
except RateLimitError as e:     # 429 → 降频 / 解 PoW 挑战提额 / 升级档位
    print(e)
except UpstreamError as e:      # 上游取数失败(已自动换源、不扣次数)→ 重试一次通常就好
    print(e)
except EmptyResultError as e:   # 当前无数据(如当天无大宗交易)→ 不计费,换条件或稍后再试
    print(e)

也用 AI Agent(MCP / Agent Skill)

除了 Python SDK,我们还提供两种 AI Agent 接入方式:

  • MCP 服务器(Streamable HTTP)—— 服务器地址 https://api.ashareapi.com/mcp (⚠️ 填这个接口地址;站点介绍页 ashareapi.com/mcp 不是接口)
  • 各客户端配置写法(Claude Code / Cursor / VS Code / Codex 等 19 家,键名差异都核对过官方文档): https://ashareapi.com/mcp
  • Agent Skill(给 AI Agent 读的接口说明书 + 分发包,装进 skills 目录即用):https://ashareapi.com/skill

免费工具/端点无需 Key;付费工具在请求头带 Authorization: Bearer <你的 Key>。

示例

仓里 examples/ 有可直接跑的示例:

文件 做什么
examples/quickstart.py 免费端点拿行情 / K 线 / 热搜(无需 Key)+ 付费端点的注释示例
python examples/quickstart.py

环境要求

  • Python ≥ 3.9
  • 只依赖 requests(≥ 2.28)
  • pandas 可选:装了返回 DataFrame,不装返回 list[dict]
  • 示例代码见 examples/quickstart.py

相关

官方 SDK:Python pip install ashareapi · Node.js / TypeScript npm install ashareapi

MCP 服务器:https://api.ashareapi.com/mcp(配置说明)

Agent Skill(给 AI 读的接口说明书):https://ashareapi.com/skill

版本记录

当前版本:0.2.0(2026-10-08)

版本 变更
0.2.0 新增量化方法 backtest() / backtest_batch() / strategies() / factors() / playbooks();补 kline_full() 全历史 K 线、ip_whitelist() IP 白名单;底层支持 POST/DELETE
0.1.11 新增 minute() 分时方法;kline() 支持分钟线 m1~m120 与 start/end 日期范围;解 PoW 提额由 60 次/分调为 15 次/分
0.1.10 429 提示补充匿名额度口径(单次最多 250 条 / 每天最多 10 万条)· 区分「每分钟次数超」与「当天条数超」(后者解 PoW 无效)· 无行为变更
0.1.9 文档完善:README 新增「环境要求」「返回形态」「示例」· 补 GitHub 仓 / Issues 链接与 CI 徽章 · 源码注释与文档表述统一(无行为变更)
0.1.8 文档措辞修订:价格口径(前复权)在 README / 方法文档 / CHANGELOG 中表述统一 · MCP 地址与 Agent Skill 说明更明确
0.1.7 文档:明确 MCP 服务器地址 https://api.ashareapi.com/mcp · 新增 Agent Skill 说明(/skill)· 变更记录链接改为可直接点开的绝对地址
0.1.6 文档:kline() 写明价格口径(前复权 · 无 adjust 参数 · 勿二次复权)
0.1.5 文档:换手率字段示例更新为 turnover · 补齐 0.1.3 / 0.1.4 两行 · 元数据 Changelog 指向站内更新日志
0.1.4 finance() 原样返回表列表 · shareholder() / calendar() 多段结构锁定 · User-Agent 版本号统一
0.1.3 文档修订(snapshot() / orderbook() 边界)· 新增 CHANGELOG.md + MANIFEST.in
0.1.2 新增 snapshot()(全字段画像)· 方法数 31 → 32
0.1.1 新增 orderbook()(五档盘口)· 方法数 30 → 31
0.1.0 首个版本(30 个方法 · 5 个免费端点)

⚠️ 端点本身永远是最新的(服务端演进,无需升级 SDK)—— 升级只是为了用上新增的便利方法。

完整变更记录 → 包内 CHANGELOG.md · 站内更新日志 · PyPI 版本历史

License

MIT · 数据仅供研究参考,不构成投资建议

About

A股数据 API 官方 Python SDK —— 行情/K线/分时/财务/资金/龙虎榜/板块/因子选股/量化回测(40 端点,免费端点无需注册)|Official Python SDK for the A-Share Data API — quotes, K-lines, financials, money flow, dragon-tiger lists, sectors, factor screening and quant backtests (40 endpoints, free endpoints need no signup)

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages