同花顺现在把自己的 A 股金融数据能力进一步开放给了开发者。

Financial-API,也就是 hithink-finance,是由同花顺官方提供和维护的 A 股金融数据服务。与普通股票行情接口相比,这个项目比较特别的地方在于,它从一开始就同时考虑了传统应用开发、Python 量化研究和 AI Agent 三种使用场景。

开发者可以使用一个统一的 API Key,通过 REST API、MCP、CLI 或 Python 获取数据;需要长期进行历史数据研究时,还可以把数据同步到本地 DuckDB;如果直接交给 AI Agent 使用,则可以安装官方提供的 hithink-finance Skill,让 Agent 自己判断应该通过哪种方式获取数据。

Financial-API 能查哪些数据?

目前公开的数据能力已经不只是简单的股票价格。

最基础的是 A 股最新行情快照,可以查询单只、多只甚至全市场股票的最新价格和交易数据。

历史数据方面提供 A 股历史日 K,同时支持指数和板块历史行情,可以用于趋势研究、回测和量化分析。

基本面方面,可以查询上市公司的利润表、资产负债表、现金流量表以及多类财务指标。

估值方面支持批量查询市盈率 TTM/MRQ、市净率 MRQ、市销率 TTM 和市现率 TTM 等估值指标。

此外还有交易日历、公司行动和复权因子。对于需要计算前复权、后复权行情的量化程序,这些数据可以直接参与历史价格处理。

集合竞价、涨停、炸板、连板和龙虎榜也开放了

Financial-API 中还有一部分比较有中国特色的 A 股市场数据。

例如集合竞价,可以批量查询竞价实时或者终态快照以及短期强弱基准。

短线市场研究方面,则包括涨跌停池、炸板池、连板数据、个股异动、热榜以及龙虎榜。

这些数据很适合开发每日复盘、市场情绪、热点题材以及短线资金分析工具。

例如可以让 AI 在收盘后自动获取当天的涨停池、炸板池、连板情况和龙虎榜,再结合板块行情进行分析,形成一套自动化 A 股复盘流程。

相比让 AI 自己在互联网上搜索财经新闻,这种方式使用的是标准化金融数据,后续统计和计算也更加方便。

公募基金也纳入了 Financial-API

Financial-API 不只是股票接口,同时提供了一套公募基金数据能力。

目前包括基金基本资料、基金公司、基金经理、财务数据、披露持仓、基金业绩、公开资讯,以及 ETF/LOF 场内行情等。

因此可以基于这套 API 开发基金研究工具,例如分析基金经理管理产品、基金历史业绩和公开持仓,也可以将 ETF/LOF 行情与 A 股市场数据结合起来研究。

一套 API Key,支持多种接入方式

Financial-API 一个比较方便的设计是统一认证。

REST API、MCP、CLI 和 Python 的远程取数可以共用同一个 API Key,官方推荐将 Key 保存为用户级环境变量 HITHINK_FINANCE_API_KEY

根据应用场景,可以选择不同的接入方式。

如果开发网站、App 或企业后台系统,直接使用 REST API 最简单,Java、Go、JavaScript、Python 等语言都可以通过标准 HTTP 请求访问。

如果主要做量化研究、Notebook 数据分析或者定时取数,可以使用 Python SDK,并与 Pandas、NumPy 和各种回测框架组合。

如果需要在服务器或者终端进行批量查询、数据下载和导出,可以使用官方 CLI。

如果需要长期保存历史数据,则可以使用 marketdb。

而如果目标是 Claude、Cursor、Windsurf 这样的 AI 工具,则可以直接使用 MCP 或者安装 Agent Skill。

官方 CLI 已经可以直接安装

项目提供了 hithink-finance CLI,官方推荐通过 npm 安装:

npm install -g @hithink-tech/hithink-finance-cli

安装以后可以先完成认证:

hithink-finance auth login

然后就可以直接在终端查询数据。

例如搜索贵州茅台:

hithink-finance symbol search --q 600519 --limit 5 --format json

查询最新行情:

hithink-finance market snapshot --thscodes 600519.SH --format json

或者获取最近四期利润表:

hithink-finance financials income --thscode 600519.SH --limit 4 --format json

CLI 可以统一输出 JSON,因此除了人在终端中使用,也比较适合作为 Agent 的底层数据工具。

MCP 分成四类托管服务

Financial-API 对 AI 应用最值得关注的部分之一仍然是 MCP。

官方并不是简单提供一个 MCP Server,而是按照数据类型划分了四组托管 MCP 服务。

hithink-finance-a-share 主要负责 A 股行情、上市公司财务以及同花顺特色数据。

hithink-finance-a-share-index 负责指数、板块以及相关行情。

hithink-finance-meta 负责股票标的检索、能力发现等基础信息。

hithink-finance-fund 则负责基金资料、基金公司、基金经理、披露信息、财务、净值、收益、资讯以及场内行情。

这种划分对于 Agent 来说比较合理,因为模型可以根据任务类型选择不同工具,而不是把所有金融接口全部堆到一个工具列表里。

Claude Desktop、Cursor、Windsurf 以及其他支持 MCP 的客户端,都可以通过这种方式接入。

Agent Skill 比单纯 MCP 更进一步

Financial-API 还专门提供了一个 hithink-finance Skill。

官方实际上把 Skill 定位成了 Agent 使用整个 Financial-API 项目的“统一说明书”。

它不仅告诉 Agent 有哪些接口,还包含接入方式选择、API/MCP/CLI/Python 的使用路径、股票名称与代码的消歧规则、API 契约、安全规范,以及大规模数据结果如何处理等规则。

