A 股行情数据中心 API
面向 macOS、Windows、Linux 与获授权第三方的只读历史行情接口。
https://a-share-quant-lab.youyuzhou.com/api/v1
每次请求返回的数据都由 manifest 版本定义。正式回测请记录并固定 version,不要只依赖“最新”。
认证与安全
健康检查可匿名访问;其余接口需要只读 API Key。任选一种请求头:
Authorization: Bearer <api-key> # 或 X-API-Key: <api-key>
服务端只保存 Key 的 SHA-256 哈希。请勿将明文 Key 写进前端、Git、截图或公开示例。无效或缺失 Key 返回 401。
接口总览
| 接口 | 鉴权 | 用途 |
|---|---|---|
GET /health | 否 | 检查 Pages、R2 绑定和是否已有已发布版本。 |
GET /latest | 是 | 取得当前原子版本指针、发布时间与 manifest 地址。 |
GET /datasets | 是 | 列出当前版本的数据集、布局、对象数和字节数。 |
GET /datasets/{name} | 是 | 读取指定数据集的字段契约、主键、分区和对象列表。 |
GET /quotes/daily/{code} | 是 | 直接返回单只 A 股前复权日 K JSON;支持 start、end、fields 和 limit。 |
GET /manifests/{version} | 是 | 读取指定不可变版本完整 manifest。 |
GET, HEAD /objects/{sha256.ext} | 是 | 下载 manifest 中声明的 Parquet、CSV、JSON 或 ZIP 对象;支持 Range、ETag。 |
推荐调用顺序
- 请求
/latest并保存返回的version。 - 请求该版本的 manifest,按数据集、年/月分区选择必要对象。
- 下载对象后核对
bytes和sha256。 - 在本地用 pandas、PyArrow 或 DuckDB 按证券代码与日期过滤。Worker 不会扫描大 Parquet。
命令行示例
API=https://a-share-quant-lab.youyuzhou.com/api/v1 curl "$API/health" curl -H "Authorization: Bearer $MARKET_DATA_API_KEY" "$API/latest" curl -H "Authorization: Bearer $MARKET_DATA_API_KEY" "$API/datasets/kline_daily"
# 直接查询贵州茅台日线;返回值包含锁定的数据版本和 rows JSON 数组 curl -H "Authorization: Bearer $MARKET_DATA_API_KEY" \ "$API/quotes/daily/600519?start=2024-01-01&end=2024-12-31&fields=date,open,close,vol"
Python 客户端
python -m datahub.cli remote-configure \ --url https://a-share-quant-lab.youyuzhou.com \ --api-key '<api-key>' python -m datahub.cli remote-list python -m datahub.cli remote-pull --dataset kline_daily
import astock
# 自动锁定本次读取时的最新 manifest;正式回测建议显式传 version。
daily = astock.remote_kline("600519", start="2024-01-01", end="2026-09-01")
locked = astock.remote_kline("600519", version="20260901T110000Z")
数据口径与限制
- 日线、ETF 和指数按年分区;分钟线按周期和月分区。一次下载后会在本地按 SHA-256 缓存。
- 字段、来源、必选性和质量警告以 manifest 为准;不要假设所有历史字段都已回填。
- 接口只读,不提供云端回测或任意 SQL。复杂计算应在客户端使用锁定版本完成。
- 授权边界 行情源的二次分发授权未确认前,仅供个人设备和明确获授权的用户使用。