快速开始
本服务提供兼容 Tushare Pro 的数据访问入口。调用方继续使用 Tushare 的接口名、参数和字段, 只需要把请求发到本文档给出的服务地址,并使用分发的 API Key。
- 获取分发给你的 API Key 和 API 服务地址。
- 确认要调用的接口名,例如
daily、income、daily_basic。 - 选择一种接入方式:Python SDK、HTTP JSON 请求,或 MCP Server。
- 对网络超时、临时上游错误和限流错误增加重试。
| 方式 | 适合场景 | 核心配置 |
|---|---|---|
| 方式一:Tushare SDK | 已有 Python / Tushare 代码,希望最少改动。 | 设置 API Key,并把 SDK HTTP 地址改为 http://tu.mini-program.fun。 |
| 方式二:HTTP 请求 | 服务端、脚本、非 Python 语言直接调用。 | 向 http://tu.mini-program.fun 发送 Tushare 原始 JSON 请求体。 |
| 方式三:MCP Server | Cursor、Claude Code、Cline 等 AI 工具。 | 配置 http://tu.mini-program.fun/mcp/?token=你的 API Key。 |
API Key 使用方式
API Key 是调用身份。不同接入方式的放置位置不同,但都使用同一个分发给你的 API Key。
| 接入方式 | 放置位置 | 说明 |
|---|---|---|
| Tushare SDK | ts.set_token(...) |
按 SDK 标准方式设置 token,同时把 SDK HTTP 地址改为本文档服务地址。 |
| HTTP JSON 请求 | token |
请求 Body 中直接放入分发给你的 API Key,和 Tushare 官方 HTTP 格式一致。 |
| MCP Server | /mcp/?token=... |
MCP URL 的 token 参数填写分发给你的 API Key。 |
方式一:使用 Tushare SDK
如果已经使用 Python 版 tushare,通常只需要设置 token,并把 SDK 的 HTTP 地址改为网关地址。
pip install -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com tushare
import tushare as ts
ts.set_token("替换成你的 API Key")
pro = ts.pro_api()
pro._DataApi__http_url = "http://tu.mini-program.fun"
df = pro.daily(
ts_code="000001.SZ",
start_date="20260101",
end_date="20260110",
)
print(df)
ts.pro_bar() 等模块级函数
ts.pro_bar() 不是 pro 对象的方法,需要额外把上面创建的
pro 作为 Python 函数参数 api=pro 传入。
api=pro 不是 Tushare HTTP 请求体里的字段,也不是 fields 里的输出字段。
pro_bar 是 SDK 组合接口,不能用 {"api_name":"pro_bar"} 或在
daily 参数里加入 adj 的方式直接 HTTP 调用。
仅设置 pro._DataApi__http_url 还不够;如果不传 api=pro,
ts.pro_bar() 会重新创建默认官方地址的 SDK 客户端。
import tushare as ts
ts.set_token("替换成你的 API Key")
pro = ts.pro_api()
pro._DataApi__http_url = "http://tu.mini-program.fun"
df = ts.pro_bar(
ts_code="002594.SZ",
api=pro,
start_date="20180101",
end_date="20181011",
adj="qfq",
)
print(df)
如果直接使用 HTTP,需要改用可 HTTP 调用的底层接口。例如日线前复权价格可以请求
stk_factor_pro 的 open_qfq、high_qfq、
low_qfq、close_qfq 字段,或分别请求
daily 与 adj_factor 后在本地计算。
方式二:直接 HTTP 请求
直接向 API 服务根路径 / 发送 POST 请求。请求体保持 Tushare 原始 HTTP 格式。
Python requests:Token 放在 Body
import requests
resp = requests.post("http://tu.mini-program.fun", json={
"api_name": "daily",
"token": "替换成你的 API Key",
"params": {
"ts_code": "000001.SZ",
"start_date": "20260101",
"end_date": "20260110",
},
"fields": "ts_code,trade_date,open,high,low,close,vol",
}, timeout=30)
resp.raise_for_status()
print(resp.json())
curl 示例
curl -X POST "http://tu.mini-program.fun" \
-H "Content-Type: application/json" \
-d '{
"api_name": "daily",
"token": "替换成你的 API Key",
"params": {
"ts_code": "000001.SZ",
"start_date": "20260101",
"end_date": "20260110"
}
}'
| 字段 | 是否必填 | 说明 |
|---|---|---|
api_name |
是 | Tushare 接口名,例如 daily。 |
token |
是 | 分发给你的 API Key。 |
params |
按接口要求 | 接口业务参数,结构与 Tushare 官方一致。 |
fields |
否 | 返回字段,逗号分隔。 |
方式三:使用 MCP Server
如果使用 OpenClaw、Claude Code、Cursor、Trae、Cline 等支持 MCP 的工具,可以直接配置 MCP Server。
MCP 入口与 Tushare 官方形式保持一致,token 参数填写本文档分发给你的 API Key。
{
"mcpServers": {
"tushareMcp": {
"url": "http://tu.mini-program.fun/mcp/?token=替换成你的 API Key"
}
}
}
MCP 工具名与 Tushare API 名一致,例如 daily、stock_basic、trade_cal。
调用工具时直接传接口参数;fields 使用字符串数组,例如 ["ts_code", "trade_date", "close"]。
权限、有效期、频率和接口范围仍以你的 API Key 实际开通配置为准。
返回格式
SDK 和 HTTP 请求的正常返回与 Tushare Pro HTTP 响应结构保持兼容,常见形态如下:
{
"request_id": "...",
"code": 0,
"msg": "",
"data": {
"fields": ["ts_code", "trade_date", "close"],
"items": [
["000001.SZ", "20260110", 12.34]
]
}
}
业务错误、权限不足、token 失效、参数不满足接口要求时,也会尽量按 Tushare 客户端可处理的方式返回。
客户端仍应检查 code 和 msg。
MCP 调用遵循 MCP tool 返回格式:成功时工具内容是 JSON 数组文本,业务错误会以 MCP tool error 返回。
可用接口
Tushare 官方接口在积分满足要求时均可使用,独立权限接口除外。你的 API Key 会按实际开通的积分、有效期和接口范围生效。 调用前建议先查看 Tushare 官方接口文档,确认接口名、参数、字段和权限要求。
数据质量与支持
本服务按作者自己的真实使用需求持续维护,对数据准确性有更高要求。 系统做了多层冗余机制来避免错误数据进入调用链,并持续关注返回结构兼容、数据一致性和官方接口变化。
本服务也做了面向实际查询场景的性能优化,大部分常见查询在响应速度和稳定性上会优于直接调用官方接口。 如果你在使用中遇到数据差异、权限疑问或接口调用问题,可以提交接口名、参数、时间和返回内容,问题会被认真排查和处理。
做这个服务的初衷,是因为作者长期使用其他代理方式时多次遇到错误数据,排查成本很高。 数据工具不应该只服务少数人;希望通过更可靠、可维护的接入方式,让更多使用者能以合理成本获得专业的数据能力。
权限与限制
实际请求频率、每日额度、有效期和接口范围以你的 API Key 实际使用情况和开通配置为准。
如果请求被限制,客户端应等待一段时间后重试;如果长期被拒绝,请联系服务方确认 token 状态、权限范围和有效期。
客户端建议
- 请求超时建议设置为 30 秒左右,并对临时网络错误、上游波动和限流做退避重试。
- 优先传入明确查询条件,例如
ts_code、trade_date、start_date、end_date。 - 避免在业务高峰中频繁发起超大范围查询;如需批量历史数据,建议按日期或标的分片。
- 不要依赖返回行顺序做业务判断;需要稳定顺序时在客户端按日期、代码等字段排序。
常见问题
提示 token 无效怎么办?
确认服务地址已经改成本文档给出的 API 服务地址,并确认 Body 中的 token 是分发给你的 API Key。
SDK 还是访问了官方地址怎么办?
确认已经设置 pro._DataApi__http_url。如果环境变量里配置过旧 token,也建议清理后重试。
为什么通过 daily 获取不到前复权或后复权数据?
daily 是 Tushare 官方未复权日线行情接口,不支持 adj 参数,也不包含
open_qfq、close_qfq、adj_factor 等复权字段。Python SDK
获取复权行情请使用上文的 ts.pro_bar(..., api=pro) 方式;直接 HTTP 请求请改用
stk_factor_pro 的复权字段,或分别请求 daily 与 adj_factor 后在本地计算。
为什么有些接口没权限?
你的 API Key 只开放实际开通的权限范围。部分 Tushare 接口还需要独立权限,不能只按积分判断。
返回数据和官方有差异怎么办?
先记录接口名、参数、字段、请求时间和返回内容,再联系服务方排查缓存、新鲜度、官方接口变化或上游权限问题。
可以把这个地址交给 AI 编程工具吗?
可以。支持 MCP 的工具建议直接配置 http://tu.mini-program.fun/mcp/?token=你的 API Key;
也可以把本文档地址和 API 服务地址交给工具,并明确要求它按本文档设置 Tushare SDK 地址或发送 HTTP 请求。