例如用户只说:

查询贵州茅台最新行情,并分析近一年的涨跌幅、最大回撤和均线趋势。

Agent 可以先把“贵州茅台”转换成唯一的 thscode,获取最新行情,然后查询近一年日 K,再计算区间涨跌幅、最大回撤和均线。

如果用户提出:

获取沪深300当前成分股,并保存成文件。

Agent 又可以根据结果规模决定使用 CLI 获取数据并直接落盘,而不是把几百行结果全部塞进聊天窗口。

也就是说,Skill 解决的并不是“有没有 API”的问题,而是进一步告诉 AI:

面对不同金融任务,应该怎么选择和组合这些 API。

AI 会自己决定使用 API、MCP、CLI 还是 Python

这也是 Financial-API 的 Agent 设计中比较有意思的部分。

对于开发者来说,我们通常会纠结应该使用 REST API 还是 MCP。

但在安装 hithink-finance Skill 后,这个选择可以部分交给 Agent。

Agent 会根据当前环境、数据的新鲜程度、任务规模以及最终输出形式,在 API、MCP、CLI、Python SDK 和本地数据库之间选择更适合的方案。

比如“今天贵州茅台多少钱”,显然应该访问远程实时行情。

而“计算贵州茅台过去十年的最大回撤”,如果本地 DuckDB 已经存在足够新的历史数据,就没有必要重新下载。

如果要求下载全市场多年行情,则不应该让 API 返回几十万甚至几百万行数据到 AI 上下文,而是通过 CLI 或 Market Dumps 将数据保存为本地文件。

这种设计实际上已经开始接近真正的金融 Data Agent,而不只是给聊天机器人增加一个查股价的插件。

DuckDB 把历史行情直接保存到本地

Financial-API 还提供了一个 marketdb 工具。

它可以在本地建立 DuckDB 数据库,保存长期历史行情,并进行全量初始化和后续增量更新。

开发者可以同时保存原始行情、前复权和后复权数据,并通过 SQL 直接进行分析。

例如初始化数据后,可以直接查询贵州茅台最近十个交易日的前复权收盘价。

对于量化研究来说,这种方式比每次通过网络 API 拉取多年历史行情更加实用。

典型的数据流程可以变成:

同花顺远程数据 → Market Dumps / API → DuckDB → SQL / Python → 因子研究、选股、回测、AI 分析

尤其是在进行全市场研究时,本地数据库的意义会更加明显。

大规模数据不会全部塞给 AI

Financial-API 在 Agent 使用规范里专门考虑了大数据量问题。

全市场、多年、多标的或者分页全集数据,推荐直接落盘,只在 AI 对话中返回文件路径、数据行数和摘要。

这对于金融 Agent 很重要。

例如要求 AI 分析全部 A 股过去五年的日 K,如果把所有原始数据直接放进模型上下文,不仅成本高,也没有实际意义。

更合理的方法是让 Agent 获取数据后保存到 DuckDB 或文件,通过 SQL/Python 完成计算,最后只把统计结果交给模型解释。

这实际上形成了一种:

AI 负责理解任务和分析结果,数据库负责保存数据,SQL/Python 负责计算。

这种架构比让大模型直接“阅读”海量金融数据可靠得多。

还提供全市场数据下载

对于回测、选股和因子研究,Financial-API 支持全市场数据导出和 Market Dumps。

这类能力适合获取全量或者增量日 K、公司行动等标准数据文件。

因此如果只是查询几只股票,可以直接使用 API;如果要研究几千只股票几年甚至十几年的行情,则更适合通过 CLI / Market Dumps 下载,再建立本地 marketdb。

这样既降低 API 调用压力,也更加符合传统量化研究的数据处理方式。

Financial-API 目前也有明确的能力边界

从 GitHub 项目的说明来看,官方对目前开放的数据范围写得比较明确。

现阶段重点覆盖的是 A 股最新行情、历史日 K、财务、估值、指数、板块、集合竞价、特色市场数据以及公募基金等。

分钟 K、Tick、海外行情、宏观经济数据、新闻公告原文和券商研报目前不属于公开能力范围

这点在使用时需要特别注意。

例如让 Agent 分析某只股票今天盘中的 1 分钟走势,目前不能直接依赖这套公开接口完成。

如果需要美股、港股或者海外指数,同样需要另外的数据服务。

比普通金融 API 更像是一套“金融数据工具层”

从整个 GitHub 项目的结构来看,Financial-API 的定位已经不只是提供几个 HTTP 接口。

它实际上包含了:

远程金融数据服务 + REST API + MCP + CLI + Python SDK + Market Dumps + DuckDB marketdb + Agent Skill

对于传统开发者,可以只使用 REST API。

对于量化研究者,可以使用 Python、CLI 和 DuckDB。

对于 AI 应用开发者,则可以使用 MCP 和 Agent Skill。

而同一个应用中,也可以把这些方式组合起来。

例如开发一个 A 股研究 Agent:

自然语言提问 → Agent Skill 判断任务 → 标的检索确定 thscode → API 获取实时行情 → DuckDB 获取历史行情 → API 获取财务与估值 → Python 计算收益率、均线和最大回撤 → AI 生成分析结果

这已经不是传统意义上的“股票 API”,而更像是在为 AI Agent 和量化应用提供一层统一的 A 股金融数据基础设施。

对于正在开发金融 AI 助手、自动复盘系统、股票研究 Agent、量化选股、基金分析或者企业内部金融数据应用的人来说,这个项目值得关注。