# 同花顺金融数据 API 文档 — 完整聚合 > 本文件由站内所有文档自动聚合,供 LLM 一次性消费。 > 索引版本:https://fuyao.aicubes.cn/llms.txt > 在线版本:https://fuyao.aicubes.cn/docs --- # 入门 ## 用 AI 助手快速接入 来源:https://fuyao.aicubes.cn/ai-quickstart.md > 让 ChatGPT / Claude / Cursor 帮你 3 分钟内完成第一次 API 或 MCP 调用 > 让 ChatGPT / Claude / Cursor 帮你 3 分钟内完成第一次 API 或 MCP 调用。 > 全程不需要手写 curl,全程让 AI 替你生成代码或直接调用工具。 整体只有三件事: 1. **登录拿 API Key** —— 后端的 capability 都要鉴权,先签发一个属于你的 API Key。 2. **把站内 `llms-full.txt` 喂给 AI** —— 让 AI 一次性掌握全部接口契约。 3. **让 AI 帮你调** —— 要么让它生成 REST 代码、要么给它配 MCP 工具直接调。 --- ## 第 1 步:登录并签发 API Key 1. 打开 ,用同花顺账号登录。 2. 进入「API Key 管理」页(),点击 **创建 API Key**,填一个别名(例如 `ai-playground`)。 3. 提交后窗口里弹出的完整 API Key **只此一次可见**,请立刻保存到本地的密码管理器或 `.env`。 更详细的步骤、API Key 生命周期与常见报错见 。 --- ## 第 2 步:把文档喂给 AI 本站根目录提供两份给 AI 用的纯文本聚合: - —— 索引清单,**适合 AI 先扫一眼知道有哪些接口**。 - —— 全站全文聚合,**适合一次性塞进上下文窗口,让 AI 看到完整字段、参数与示例**。 下面按使用场景给两种喂法。 ### 方式一:URL 直接给 AI 适用于 Claude、ChatGPT(带浏览能力的版本)、Cursor、Perplexity 等。 在对话里贴: ``` 请抓取 https://fuyao.aicubes.cn/llms-full.txt 作为接口参考, 后续我所有关于金融数据 API 的提问都基于这份文档作答。 ``` ### 方式二:文件 / 文本粘贴 不支持浏览的模型,把 `llms-full.txt` 下载下来作为附件上传,或直接复制到对话里: ```bash curl -O https://fuyao.aicubes.cn/llms-full.txt ``` --- ## 第 3 步:让 AI 调接口 下面是两条典型路径,**任选其一**即可。 ### 路径 A:让 AI 生成 REST 调用代码(最易上手) 最适合:偶尔取一次数据、写个小脚本、在 Notebook 里跑回测。 在 AI 对话里直接提问(把 `` 换成你自己的): ``` 我有一个 API Key: 请用 Python (requests) 写一段代码, 取贵州茅台 (600519.SH) 最近 4 期年报利润表, 打印每期的营业收入和归母净利润。 要点: - BaseURL: https://fuyao.aicubes.cn - 请求头携带 X-api-key - 响应是 ApiResponse 信封,业务数据在 data.item ``` AI 会基于 `llms-full.txt` 里的端点定义生成可运行的代码。把代码贴到本地跑,确认能正常返回即可。 > 如果 AI 写错了字段名或路径,把报错(特别是 `code` / `message`)贴回去让它纠正—— > `llms-full.txt` 已经包含完整的错误码表,AI 一般能自纠。 ### 路径 B:配 MCP,让 AI 直接调工具 最适合:在 Claude Desktop / Cursor / Windsurf 里持续对话查数据,不想反复跑脚本。 #### Claude Desktop / Cursor 配置示例 在客户端的 MCP 配置文件里加入这两个 MCP 服务: ```json { "mcpServers": { "fuyao-a-share": { "type": "http", "url": "https://fuyao.aicubes.cn/mcp/a-share", "headers": { "X-api-key": "" } }, "fuyao-meta": { "type": "http", "url": "https://fuyao.aicubes.cn/mcp/meta", "headers": { "X-api-key": "" } } } } ``` > 不同客户端的配置文件位置、字段名略有差异(如 Claude Desktop 是 `claude_desktop_config.json`, > Cursor 是 `~/.cursor/mcp.json`),具体见对应客户端文档。 配好后重启客户端,在对话里直接问: > "贵州茅台今天涨多少?再帮我把它最近 1 个月日 K 拉出来" 客户端会自动: 1. 调 `fuyao-meta` → `get_meta_tickers_search` 解析 "贵州茅台" → `600519.SH` 2. 调 `fuyao-a-share` → `get_a_share_prices_snapshot` 拿当前行情 3. 调 `fuyao-a-share` → `get_a_share_prices_historical` 拿历史 K 线 更多 AI 跨工具调用场景见 。 --- ## 进阶建议 - **接口报 `code=2001` / `code=2003`**:API Key 失效或没权限,回 重新签发或申请权限。 - **AI 生成的代码字段对不上**:让 AI 重新拉 `llms-full.txt` 校对,或贴上具体的 REST API 参考页 URL(如 )。 - **想给 AI 更精准的上下文**:只贴用得到的子文档(例如调财务时只贴 ),减小 token 占用。 - **API Key 不要明文写入提示词或代码**:用环境变量或客户端的 secret 配置注入。 调通后,建议把工作流沉淀成一段「系统提示词」复用,例如: ``` 你是金融数据 API 的接入助手。所有金融数据查询请基于 https://fuyao.aicubes.cn/llms-full.txt 的接口契约,输出可直接运行的 Python/curl 代码, 并在结果中明确解释字段含义。API Key 由我用环境变量 FUYAO_API_KEY 提供。 ``` ## 同花顺金融数据API 来源:https://fuyao.aicubes.cn/docs/ > 面向 AI Agent / 量化研究 / Fintech 应用的结构化金融数据服务 [快速开始 →](/docs/quickstart) [浏览 REST API](/docs/api-reference/overview) ## 你可以访问什么 按 **标的宇宙 / 数据类型** 两级路径组织,覆盖行情、代码表、公司行动、财务报表、交易日历与全市场导出: - [REST API](/docs/api-reference/overview): 标准 HTTP 接口,按 `/api/<标的宇宙>/<数据类型>/<动作>` 形态组织。覆盖行情快照、 历史 K 线、标的检索 / 目录、公司行动与全市场 Parquet 导出。 - [MCP 工具](/docs/mcp/overview): 面向 AI Agent / LLM 工具链的 MCP Tools,与 REST 共享同一套 capability。 以 MCP Tools 形态暴露,鉴权方式相同。 - [A 股 · 行情数据](/docs/api-reference/prices): 单只 / 多只 / 全市场行情快照 + 单只标的历史 K 线(日 / 周 / 月),支持前复权 / 后复权。 - [A 股 · 公司行动](/docs/api-reference/corporate-actions): 单只 A 股的原始复权因子事件流(现金分红 / 送股 / 配股),供客户端自行推导复权因子。 - [A 股 · 财务报表](/docs/api-reference/financials): 单只 A 股的整体合并利润表 / 资产负债表 / 现金流量表多期序列,支持最近 N 期或时间区间取数。 - [A 股 · 交易日历](/docs/api-reference/calendar): A 股近一年交易日序列,同时返回毫秒戳与 `yyyyMMdd` 可读日期,方便展示与对账。 - [A 股 · 同花顺指数列表和成分股](/docs/api-reference/a-share-index): 按 tag 列出同花顺指数清单,并按 thscode 取当前成分股(同时支持沪深 300 等标准指数)。 - [元信息 · 标的检索与目录](/docs/api-reference/tickers): 按 thscode / ticker / 名称做跨市场消歧检索,或按市场与资产类型批量获取代码表。 - [统一响应信封](/docs/api-reference/overview): 所有接口返回 `ApiResponse`(`code` / `message` / `request_id` / `data`),业务错误经 `code` 表达。 ## 面向人群 - **AI Agent / LLM 开发者** —— 直接拿结构化字段喂模型,无需自己写抓取与解析层。 - **量化研究 / 策略平台** —— 行情快照 + 历史 K 线 + 复权事件,覆盖回测与实时打分场景。 - **Fintech / 投研产品** —— snake_case 字段直接驱动前端图表与表格。 - **个人开发者 / 学习者** —— 接口契约清晰,API Key 管理页一键签发 API Key 并预览结果。 ## 设计原则 - **LLM-friendly schema** —— snake_case 字段、显式 `currency`、毫秒级 Unix 时间戳,减少模型解析歧义。 - **统一响应信封** —— 所有业务结果(含错误)HTTP 200 返回,经 `code` 字段分发,方便客户端单点处理。 - **路径分层清晰** —— URL 形如 `/api/<标的宇宙>/<数据类型>/<动作>`(如 `/api/a-share/prices/snapshot`)。 - **原始数据为主** —— 复权因子返回原始事件流,客户端可自由推导前复权 / 后复权;预计算结果走 `prices?adjust=...`。 ## 从这里开始 - [快速开始](/docs/quickstart): 3 分钟跑通第一次 snapshot 与 search 调用。 - [项目介绍](/docs/introduction): 产品定位、当前范围与响应规范。 - [API Key 管理](/admin): 在浏览器内签发并管理 API Key。 ## 项目介绍 来源:https://fuyao.aicubes.cn/docs/introduction/ > 同花顺金融数据产品的能力范围与接入方式 本服务是面向 **AI Agent、量化研究与 Fintech 应用** 的结构化金融数据服务。 我们将 A 股市场的行情、公司行动、财务报表、交易日历与代码表整理为低延迟、易解析的结构化字段, 通过统一的响应信封对外暴露,方便接入方直接喂模型、做回测或驱动前端图表。 ## 提供的数据 | 数据域 | 内容 | 说明 | |---|---|---| | [A 股 · 行情数据](/docs/api-reference/prices) | 单只 / 多只 / 全市场行情快照 + 历史 K 线(日 / 周 / 月) | 支持前复权 / 后复权。 | | [A 股 · 公司行动](/docs/api-reference/corporate-actions) | 现金分红、送股、配股原始事件流 | 客户端可自行推导复权因子。 | | [A 股 · 财务报表](/docs/api-reference/financials) | 利润表 / 资产负债表 / 现金流量表多期序列 | 支持最近 N 期或时间区间取数。 | | [A 股 · 交易日历](/docs/api-reference/calendar) | 近一年交易日序列 | 同时返回 `date_ms` 毫秒戳与 `date`(`yyyyMMdd`)。 | | [A 股 · 同花顺指数列表和成分股](/docs/api-reference/a-share-index) | 同花顺指数列表 + 成分股清单 | 同时支持沪深 300 等标准指数的成分股查询。 | | [元信息 · 标的检索与目录](/docs/api-reference/tickers) | 跨市场标的检索与代码表批量获取 | 按 thscode / ticker / 名称消歧。 | | [全市场数据导出](/docs/api-reference/market-dumps) | 全 A 股 10 年日 K 与全历史复权因子 Parquet 文件 | 通过预签名链接一次性拉全市场数据。 | 字段统一使用 snake_case、毫秒级 Unix 时间戳与显式 `currency`,便于 LLM 解析。 所有业务结果(含错误)走统一 `ApiResponse` 信封 —— 详见 [API 参考 · 通用约定](/docs/api-reference/overview)。 ## 接入方式 - [REST API](/docs/api-reference/overview): 标准 HTTP 接口,按 `/api/<标的宇宙>/<数据类型>/<动作>` 组织。 使用 `X-api-key` 请求头鉴权。 - [MCP 工具](/docs/mcp/overview): 面向 AI Agent / 大模型工作流的 Model Context Protocol 接入。 以 MCP Tools 形态暴露同一套 capability,鉴权使用在「API Key 管理」页签发的 API Key。 ## 鉴权方式 调用所有数据接口都需要一个 **API Key**: 1. 使用同花顺账号登录文档站。 2. 进入 [API Key 管理](/admin) 页创建一个具名 API Key。 3. 在请求头中携带 `X-api-key: ` 即可访问 REST API;MCP 接入同样使用该 API Key。 具体步骤见 [快速开始](/docs/quickstart)。 ## 面向人群 - **AI Agent / LLM 开发者** —— 直接拿结构化字段喂模型,省去抓取与解析层。 - **量化研究 / 策略平台** —— 行情快照 + 历史 K 线 + 复权事件,覆盖回测与实时打分。 - **Fintech / 投研产品** —— snake_case 字段直接驱动前端图表与表格。 - **个人开发者 / 学习者** —— 接口契约清晰,「API Key 管理」页一键签发 API Key 并预览结果。 ## 快速开始 来源:https://fuyao.aicubes.cn/docs/quickstart/ > 3 步获取 API Key 并发起第一次调用 export const LoginButton = () => ( ); 调用同花顺金融数据接口只需要 3 步:**登录 → 签发 API Key → 携带 `X-api-key` 调用**。 ## 1. 登录 使用同花顺账号登录文档站: 登录成功后会回跳到「API Key 管理」页,登录态保存在浏览器 Cookie 中。 ## 2. 在「API Key 管理」页签发 API Key 进入 [API Key 管理](/admin),点击 **创建 API Key**,填写: - **别名**:用于区分不同用途(例如 `my-dev-key`、`backtest-prod`)。 提交后会立即返回完整 API Key —— **请妥善保存,关闭弹窗后只能在列表里再次查看**。 > API Key 与你的同花顺账号绑定。可在「API Key 管理」页的"已创建 API Key"列表中查看和管理已签发的 API Key。 ## 3. 调用 REST API 在请求头中携带 `X-api-key: `。以行情快照为例: ```bash curl 'https://fuyao.aicubes.cn/api/a-share/prices/snapshot?thscodes=600519.SH' \ -H 'X-api-key: ' ``` 成功响应统一走 `ApiResponse` 信封: ```json { "code": 0, "message": "success", "request_id": "a1b2c3d4", "data": { "timestamp": 1716105600000, "item": [ ] } } ``` 完整端点与参数见 [API 参考](/docs/api-reference/overview)。 ## MCP 接入 后端 capability 同时以 MCP Tools 形态暴露给 AI Agent 工具链, 鉴权复用上一步签发的 API Key,通过环境变量 `API_KEY` 注入: ```bash export API_KEY="" ``` 具体工具列表见 [MCP 工具概览](/docs/mcp/overview)。 ## 常见问题 - **API Key 显示"登录态已失效"**:Cookie 过期,重新登录后再签发即可。 - **调用返回 `code=2001`**:`X-api-key` 缺失或无效,确认请求头携带了有效的 API Key。 - **调用返回 `code=2003`**:API Key 无权访问该 capability,请联系管理员开通对应权限。 - **达到 API Key 数量上限**:删除不再使用的 API Key 后重试。 --- # REST API 参考 ## API 参考 来源:https://fuyao.aicubes.cn/docs/api-reference/overview/ > REST API 端点总览 同花顺金融数据API 以一套 REST 接口对外提供能力,并同时通过 **MCP Tools** 暴露给 AI Agent 工具链。 两种调用方式共享同一套后端 capability,数据语义完全一致。所有业务响应(含错误)统一返回 HTTP 200, 业务结果经响应信封的 `code` 字段表达。 ## 接口分组 | 分组 | 路径前缀 | 说明 | |---|---|---| | [价格数据 (prices)](./prices.mdx) | `/api/a-share/prices` | A 股行情快照与历史 K 线。 | | [全市场数据导出 (market-dumps)](./market-dumps.mdx) | `/dump/market-dumps` | 价格数据子模块:A 股全市场历史日 K 与复权因子 Parquet 文件下载链接。 | | [标的检索与目录 (tickers)](./tickers.mdx) | `/api/meta/tickers` | 跨市场标的检索与代码表批量获取。 | | [公司行动 (corporate-actions)](./corporate-actions.mdx) | `/api/a-share/corporate-actions` | A 股复权因子事件流(分红 / 送股 / 配股)。 | | [财务报表 (financials)](./financials.mdx) | `/api/a-share/financials` | A 股整体合并利润表 / 资产负债表 / 现金流量表多期序列。 | | [交易日历 (calendar)](./calendar.mdx) | `/api/a-share/calendar` | A 股近一年交易日序列(含毫秒戳与 `yyyyMMdd`)。 | | [同花顺指数列表和成分股 (a-share-index)](./a-share-index.mdx) | `/api/a-share-index` | 同花顺指数列表与成分股清单(同时支持沪深 300 等标准指数)。 | ## 通用约定 - **Base URL**:`https://fuyao.aicubes.cn`。 - **必需请求头**:`X-api-key: `,缺失或无效返回 `code=2001`;API Key 无权访问该 capability 返回 `code=2003`。 - 实体标识统一使用 `thscode`(如 `600519.SH`),不接受纯代码 `ticker`(如 `600519`)。 - 时间戳字段统一为毫秒级 Unix 时间戳(`long`),时区按 `Asia/Shanghai`。 ## 响应信封 所有接口返回统一的 `ApiResponse` 信封: ```json { "code": 0, "message": "success", "request_id": "a1b2c3d4e5f6789012345678abcdef01", "data": { "timestamp": 1716105600000, "item": [ ] } } ``` | 字段 | 类型 | 说明 | |---|---|---| | `code` | integer | 业务结果码,`0` 表示成功,非 `0` 表示业务错误。 | | `message` | string | 结果描述。 | | `request_id` | string | 请求追踪 ID。 | | `data` | object | 业务数据容器,按接口而定;错误时可能省略。 | | `data.timestamp` | long | 数据时间戳(毫秒)。 | | `data.item` | array | 业务数据列表。 | ## 错误码 | code | 含义 | 典型场景 | |---|---|---| | `0` | 成功 | - | | `1001` | 缺少必填参数 | `start` / `end` / `q` / `thscode` 漏传。 | | `1002` | 参数格式错误 | `exchange` 不在 `SH` / `SZ` / `BJ`。 | | `1003` | 参数取值越界 | `limit <= 0`;`historical` / `financials` 的 `[start, end]` 窗口超过 10 年。 | | `1004` | 参数冲突 | `financials` 同时传 `start`/`end` 与 `limit`;仅传 `start` 或仅传 `end`(半开区间)。 | | `2001` | 未认证 | `X-api-key` 缺失或无效。 | | `2003` | 权限不足 | API Key 无权调用该 capability。 | | `4001` | 频率超限 | 超过约定 QPS。 | | `5001` | 服务内部错误 | 服务端未知错误。 | | `5002` | 上游服务超时 | 数据源响应超时。 | | `5003` | 数据源不可用 | 上游服务暂时不可用或返回非 0 状态。 | ## MCP 接入 上述 REST capability 同时暴露为 MCP Tools,供 AI Agent 调用。 工具命名、参数与返回值见 [MCP 工具概览](/docs/mcp/overview)。 ## 价格数据 来源:https://fuyao.aicubes.cn/docs/api-reference/prices/ > A 股行情快照与历史 K 线接口 价格数据模块,提供 A 股行情快照与历史 K 线序列。 所有接口均返回统一响应信封 `ApiResponse`,业务错误经 `code` 字段表达,HTTP 状态码恒为 200。 :::info 通用约定 - **Base URL**:`https://fuyao.aicubes.cn`。 - **必需请求头**:`X-api-key`,缺失或无效返回 `code=2001`。 - 时间戳字段统一为毫秒级 Unix 时间戳,时区按 `Asia/Shanghai`。 - 价格类字段为原始货币计价,A 股恒为 `CNY`。 ::: ## 行情快照 ```text GET /api/a-share/prices/snapshot ``` **MCP Tool**:[`get_a_share_prices_snapshot`](/docs/mcp/tools/get_a_share_prices_snapshot) 获取 A 股行情快照。`thscodes` 显式传入(逗号分隔)时按入参顺序批量取数、不分页; 省略时遍历完整 A 股代码表(按 thscode 升序),并按 `limit` / `offset` 分页。 ### 请求参数 | 参数 | 位置 | 类型 | 必需 | 说明 | 默认值 | |---|---|---|---|---|---| | `thscodes` | query | string | 否 | 逗号分隔的 thscode 列表,如 `600519.SH,000001.SZ`。给定时忽略分页参数。 | - | | `limit` | query | integer | 否 | 分页大小,仅在 `thscodes` 省略时生效。 | `100` | | `offset` | query | integer | 否 | 分页偏移,仅在 `thscodes` 省略时生效。 | `0` | ### 请求示例 ```bash # 批量按 thscodes 取 curl 'https://fuyao.aicubes.cn/api/a-share/prices/snapshot?thscodes=600519.SH,000001.SZ' \ -H 'X-api-key: ' # 全市场分页 curl 'https://fuyao.aicubes.cn/api/a-share/prices/snapshot?limit=100&offset=0' \ -H 'X-api-key: ' ``` ### 响应示例 ```json { "code": 0, "message": "success", "request_id": "7e25804be878464ba420037155f041e6", "data": { "timestamp": null, "total": 2, "item": [ { "thscode": "600519.SH", "ticker": "600519", "volume": 3098875, "turnover": 3937375200, "last_price": 1277.8, "price_change": 21.8, "price_change_ratio_pct": 1.735669, "open_price": 1252.08, "high_price": 1282, "low_price": 1250.21, "prev_price": 1256 } ] } } ``` ### 响应字段 `data` 为 `SnapshotData`: | 字段 | 类型 | 说明 | |---|---|---| | `timestamp` | long \| null | 数据就绪时间(毫秒)。按 `thscodes` 显式取数时为 `null`;分页全市场模式下为序列中最新有效时间。 | | `total` | int | 全市场代码表总数(用于分页模式估算页数)。 | | `item` | array | 快照记录列表,单条记录也以数组返回。 | `item[]` 为 `PriceSnapshotItem`: | 字段 | 类型 | 说明 | |---|---|---| | `thscode` | string | 带交易所后缀的完整 thscode,如 `600519.SH`。 | | `ticker` | string | 纯代码(无交易所后缀),如 `600519`。 | | `last_price` | number | 最新成交价(原始货币)。 | | `price_change` | number | 相对前收盘价的涨跌额(原始货币)。 | | `price_change_ratio_pct` | number | 涨跌幅,单位为百分比数值(如 `1.74` 表示 +1.74%)。 | | `open_price` | number | 当日开盘价。 | | `high_price` | number | 当日最高价。 | | `low_price` | number | 当日最低价。 | | `prev_price` | number | 前收盘价。 | | `volume` | number | 成交量(股)。 | | `turnover` | number | 成交额(原始货币)。 | :::note 中文名解析 快照响应不返回标的中文名 `name`。如需展示中文名,请配合 [`/api/meta/tickers/search`](./tickers.mdx#标的检索) 或 [`/api/meta/tickers/list`](./tickers.mdx#标的目录) 解析。 ::: ## 历史 K 线 ```text GET /api/a-share/prices/historical ``` **MCP Tool**:[`get_a_share_prices_historical`](/docs/mcp/tools/get_a_share_prices_historical) 获取单只标的的 A 股历史 K 线序列。接口层强约束:**每次请求仅一个 thscode**, 且 `[start, end]` 窗口跨度不超过 10 年。 ### 请求参数 | 参数 | 位置 | 类型 | 必需 | 说明 | 默认值 | |---|---|---|---|---|---| | `thscode` | query | string | 是 | 单只标的 thscode,**不接受逗号**。多标的请分多次请求。 | - | | `interval` | query | string | 是 | K 线周期,**当前仅支持** `1d`(日线)。 | `1d` | | `start` | query | long | 是 | 起始时间,毫秒 Unix 时间戳。缺失返回 `code=1001`。 | - | | `end` | query | long | 是 | 结束时间,毫秒 Unix 时间戳。`end - start` 超过 10 年返回 `code=1003`。 | - | | `adjust` | query | string | 否 | 复权方式:`none` / `forward`(前复权) / `backward`(后复权)。 | `forward` | | `offset` | query | integer | 否 | 分页偏移。 | `0` | ### 请求示例 ```bash curl 'https://fuyao.aicubes.cn/api/a-share/prices/historical?thscode=600519.SH&interval=1d&start=1716105600000&end=1747641600000&adjust=forward' \ -H 'X-api-key: ' ``` ### 响应示例 ```json { "code": 0, "message": "success", "request_id": "b9f91af9c77a42d6b8a04738793d2fa2", "data": { "timestamp": 1747584000000, "item": [ { "date_ms": 1716134400000, "open_price": 1611.602, "high_price": 1626.602, "low_price": 1601.722, "close_price": 1602.612, "volume": 3142572.0, "turnover": 5401389334.87 } ] } } ``` ### 响应字段 `data` 为 `HistoricalData`: | 字段 | 类型 | 说明 | |---|---|---| | `timestamp` | long | 数据就绪时间(毫秒),为序列中最新一根 K 线的上游有效时间。 | | `item` | array | K 线列表。 | `item[]` 为 `PriceBarItem`: | 字段 | 类型 | 说明 | |---|---|---| | `date_ms` | long | K 线日期(毫秒)。 | | `open_price` | number | 开盘价。 | | `high_price` | number | 最高价。 | | `low_price` | number | 最低价。 | | `close_price` | number | 收盘价。 | | `volume` | number | 成交量(股)。 | | `turnover` | number | 成交额(原始货币)。 | ## 全市场数据导出 来源:https://fuyao.aicubes.cn/docs/api-reference/market-dumps/ > A 股全市场历史 K 线与复权因子 Parquet 文件下载 全市场数据导出是价格数据模块的便捷入口,用于一次性获取全市场历史行情, 适合批量回测、离线分析、自建数据仓库等场景。相较于逐 thscode 调用 [历史 K 线](./prices.mdx), 本模块直接提供整库 Parquet 下载,更适合一次拉全市场。 ## 一键获取下载链接 下面的按钮会以登录态 Cookie 调用对应接口,返回的 S3 预签名链接会展示在弹窗里。 登录入口见 [API Key 管理](/admin)。 :::caution 过期处理 预签名链接的有效期非常短(通常 5 分钟),不要持久化或缓存。需要长期使用时,应在每次下载前重新点击「获取下载链接」。 ::: ## Parquet 文件结构 两种 dump 共享同一套元信息约定,按 `dump_id` 区分: | dump | dump_id | 主键 | 时间字段 | |---|---|---|---| | 日 K | `a_share_daily_k_1d_none_1y` | `(thscode, date_ms)` | `date_ms` | | 复权因子 | `a_share_adjustment_factors_event_none_all` | `(thscode, ex_date_ms)` | `ex_date_ms` | ### 日 K 列 | 列 | 类型 | 说明 | |---|---|---| | `thscode` | string | 带交易所后缀的完整代码。 | | `currency` | string | 币种代码,A 股为 `CNY`。 | | `interval` | string | 周期代码,固定为 `1d`。 | | `adjusted` | string | 复权方式,固定为 `none`(未复权)。 | | `date_ms` | long | K 线日期(毫秒,`Asia/Shanghai` 零点)。 | | `open_price` / `high_price` / `low_price` / `close_price` | number | OHLC,原始货币计价。 | | `volume` | number | 成交量(股)。 | | `turnover` | number | 成交额(原始货币)。 | ### 复权因子列 | 列 | 类型 | 说明 | |---|---|---| | `thscode` | string | 带交易所后缀的完整代码。 | | `ticker` | string | 展示用代码。 | | `ex_date_ms` | long | 除权除息日(毫秒,`Asia/Shanghai` 零点)。 | | `dividend_per_share` | number | 每股现金分红(税前)。 | | `per_share_bonus` | number | 每股送股比例。 | | `allotment_ratio` | number | 配股比例。 | | `allotment_price` | number | 配股价格(原始货币)。 | | `currency` | string | 币种代码,A 股为 `CNY`。 | ## 解读脚本示例 下面这份 Python 脚本演示如何读取并校验下载到的 Parquet 文件,支持按 `thscode` / 日期范围过滤、 导出 CSV、检查重复键等。脚本会根据 schema 自动识别两种 dump,因此对日 K 和复权因子均可直接使用。 依赖:`pyarrow`(`python3 -m pip install pyarrow`)。 ```bash # 下载到本地后直接读取 python3 read_market_dump.py /tmp/a_share_daily_k.parquet # 过滤特定 thscode python3 read_market_dump.py /tmp/a_share_daily_k.parquet --ticker 600519.SH # 按日期范围导出 CSV python3 read_market_dump.py /tmp/a_share_daily_k.parquet \ --from-date 2025-01-01 --to-date 2025-12-31 \ --export-csv /tmp/sample.csv # 检查 (thscode, date_ms) 唯一性 python3 read_market_dump.py /tmp/a_share_daily_k.parquet --check-duplicates ``` 完整脚本: ```python #!/usr/bin/env python3 """ Read and inspect Fuyao market-dump Parquet files for both publishable kinds: - daily-k rows keyed by (thscode, date_ms), dump_id a_share_daily_k_1d_none_1y - adjustment-factors rows keyed by (thscode, ex_date_ms), dump_id a_share_adjustment_factors_event_none_all The kind is auto-detected from the Parquet schema (presence of `ex_date_ms`), so the same CLI works for either dump. Examples (daily-k): python3 scripts/read_market_dump.py build/dump/a_share_daily_k_1d_none_1y/20260602/manifest.json python3 scripts/read_market_dump.py build/dump/a_share_daily_k_1d_none_1y/20260602 --ticker 600519.SH python3 scripts/read_market_dump.py build/dump/a_share_daily_k_1d_none_1y/20260602 --check-duplicates python3 scripts/read_market_dump.py build/dump/a_share_daily_k_1d_none_1y/20260602 --export-csv /tmp/sample.csv Examples (adjustment-factors): python3 scripts/read_market_dump.py build/dump/a_share_adjustment_factors_event_none_all/20260602 python3 scripts/read_market_dump.py build/dump/a_share_adjustment_factors_event_none_all/20260602 --ticker 600519.SH python3 scripts/read_market_dump.py build/dump/a_share_adjustment_factors_event_none_all/20260602 --check-duplicates Inspecting a file downloaded via GET /internal/market-dumps//download-url: python3 scripts/read_market_dump.py /tmp/market-dump-daily-k.parquet """ from __future__ import annotations ## 标的检索与目录 来源:https://fuyao.aicubes.cn/docs/api-reference/tickers/ > 跨市场标的检索与代码表批量获取 元信息域,承载跨市场标的检索与代码表浏览。 响应是完整标的信息(`thscode` / `ticker` / `name` / `exchange` / `asset_type` / `currency`), 所有接口均返回统一响应信封 `ApiResponse`。 :::info 通用约定 - **Base URL**:`https://fuyao.aicubes.cn`。 - **必需请求头**:`X-api-key`,缺失或无效返回 `code=2001`。 - 时间戳字段统一为毫秒级 Unix 时间戳。 ::: ## 标的检索 ```text GET /api/meta/tickers/search ``` **MCP Tool**:[`get_meta_tickers_search`](/docs/mcp/tools/get_meta_tickers_search) 按关键词(thscode / ticker / 中英文名称)跨市场消歧,支持子串匹配。 ### 请求参数 | 参数 | 位置 | 类型 | 必需 | 说明 | 默认值 | |---|---|---|---|---|---| | `q` | query | string | 是 | 搜索关键词:完整 thscode、ticker 代码或中英文名称(支持子串匹配)。 | - | | `exchange` | query | string | 否 | 交易所过滤:`SH`(沪市) / `SZ`(深市) / `BJ`(北交所)。 | - | | `asset_type` | query | string | 否 | 资产类别过滤:`a-share`(A 股) / `a-share-index`(A 股指数)。 | - | | `limit` | query | integer | 否 | 返回上限,最大 `50`。 | `10` | ### 请求示例 ```bash # 按名称模糊搜索 curl 'https://fuyao.aicubes.cn/api/meta/tickers/search?q=%E5%B9%B3%E5%AE%89&limit=20' \ -H 'X-api-key: ' # 按 thscode 精确解析 curl 'https://fuyao.aicubes.cn/api/meta/tickers/search?q=600519.SH' \ -H 'X-api-key: ' ``` ### 响应示例 ```json { "code": 0, "message": "success", "request_id": "c3d4e5f6", "data": { "timestamp": 1716105600000, "item": [ { "thscode": "601318.SH", "ticker": "601318", "name": "中国平安", "exchange": "SH", "asset_type": "a-share", "currency": "CNY" } ] } } ``` ## 标的目录 ```text GET /api/meta/tickers/list ``` **MCP Tool**:[`get_meta_tickers_list`](/docs/mcp/tools/get_meta_tickers_list) 批量获取代码表,支持按交易所/资产类别过滤。采用 offset/limit 分页, 调用方循环递增 `offset` 直到 `item.length < limit` 即可取尽。 ### 请求参数 | 参数 | 位置 | 类型 | 必需 | 说明 | 默认值 | |---|---|---|---|---|---| | `exchange` | query | string | 否 | 逗号分隔的交易所列表,`SH` / `SZ` / `BJ`,可多选。 | `SH,SZ` | | `asset_type` | query | string | 否 | 资产类别:`a-share` / `a-share-index`。 | `a-share` | | `limit` | query | integer | 否 | 单页条数,最大 `10000`。 | `1000` | | `offset` | query | integer | 否 | 分页偏移。 | `0` | ### 请求示例 ```bash # 拉取全部沪深 A 股 curl 'https://fuyao.aicubes.cn/api/meta/tickers/list?exchange=SH,SZ&asset_type=a-share&limit=1000&offset=0' \ -H 'X-api-key: ' # 拉取 A 股指数 curl 'https://fuyao.aicubes.cn/api/meta/tickers/list?asset_type=a-share-index&limit=500' \ -H 'X-api-key: ' ``` ### 响应示例 ```json { "code": 0, "message": "success", "request_id": "f7g8h9i0", "data": { "timestamp": 1716105600000, "item": [ { "thscode": "600519.SH", "ticker": "600519", "name": "贵州茅台", "exchange": "SH", "asset_type": "a-share", "currency": "CNY" } ] } } ``` ## 响应字段 `search` 与 `list` 共用 `data` 结构: | 字段 | 类型 | 说明 | |---|---|---| | `timestamp` | long | 数据就绪时间(毫秒),为当前代码表快照的上游加载时间。 | | `item` | array | 标的列表。 | `item[]` 为 `TickerItem`: | 字段 | 类型 | 说明 | |---|---|---| | `thscode` | string | 完整 thscode,如 `600519.SH`。 | | `ticker` | string | 纯代码,如 `600519`。 | | `name` | string | 展示名称。 | | `exchange` | string | 交易所后缀(`SH` / `SZ` / `BJ`),无后缀指数为 `null`。 | | `asset_type` | string | 对外资产类别(`a-share` / `a-share-index`)。 | | `currency` | string | 币种代码,A 股恒为 `CNY`。 | ## 公司行动 来源:https://fuyao.aicubes.cn/docs/api-reference/corporate-actions/ > A 股复权因子事件流(分红 / 送股 / 配股) 公司行动模块,提供 A 股复权因子事件流。 返回原始的 cash-dividend / stock-dividend / rights-issue 事件,供客户端自行推导复权因子; 若需预计算的复权后价格,请使用价格模块的 [历史 K 线](./prices.mdx) 接口(`adjust=forward|backward`)。 :::info 通用约定 - **Base URL**:`https://fuyao.aicubes.cn`。 - **必需请求头**:`X-api-key`,缺失或无效返回 `code=2001`。 - 请求参数 `from` / `to` 使用 `YYYY-MM-DD` 字符串;响应中的事件日期为毫秒 Unix 时间戳 `ex_date_ms`。 ::: ## 复权因子事件流 ```text GET /api/a-share/corporate-actions/adjustment-factors ``` **MCP Tool**:[`get_a_share_corporate_actions_adjustment_factors`](/docs/mcp/tools/get_a_share_corporate_actions_adjustment_factors) 获取单只标的的 A 股复权因子事件流。**每次请求仅一个 thscode**。 ### 请求参数 | 参数 | 位置 | 类型 | 必需 | 说明 | 默认值 | |---|---|---|---|---|---| | `thscode` | query | string | 是 | 单只标的 thscode,**不接受逗号**。 | - | | `from` | query | string | 否 | 事件起始日,格式 `YYYY-MM-DD`。 | - | | `to` | query | string | 否 | 事件截止日,格式 `YYYY-MM-DD`。 | - | ### 请求示例 ```bash # 茅台全部历史复权事件 curl 'https://fuyao.aicubes.cn/api/a-share/corporate-actions/adjustment-factors?thscode=600519.SH' \ -H 'X-api-key: ' # 平安银行近 5 年事件 curl 'https://fuyao.aicubes.cn/api/a-share/corporate-actions/adjustment-factors?thscode=000001.SZ&from=2021-01-01&to=2026-01-01' \ -H 'X-api-key: ' ``` ### 响应示例 ```json { "code": 0, "message": "success", "request_id": "558c1d59d2e548149fb27b83eca5016a", "data": { "thscode": "600519.SH", "ticker": "600519", "item": [ { "ticker": "600519", "ex_date_ms": 1766073600000, "dividend_per_share": 23.957, "per_share_bonus": 0 }, { "ticker": "600519", "ex_date_ms": 1437062400000, "dividend_per_share": 4.374, "per_share_bonus": 0.1 } ] } } ``` ### 响应字段 `data` 为 `AdjustmentFactorsData`: | 字段 | 类型 | 说明 | |---|---|---| | `thscode` | string | 带交易所后缀的完整 thscode(与 `item` 同级,标识本次返回所属标的)。 | | `ticker` | string | 纯代码(无交易所后缀)。 | | `item` | array | 事件列表,按 `ex_date_ms` 降序排列(最新在前)。 | `item[]` 为 `AdjustmentFactorItem`: | 字段 | 类型 | 说明 | |---|---|---| | `ticker` | string | 纯代码(无交易所后缀),如 `600519`。 | | `ex_date_ms` | long | 除权除息日,Asia/Shanghai 00:00:00 毫秒 Unix 时间戳。 | | `dividend_per_share` | number | 每股现金分红(税前,原始货币)。非现金事件为 `0`。 | | `per_share_bonus` | number | 每股送股比例(如 `0.1` 表示 10 送 1)。纯现金分红事件为 `0`。 | :::note 字段约定差异 - 响应中**不返回** `event_type` / `record_date` / `adjust_factor`,事件类型由 `dividend_per_share` 与 `per_share_bonus` 两个数值字段隐式区分。 - 复权因子需调用方按 `dividend_per_share` + `per_share_bonus` 自行推导;若仅需复权后价格,直接调用 [`/api/a-share/prices/historical`](./prices.mdx#历史-k-线) 并传 `adjust=forward|backward`。 ::: ## 财务报表 来源:https://fuyao.aicubes.cn/docs/api-reference/financials/ > A 股整体合并利润表 / 资产负债表 / 现金流量表多期序列 财务报表模块,提供 A 股整体合并报表(consolidated)多期序列,覆盖利润表、资产负债表、现金流量表。 三个接口入参契约**完全一致**,仅返回字段不同(见各自小节)。 所有接口均返回统一响应信封 `ApiResponse`,业务错误经 `code` 字段表达,HTTP 状态码恒为 200。 :::info 通用约定 - **Base URL**:`https://fuyao.aicubes.cn`。 - **必需请求头**:`X-api-key`,缺失或无效返回 `code=2001`。 - 时间戳字段统一为毫秒级 Unix 时间戳,时区按 `Asia/Shanghai`。 - 所有金额字段单位为**原币元**,`basic_eps` 单位为**元/股**(量级远小于金额字段,不可做单位换算);A 股币种恒为 `CNY`。 - 字段为 `null` 表示「该期未披露」,透传不补零。 ::: ## 取数模式 三个接口共用两种取数模式,**互斥、二选一**: | 模式 | 触发条件 | 行为 | |---|---|---| | 最近 N 期 | 不传 `start` / `end` | 返回最近 `limit` 期,按 `period_end` 降序。 | | 时间区间 | 同时传 `start` + `end`(毫秒戳) | 返回 `[start, end]` 闭区间内全部报告期,按 `period_end` 降序。 | 同时传 `start`/`end` 与 `limit`,或仅传 `start`、仅传 `end`(半开区间),返回 `code=1004`。 ## 共有请求参数 | 参数 | 位置 | 类型 | 必需 | 说明 | 默认值 | |---|---|---|---|---|---| | `thscode` | query | string | 是 | 单只标的 thscode,**不接受逗号**;含交易所后缀(如 `600519.SH` / `000858.SZ` / `430047.BJ`)。 | - | | `period` | query | enum | 是 | 报告期类型:`annual`(仅 Q4 报告期) / `quarterly`(每个季度末)。 | `annual` | | `limit` | query | integer | 否 | 最近 N 期模式:默认 4,范围 `[1, 20]`。**与 `start`/`end` 互斥**。 | `4` | | `start` | query | long | 否 | 时间区间模式:起始毫秒戳,需与 `end` 同传;窗口跨度不超过 10 年。 | - | | `end` | query | long | 否 | 时间区间模式:结束毫秒戳,`end >= start`。 | - | ## 共有响应字段 每条 `item` 都含以下元数据字段,`data.timestamp` 取响应中最大的 `period_end_ms`: | 字段 | 类型 | 说明 | |---|---|---| | `thscode` | string | 带交易所后缀的完整 thscode。 | | `ticker` | string | 纯代码(不含后缀)。 | | `period` | enum | 入参 `period` 回显。 | | `fiscal_year` | int | 财年(自然年)。 | | `fiscal_period` | string | `FY` / `Q1` / `Q2` / `Q3` / `Q4`。 | | `report_date_ms` | long | 披露日(毫秒)。 | | `period_end_ms` | long | 报告期末(Asia/Shanghai 零点毫秒戳)。 | | `currency` | string | 币种,A 股恒为 `CNY`。 | ## 利润表 ```text GET /api/a-share/financials/income-statements ``` **MCP Tool**:[`get_a_share_financials_income_statements`](/docs/mcp/tools/get_a_share_financials_income_statements) A 股整体合并利润表多期序列。取数模式与参数见上文。 ### 请求示例 ```bash # 最近 3 期年报 curl 'https://fuyao.aicubes.cn/api/a-share/financials/income-statements?thscode=600519.SH&period=annual&limit=3' \ -H 'X-api-key: ' # 2023Q1–2024Q4 全部季报(时间区间模式) # start = 2023-01-01 00:00:00+08:00 → 1672502400000 # end = 2024-12-31 00:00:00+08:00 → 1735574400000 curl 'https://fuyao.aicubes.cn/api/a-share/financials/income-statements?thscode=600519.SH&period=quarterly&start=1672502400000&end=1735574400000' \ -H 'X-api-key: ' ``` ### 响应示例 ```json { "code": 0, "message": "success", "request_id": "e5f6g7h8", "data": { "timestamp": 1735574400000, "item": [ { "thscode": "600519.SH", "ticker": "600519", "period": "annual", "fiscal_year": 2024, "fiscal_period": "FY", "report_date_ms": 1735574400000, "period_end_ms": 1735574400000, "currency": "CNY", "operating_income": 174144000000, "operating_costs": 13000000000, "operating_expenses": 50000000000, "sales_fee": 5000000000, "manage_fee": 9000000000, "research_and_development_expenses": 150000000, "operating_profit": 124000000000, "interest_expenses": 0, "profit_total": 124000000000, "income_tax_expense": 31000000000, "net_profit": 93000000000, "parent_holder_net_profit": 86000000000, "basic_eps": 68.50 } ] } } ``` ### 利润表附加字段 | 字段 | 类型 | 说明 | |---|---|---| | `operating_income` | number | 营业收入(原币元)。 | | `operating_costs` | number | 营业成本(原币元)。 | | `operating_expenses` | number | 营业总成本(原币元)。 | | `sales_fee` | number | 销售费用(原币元)。 | | `manage_fee` | number | 管理费用(原币元)。 | | `research_and_development_expenses` | number | 研发费用(原币元)。 | | `operating_profit` | number | 营业利润(原币元)。 | | `interest_expenses` | number | 利息费用(原币元)。 | | `profit_total` | number | 利润总额(原币元)。 | | `income_tax_expense` | number | 所得税费用(原币元)。 | | `net_profit` | number | 净利润(原币元)。 | | `parent_holder_net_profit` | number | 归属于母公司股东的净利润(原币元)。 | | `basic_eps` | number | 基本每股收益(元/股)。 | ## 资产负债表 ```text GET /api/a-share/financials/balance-sheets ``` **MCP Tool**:[`get_a_share_financials_balance_sheets`](/docs/mcp/tools/get_a_share_financials_balance_sheets) A 股整体合并资产负债表多期序列。取数模式与参数同利润表。 ### 请求示例 ```bash # 五粮液最近 4 期季报(默认 limit=4) curl 'https://fuyao.aicubes.cn/api/a-share/financials/balance-sheets?thscode=000858.SZ&period=quarterly' \ -H 'X-api-key: ' ``` ### 响应示例 ```json { "code": 0, "message": "success", "request_id": "f6g7h8i9", "data": { "timestamp": 1735574400000, "item": [ { "thscode": "000858.SZ", "ticker": "000858", "period": "quarterly", "fiscal_year": 2024, "fiscal_period": "Q4", "report_date_ms": 1735574400000, "period_end_ms": 1735574400000, "currency": "CNY", "assets_total": 250000000000, "total_current_assets": 200000000000, "non_current_nets_total": 50000000000, "cash": 130000000000, "accounts_receivable": 500000000, "total_debt": 60000000000, "holder_equity_total": 190000000000 } ] } } ``` ### 资产负债表附加字段 | 字段 | 类型 | 说明 | |---|---|---| | `assets_total` | number | 资产总计(原币元)。 | | `total_current_assets` | number | 流动资产合计(原币元)。 | | `non_current_nets_total` | number | 非流动资产合计(原币元)。 | | `cash` | number | 货币资金(原币元)。 | | `accounts_receivable` | number | 应收账款(原币元)。 | | `total_debt` | number | 负债合计(原币元)。 | | `holder_equity_total` | number | 所有者权益(股东权益)合计(原币元)。 | ## 现金流量表 ```text GET /api/a-share/financials/cash-flow-statements ``` **MCP Tool**:[`get_a_share_financials_cash_flow_statements`](/docs/mcp/tools/get_a_share_financials_cash_flow_statements) A 股整体合并现金流量表多期序列。取数模式与参数同利润表。 ### 请求示例 ```bash # 茅台 2020–2024 全部年报(时间区间模式) # start = 2020-01-01 00:00:00+08:00 → 1577808000000 # end = 2024-12-31 00:00:00+08:00 → 1735574400000 curl 'https://fuyao.aicubes.cn/api/a-share/financials/cash-flow-statements?thscode=600519.SH&period=annual&start=1577808000000&end=1735574400000' \ -H 'X-api-key: ' ``` ### 响应示例 ```json { "code": 0, "message": "success", "request_id": "g7h8i9j0", "data": { "timestamp": 1735574400000, "item": [ { "thscode": "600519.SH", "ticker": "600519", "period": "annual", "fiscal_year": 2024, "fiscal_period": "FY", "report_date_ms": 1735574400000, "period_end_ms": 1735574400000, "currency": "CNY", "act_cash_flow_net": 92000000000, "invest_cash_flow_net": -3000000000, "financing_cash_flow_net": -65000000000, "pay_fixed_assets_etc_cash": 3500000000, "pay_dividends_profits_interest_cash": 64000000000, "cash_equivalents_net_addition": 24000000000 } ] } } ``` ### 现金流量表附加字段 | 字段 | 类型 | 说明 | |---|---|---| | `act_cash_flow_net` | number | 经营活动产生的现金流量净额(原币元)。 | | `invest_cash_flow_net` | number | 投资活动产生的现金流量净额(原币元)。 | | `financing_cash_flow_net` | number | 筹资活动产生的现金流量净额(原币元)。 | | `pay_fixed_assets_etc_cash` | number | 购建固定资产、无形资产和其他长期资产支付的现金(原币元)。 | | `pay_dividends_profits_interest_cash` | number | 分配股利、利润或偿付利息支付的现金(原币元)。 | | `cash_equivalents_net_addition` | number | 现金及现金等价物净增加额(原币元)。 | ## 交易日历 来源:https://fuyao.aicubes.cn/docs/api-reference/calendar/ > A 股近一年交易日序列 交易日历模块,提供 A 股近一年交易日序列。 返回统一响应信封 `ApiResponse`,业务错误经 `code` 字段表达,HTTP 状态码恒为 200。 :::info 通用约定 - **Base URL**:`https://fuyao.aicubes.cn`。 - **必需请求头**:`X-api-key`,缺失或无效返回 `code=2001`。 - 信封 `data.timestamp` 为毫秒级 Unix 时间戳;`item` 内同时返回毫秒戳 `date_ms` 与可读日期 `date`(`yyyyMMdd`),时区按 `Asia/Shanghai`。 ::: ## 交易日序列 ```text GET /api/a-share/calendar/trading-days ``` **MCP Tool**:[`get_a_share_calendar_trading_days`](/docs/mcp/tools/get_a_share_calendar_trading_days) A 股近一年交易日序列,**固定窗口**为 `[今日 - 1 年, 今日]`(Asia/Shanghai 自然日),无任何请求参数。 ### 请求参数 | 参数 | 位置 | 类型 | 必需 | 说明 | 默认值 | |---|---|---|---|---|---| | - | - | - | - | 无入参。 | - | ### 请求示例 ```bash curl 'https://fuyao.aicubes.cn/api/a-share/calendar/trading-days' \ -H 'X-api-key: ' ``` ### 响应示例 ```json { "code": 0, "message": "success", "request_id": "a1b2c3d4e5f6789012345678abcdef01", "data": { "timestamp": 1748102400000, "item": [ { "date_ms": 1716566400000, "date": "20250525" }, { "date_ms": 1716652800000, "date": "20250526" }, { "date_ms": 1716739200000, "date": "20250527" } ] } } ``` ### 响应字段 `data` 为 `TradingDaysData`: | 字段 | 类型 | 说明 | |---|---|---| | `timestamp` | long | 数据就绪时间(毫秒)。 | | `item` | array | 交易日列表,按时间升序。 | `item[]` 为 `TradingDayItem`: | 字段 | 类型 | 说明 | |---|---|---| | `date_ms` | long | 单个交易日的 Asia/Shanghai 00:00:00 毫秒戳。 | | `date` | string | 同一交易日的 `yyyyMMdd` 格式(Asia/Shanghai),方便直接展示 / 对账。 | ## 同花顺指数列表和成分股 来源:https://fuyao.aicubes.cn/docs/api-reference/a-share-index/ > 同花顺指数 / 板块的列表浏览与成分股清单 同花顺指数构成域,承载同花顺指数列表浏览与成分股清单获取。 典型调用顺序:先用 catalog 拿到目标指数的 `thscode`,再用 constituents 取成分股。 :::info 通用约定 - **Base URL**:`https://fuyao.aicubes.cn`。 - **必需请求头**:`X-api-key`,缺失或无效返回 `code=2001`。 - `thscode` 入参均会被 `trim().toUpperCase()` 标准化,**不接受逗号**,单次仅支持一个指数。 ::: ## 同花顺指数列表 ```text GET /api/a-share-index/catalog/ths-index-list ``` **MCP Tool**:[`get_a_share_index_catalog_ths_index_list`](/docs/mcp/tools/get_a_share_index_catalog_ths_index_list) 按 `tag`(概念 / 区域 / 特色 / 行业)列出同花顺指数清单,单 `tag` 一次性全量返回, 无分页参数。 ### 请求参数 | 参数 | 位置 | 类型 | 必需 | 说明 | 默认值 | |---|---|---|---|---|---| | `tag` | query | string | 否 | 标签白名单:`cn_concept`(A 股概念) / `region`(区域指数) / `tszs`(特色指数) / `industry`(行业指数)。大小写不敏感。 | `cn_concept` | ### 请求示例 ```bash # 拉取全部概念板块 curl 'https://fuyao.aicubes.cn/api/a-share-index/catalog/ths-index-list?tag=cn_concept' \ -H 'X-api-key: ' # 拉取全部同花顺行业指数 curl 'https://fuyao.aicubes.cn/api/a-share-index/catalog/ths-index-list?tag=industry' \ -H 'X-api-key: ' ``` ### 响应示例 ```json { "code": 0, "message": "success", "request_id": "e5f6g7h8", "data": { "timestamp": 1748102400000, "item": [ { "thscode": "886042.TI", "name": "白酒概念" }, { "thscode": "886041.TI", "name": "新能源车" } ] } } ``` ### 响应字段 | 字段 | 类型 | 说明 | |---|---|---| | `timestamp` | long | 数据时间戳(毫秒)。 | | `item[].thscode` | string | 同花顺指数的完整 thscode,如 `886042.TI`。 | | `item[].name` | string | 同花顺指数展示名称。 | > 指数维度不暴露纯代码 `ticker`。 ## 同花顺指数成分股 ```text GET /api/a-share-index/constituents/ths-stock-list ``` **MCP Tool**:[`get_a_share_index_constituents_ths_stock_list`](/docs/mcp/tools/get_a_share_index_constituents_ths_stock_list) 按单个指数 `thscode` 返回当前成分股清单。 支持同花顺板块指数(如 `886042.TI`)与标准指数(如沪深 300 `000300.SH` / `399300.SZ`)。 ### 请求参数 | 参数 | 位置 | 类型 | 必需 | 说明 | 默认值 | |---|---|---|---|---|---| | `thscode` | query | string | 是 | 指数 thscode,形如 `{ticker}.{suffix}`。入参会被 `trim().toUpperCase()` 标准化;**不接受逗号**,单次仅支持一个指数。 | - | ### 请求示例 ```bash # 拉取某同花顺概念板块成分股 curl 'https://fuyao.aicubes.cn/api/a-share-index/constituents/ths-stock-list?thscode=886042.TI' \ -H 'X-api-key: ' # 拉取沪深 300 成分股 curl 'https://fuyao.aicubes.cn/api/a-share-index/constituents/ths-stock-list?thscode=000300.SH' \ -H 'X-api-key: ' ``` ### 响应示例 ```json { "code": 0, "message": "success", "request_id": "f6g7h8i9", "data": { "timestamp": 1748102400000, "item": [ { "thscode": "600519.SH", "ticker": "600519", "name": "贵州茅台" }, { "thscode": "000858.SZ", "ticker": "000858", "name": "五粮液" } ] } } ``` ### 响应字段 | 字段 | 类型 | 说明 | |---|---|---| | `timestamp` | long | 数据时间戳(毫秒)。 | | `item[].thscode` | string | 成分股完整 thscode。 | | `item[].ticker` | string | 成分股纯代码。 | | `item[].name` | string | 成分股展示名称。 | --- # MCP 接入 ## MCP 工具概览 来源:https://fuyao.aicubes.cn/docs/mcp/overview/ > 给 LLM Agent 用的 REST 适配器 —— 命名、边界、运行方式 MCP 工具是**给 LLM Agent 用的 REST 适配器**。它不重写业务逻辑,只重新组织参数与 响应形态,让 LLM 在对话中更容易选对工具、传对参数、解析返回值。 - **薄包装原则**:工具实现层只调 REST router,不直接访问 service 层。 - **数据语义一致**:MCP 与 REST 共享同一套后端 capability,字段含义完全相同。 - **错误透传**:REST 错误体 `{code, message, request_id}` 原样回传给客户端。 ## 鉴权 | 形态 | 入口 | 鉴权 | |---|---|---| | 托管 MCP Server | 上游网关代理 | 网关校验 `X-api-key` header | | 自托管 / 本地调试 | 通过 MCP 客户端本地启动 | 环境变量 `API_KEY` 注入 | ```bash export API_KEY="" ``` API Key 与 REST API 共用,可在 [API Key 管理](/admin) 页签发。 ## MCP 服务与访问端点 按标的宇宙拆分为三个 MCP 服务,MCP 端点 host 为 `fuyao.aicubes.cn`: | MCP 服务 | 标的宇宙 | MCP 访问端点 | |---|---|---| | `fuyao-a-share-mcp` | A 股标的宇宙 | `https://fuyao.aicubes.cn/mcp/a-share` | | `fuyao-a-share-index-mcp` | A 股同花顺指数 | `https://fuyao.aicubes.cn/mcp/a-share-index` | | `fuyao-meta-mcp` | 跨宇宙元信息 | `https://fuyao.aicubes.cn/mcp/meta` | `fuyao-meta-mcp` 提供的标的检索是其余业务工具的前置步骤,建议与任一业务 MCP 服务 一起加载。挂载到 Claude Desktop / Cursor / 其他 MCP 客户端后即可在对话中调用以下 工具。 ## 客户端快速配置 把下面这段 JSON 粘进 MCP 客户端的配置文件即可同时挂载两个服务。`` 替换为在 [API Key 管理](/admin) 页签发的 API Key。 ```json { "mcpServers": { "fuyao-a-share": { "type": "http", "url": "https://fuyao.aicubes.cn/mcp/a-share", "headers": { "X-api-key": "" } }, "fuyao-a-share-index": { "type": "http", "url": "https://fuyao.aicubes.cn/mcp/a-share-index", "headers": { "X-api-key": "" } }, "fuyao-meta": { "type": "http", "url": "https://fuyao.aicubes.cn/mcp/meta", "headers": { "X-api-key": "" } } } } ``` 各客户端配置文件位置: | 客户端 | 配置文件路径 | |---|---| | Claude Desktop | `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) · `%APPDATA%\Claude\claude_desktop_config.json` (Windows) | | Cursor | `~/.cursor/mcp.json` | | Windsurf | `~/.codeium/windsurf/mcp_config.json` | | Cline (VS Code) | 命令面板 → `Cline: Open MCP Settings` | 配好后**重启客户端**生效,在对话里可直接调用下表中的工具。 ## 工具一览 当前共注册 **11 个工具**,覆盖行情快照、历史 K 线、复权因子事件流、财务报表(利润表 / 资产负债表 / 现金流量表)、交易日历、标的检索 / 目录、同花顺指数列表 / 成分股。 | MCP 服务 | MCP 端点 | MCP 工具 | 中文名 | 对应 REST | |---|---|---|---|---| | fuyao-a-share-mcp | `/mcp/a-share` | [`get_a_share_prices_snapshot`](./tools/get_a_share_prices_snapshot.mdx) | A股行情快照 | `GET /api/a-share/prices/snapshot` | | fuyao-a-share-mcp | `/mcp/a-share` | [`get_a_share_prices_historical`](./tools/get_a_share_prices_historical.mdx) | A股历史K线 | `GET /api/a-share/prices/historical` | | fuyao-a-share-mcp | `/mcp/a-share` | [`get_a_share_corporate_actions_adjustment_factors`](./tools/get_a_share_corporate_actions_adjustment_factors.mdx) | 复权因子事件流 | `GET /api/a-share/corporate-actions/adjustment-factors` | | fuyao-a-share-mcp | `/mcp/a-share` | [`get_a_share_financials_income_statements`](./tools/get_a_share_financials_income_statements.mdx) | 利润表 | `GET /api/a-share/financials/income-statements` | | fuyao-a-share-mcp | `/mcp/a-share` | [`get_a_share_financials_balance_sheets`](./tools/get_a_share_financials_balance_sheets.mdx) | 资产负债表 | `GET /api/a-share/financials/balance-sheets` | | fuyao-a-share-mcp | `/mcp/a-share` | [`get_a_share_financials_cash_flow_statements`](./tools/get_a_share_financials_cash_flow_statements.mdx) | 现金流量表 | `GET /api/a-share/financials/cash-flow-statements` | | fuyao-a-share-mcp | `/mcp/a-share` | [`get_a_share_calendar_trading_days`](./tools/get_a_share_calendar_trading_days.mdx) | A股交易日历 | `GET /api/a-share/calendar/trading-days` | | fuyao-a-share-index-mcp | `/mcp/a-share-index` | [`get_a_share_index_catalog_ths_index_list`](./tools/get_a_share_index_catalog_ths_index_list.mdx) | 同花顺指数列表 | `GET /api/a-share-index/catalog/ths-index-list` | | fuyao-a-share-index-mcp | `/mcp/a-share-index` | [`get_a_share_index_constituents_ths_stock_list`](./tools/get_a_share_index_constituents_ths_stock_list.mdx) | 同花顺指数成分股 | `GET /api/a-share-index/constituents/ths-stock-list` | | fuyao-meta-mcp | `/mcp/meta` | [`get_meta_tickers_search`](./tools/get_meta_tickers_search.mdx) | 标的检索(跨市场消歧) | `GET /api/meta/tickers/search` | | fuyao-meta-mcp | `/mcp/meta` | [`get_meta_tickers_list`](./tools/get_meta_tickers_list.mdx) | 标的目录(代码表浏览) | `GET /api/meta/tickers/list` | ## AI Agent 跨服务调用场景 [`get_meta_tickers_search`](./tools/get_meta_tickers_search.mdx) 是**前置工具**:当 LLM 不确定标准 `thscode` 代码时,应先调它消歧,再调数据工具。`fuyao-meta-mcp` 解析标的, `fuyao-a-share-mcp` 取业务数据,两者配合完成完整链路。 ### 场景一:查询股票行情 用户:"查一下贵州茅台今天的行情" 1. `fuyao-meta-mcp` → `get_meta_tickers_search`,`q: "贵州茅台"`,获取 `thscode: 600519.SH` 2. `fuyao-a-share-mcp` → `get_a_share_prices_snapshot`,`thscodes: "600519.SH"`,获取实时行情 ### 场景二:获取历史走势 用户:"茅台最近一年的日 K 线走势如何?" 1. `fuyao-meta-mcp` → `get_meta_tickers_search`,`q: "茅台"`,获取 `thscode: 600519.SH` 2. 计算当前与一年前的毫秒时间戳 3. `fuyao-a-share-mcp` → `get_a_share_prices_historical`,`thscode/interval/start/end/adjust` ### 场景三:获取股票代码表 用户:"列出所有沪深 A 股代码" 1. `fuyao-meta-mcp` → `get_meta_tickers_list`,`exchange: "SH,SZ"`,`asset_type: "a-share"`,`limit: 1000`,`offset: 0` 2. 若返回数量等于 limit,递增 offset 继续调用直到取尽 ### 场景四:查询公司财务报表 用户:"茅台最近 3 年的年报利润情况" 1. `fuyao-meta-mcp` → `get_meta_tickers_search`,`q: "茅台"`,获取 `thscode: 600519.SH` 2. `fuyao-a-share-mcp` → `get_a_share_financials_income_statements`,`thscode: "600519.SH"`,`period: "annual"`,`limit: 3` ### 场景五:对比多家公司资产负债 用户:"对比茅台和五粮液最近一期季报的资产负债表" 1. `fuyao-meta-mcp` → `get_meta_tickers_search`,`q: "茅台"`,获取 `thscode: 600519.SH` 2. `fuyao-meta-mcp` → `get_meta_tickers_search`,`q: "五粮液"`,获取 `thscode: 000858.SZ` 3. `fuyao-a-share-mcp` → `get_a_share_financials_balance_sheets`,`thscode: "600519.SH"`,`period: "quarterly"`,`limit: 1` 4. `fuyao-a-share-mcp` → `get_a_share_financials_balance_sheets`,`thscode: "000858.SZ"`,`period: "quarterly"`,`limit: 1` ### 场景六:查看交易日历 用户:"最近一年有哪些交易日" 1. `fuyao-a-share-mcp` → `get_a_share_calendar_trading_days`,无参数,返回近一年交易日列表(无需前置检索) ### 场景七:拉取概念板块成分股 用户:"白酒概念板块都有哪些股票?" 1. `fuyao-a-share-index-mcp` → `get_a_share_index_catalog_ths_index_list`,`tag: "cn_concept"`, 从返回 `item` 中匹配 `name = "白酒概念"` 的 `thscode`(例如 `886042.TI`) 2. `fuyao-a-share-index-mcp` → `get_a_share_index_constituents_ths_stock_list`, `thscode: "886042.TI"`,拿到成分股清单 ### 场景八:取沪深 300 成分股实时行情 用户:"沪深 300 成分股今天的行情" 1. `fuyao-a-share-index-mcp` → `get_a_share_index_constituents_ths_stock_list`, `thscode: "000300.SH"`,拿到成分股 `thscode` 列表 2. 将 `thscode` 列表逗号拼接(可分批以控制单次请求长度) 3. `fuyao-a-share-mcp` → `get_a_share_prices_snapshot`,`thscodes: "..."`,批量取实时行情 ## 与 REST 的差异 - **认证方式**:REST 在请求 header 携带 `X-api-key`;MCP 通过环境变量 `API_KEY` 注入。 - **调用方式**:REST 通过 HTTP 客户端调用;MCP 以 MCP Server 形态供 AI Agent 调用。 - **数据完全一致**:两者调用同一套后端 capability,字段、错误码、响应信封完全相同。 --- # MCP 工具 ## A股交易日历 来源:https://fuyao.aicubes.cn/docs/mcp/tools/get_a_share_calendar_trading_days/ > A 股近一年交易日序列(无入参) :::info 工具名:`get_a_share_calendar_trading_days` 对应 REST 端点:[`GET /api/a-share/calendar/trading-days`](/docs/api-reference/calendar#交易日序列) ::: ## 工具描述 > 获取 A 股近一年交易日序列,固定窗口为 `[今日 - 1 年, 今日]`(Asia/Shanghai 自然日), > 无任何请求参数。每个交易日同时返回毫秒戳 `date_ms` 与可读日期 `date`(`yyyyMMdd`), > 按时间升序。 ## 参数 | 参数 | 类型 | 必填 | 默认 | 说明 | |---|---|---|---|---| | — | — | — | — | 无入参。 | ## 调用示例 ```text 工具:get_a_share_calendar_trading_days 参数:(无) ``` ## 返回 返回 `{ timestamp, item: [TradingDayItem, ...] }`,按时间升序。 字段含义见 REST 端点 [交易日序列](/docs/api-reference/calendar#响应字段)。 ```json { "timestamp": 1748102400000, "item": [ { "date_ms": 1716566400000, "date": "20250525" }, { "date_ms": 1716652800000, "date": "20250526" }, { "date_ms": 1716739200000, "date": "20250527" } ] } ``` ## 复权因子事件流 来源:https://fuyao.aicubes.cn/docs/mcp/tools/get_a_share_corporate_actions_adjustment_factors/ > 单只 A 股的复权因子事件流(分红 / 送股 / 配股) :::info 工具名:`get_a_share_corporate_actions_adjustment_factors` 对应 REST 端点:[`GET /api/a-share/corporate-actions/adjustment-factors`](/docs/api-reference/corporate-actions#复权因子事件流) ::: ## 工具描述 > 获取单只 A 股标的的原始 cash-dividend / stock-dividend / rights-issue 事件流, > 调用方据此自行推导前 / 后复权因子。已预计算的复权后价格请直接调用 > [`get_a_share_prices_historical`](./get_a_share_prices_historical.mdx) 并设置 > `adjust=forward|backward`。每次只能传一个 `thscode`。 ## 参数 | 参数 | 类型 | 必填 | 默认 | 说明 | |---|---|---|---|---| | `thscode` | string | 是 | — | 单只标的 thscode,不接受逗号。 | | `from` | string | 否 | — | 事件起始日,格式 `YYYY-MM-DD`。 | | `to` | string | 否 | — | 事件截止日,格式 `YYYY-MM-DD`。 | ## 调用示例 ```text 工具:get_a_share_corporate_actions_adjustment_factors 参数: - thscode: "600519.SH" - from: "2020-01-01" - to: "2026-01-01" ``` ## 返回 返回 `{ thscode, ticker, item: [AdjustmentFactorItem, ...] }`,`item` 按 `ex_date_ms` 降序排列。 字段含义见 REST 端点 [复权因子事件流](/docs/api-reference/corporate-actions#响应字段)。 ```json { "thscode": "600519.SH", "ticker": "600519", "item": [ { "ticker": "600519", "ex_date_ms": 1766073600000, "dividend_per_share": 23.957, "per_share_bonus": 0 }, { "ticker": "600519", "ex_date_ms": 1437062400000, "dividend_per_share": 4.374, "per_share_bonus": 0.1 } ] } ``` > 注:响应不返回 `event_type` / `record_date` / `adjust_factor`,事件类型由 `dividend_per_share` 与 `per_share_bonus` 两个数值字段隐式区分。 ## 资产负债表 来源:https://fuyao.aicubes.cn/docs/mcp/tools/get_a_share_financials_balance_sheets/ > 单只 A 股的整体合并资产负债表多期序列 :::info 工具名:`get_a_share_financials_balance_sheets` 对应 REST 端点:[`GET /api/a-share/financials/balance-sheets`](/docs/api-reference/financials#资产负债表) ::: ## 工具描述 > 获取单只 A 股标的的整体合并资产负债表多期序列。取数模式同利润表:不传 `start`/`end` > 返回最近 `limit` 期;同时传 `start`+`end` 返回时间区间内全部报告期。均按 `period_end` > 降序。返回资产总计、流动资产、货币资金、负债合计、股东权益合计等字段。 ## 参数 | 参数 | 类型 | 必填 | 默认 | 说明 | |---|---|---|---|---| | `thscode` | string | 是 | — | 单只标的 thscode,不接受逗号;含交易所后缀(如 `000858.SZ`)。 | | `period` | string | 是 | `annual` | 报告期类型:`annual`(仅 Q4) / `quarterly`(每季度末)。 | | `limit` | integer | 否 | `4` | 最近 N 期模式:范围 `[1, 20]`。与 `start`/`end` 互斥。 | | `start` | long | 否 | — | 时间区间模式:起始毫秒戳,需与 `end` 同传;窗口 ≤ 10 年。 | | `end` | long | 否 | — | 时间区间模式:结束毫秒戳,`end >= start`。 | ## 调用示例 ```text 工具:get_a_share_financials_balance_sheets 参数: - thscode: "000858.SZ" - period: "quarterly" ``` ## 返回 返回 `{ timestamp, item: [BalanceSheetItem, ...] }`,按 `period_end` 降序。 字段含义见 REST 端点 [资产负债表附加字段](/docs/api-reference/financials#资产负债表附加字段) 与 [共有响应字段](/docs/api-reference/financials#共有响应字段)。 ```json { "timestamp": 1735574400000, "item": [ { "thscode": "000858.SZ", "ticker": "000858", "period": "quarterly", "fiscal_year": 2024, "fiscal_period": "Q4", "report_date_ms": 1735574400000, "period_end_ms": 1735574400000, "currency": "CNY", "assets_total": 250000000000, "total_current_assets": 200000000000, "non_current_nets_total": 50000000000, "cash": 130000000000, "accounts_receivable": 500000000, "total_debt": 60000000000, "holder_equity_total": 190000000000 } ] } ``` ## 现金流量表 来源:https://fuyao.aicubes.cn/docs/mcp/tools/get_a_share_financials_cash_flow_statements/ > 单只 A 股的整体合并现金流量表多期序列 :::info 工具名:`get_a_share_financials_cash_flow_statements` 对应 REST 端点:[`GET /api/a-share/financials/cash-flow-statements`](/docs/api-reference/financials#现金流量表) ::: ## 工具描述 > 获取单只 A 股标的的整体合并现金流量表多期序列。取数模式同利润表:不传 `start`/`end` > 返回最近 `limit` 期;同时传 `start`+`end` 返回时间区间内全部报告期。均按 `period_end` > 降序。返回经营 / 投资 / 筹资活动现金流量净额、现金及现金等价物净增加额等字段。 ## 参数 | 参数 | 类型 | 必填 | 默认 | 说明 | |---|---|---|---|---| | `thscode` | string | 是 | — | 单只标的 thscode,不接受逗号;含交易所后缀(如 `600519.SH`)。 | | `period` | string | 是 | `annual` | 报告期类型:`annual`(仅 Q4) / `quarterly`(每季度末)。 | | `limit` | integer | 否 | `4` | 最近 N 期模式:范围 `[1, 20]`。与 `start`/`end` 互斥。 | | `start` | long | 否 | — | 时间区间模式:起始毫秒戳,需与 `end` 同传;窗口 ≤ 10 年。 | | `end` | long | 否 | — | 时间区间模式:结束毫秒戳,`end >= start`。 | ## 调用示例 ```text 工具:get_a_share_financials_cash_flow_statements 参数: - thscode: "600519.SH" - period: "annual" - start: 1577808000000 - end: 1735574400000 ``` ## 返回 返回 `{ timestamp, item: [CashFlowStatementItem, ...] }`,按 `period_end` 降序。 字段含义见 REST 端点 [现金流量表附加字段](/docs/api-reference/financials#现金流量表附加字段) 与 [共有响应字段](/docs/api-reference/financials#共有响应字段)。 ```json { "timestamp": 1735574400000, "item": [ { "thscode": "600519.SH", "ticker": "600519", "period": "annual", "fiscal_year": 2024, "fiscal_period": "FY", "report_date_ms": 1735574400000, "period_end_ms": 1735574400000, "currency": "CNY", "act_cash_flow_net": 92000000000, "invest_cash_flow_net": -3000000000, "financing_cash_flow_net": -65000000000, "pay_fixed_assets_etc_cash": 3500000000, "pay_dividends_profits_interest_cash": 64000000000, "cash_equivalents_net_addition": 24000000000 } ] } ``` ## 利润表 来源:https://fuyao.aicubes.cn/docs/mcp/tools/get_a_share_financials_income_statements/ > 单只 A 股的整体合并利润表多期序列 :::info 工具名:`get_a_share_financials_income_statements` 对应 REST 端点:[`GET /api/a-share/financials/income-statements`](/docs/api-reference/financials#利润表) ::: ## 工具描述 > 获取单只 A 股标的的整体合并利润表多期序列。两种取数模式互斥:不传 `start`/`end` > 返回最近 `limit` 期;同时传 `start`+`end` 返回时间区间内全部报告期。均按 `period_end` > 降序。返回营业收入、营业利润、净利润、归母净利润、基本每股收益等字段。 ## 参数 | 参数 | 类型 | 必填 | 默认 | 说明 | |---|---|---|---|---| | `thscode` | string | 是 | — | 单只标的 thscode,不接受逗号;含交易所后缀(如 `600519.SH`)。 | | `period` | string | 是 | `annual` | 报告期类型:`annual`(仅 Q4) / `quarterly`(每季度末)。 | | `limit` | integer | 否 | `4` | 最近 N 期模式:范围 `[1, 20]`。与 `start`/`end` 互斥。 | | `start` | long | 否 | — | 时间区间模式:起始毫秒戳,需与 `end` 同传;窗口 ≤ 10 年。 | | `end` | long | 否 | — | 时间区间模式:结束毫秒戳,`end >= start`。 | ## 调用示例 ```text 工具:get_a_share_financials_income_statements 参数: - thscode: "600519.SH" - period: "annual" - limit: 3 ``` ## 返回 返回 `{ timestamp, item: [IncomeStatementItem, ...] }`,按 `period_end` 降序。 字段含义见 REST 端点 [利润表附加字段](/docs/api-reference/financials#利润表附加字段) 与 [共有响应字段](/docs/api-reference/financials#共有响应字段)。 ```json { "timestamp": 1735574400000, "item": [ { "thscode": "600519.SH", "ticker": "600519", "period": "annual", "fiscal_year": 2024, "fiscal_period": "FY", "report_date_ms": 1735574400000, "period_end_ms": 1735574400000, "currency": "CNY", "operating_income": 174144000000, "operating_profit": 124000000000, "net_profit": 93000000000, "parent_holder_net_profit": 86000000000, "basic_eps": 68.50 } ] } ``` ## 同花顺指数列表 来源:https://fuyao.aicubes.cn/docs/mcp/tools/get_a_share_index_catalog_ths_index_list/ > 按 tag 列出同花顺指数清单 :::info 工具名:`get_a_share_index_catalog_ths_index_list` 对应 REST 端点:[`GET /api/a-share-index/catalog/ths-index-list`](/docs/api-reference/a-share-index#同花顺指数列表) ::: ## 工具描述 > 按 `tag`(概念 / 区域 / 特色 / 行业)列出同花顺指数清单。当用户提到「板块」「概念」 > 或某类指数(如「白酒概念」「锂电池」「半导体行业」)时,**先用本工具拿到目标指数的 > `thscode`**,再交给 > [`get_a_share_index_constituents_ths_stock_list`](./get_a_share_index_constituents_ths_stock_list.mdx) > 取成分股。单 `tag` 一次性全量返回,无需分页。 ## 参数 | 参数 | 类型 | 必填 | 默认 | 说明 | |---|---|---|---|---| | `tag` | enum | 否 | `cn_concept` | 标签白名单:`cn_concept`(A 股概念) / `region`(区域指数) / `tszs`(特色指数) / `industry`(行业指数)。大小写不敏感。 | ## 调用示例 ```text 工具:get_a_share_index_catalog_ths_index_list 参数: - tag: "cn_concept" ``` ## 返回 返回 `{ timestamp, item: [{ thscode, name }, ...] }`。字段含义见 REST 端点 [同花顺指数列表和成分股 · 同花顺指数列表](/docs/api-reference/a-share-index#响应字段)。 ```json { "timestamp": 1748102400000, "item": [ { "thscode": "886042.TI", "name": "白酒概念" }, { "thscode": "886041.TI", "name": "新能源车" } ] } ``` ## 为什么是前置工具 LLM 无法从「白酒概念」「半导体行业」这类口语化标签直接推断到同花顺指数的 `thscode`(如 `886042.TI`)。先用本工具按 `tag` 全量取一次,再按 `name` 匹配出目标 `thscode`,可避免编造代码。 ## 同花顺指数成分股 来源:https://fuyao.aicubes.cn/docs/mcp/tools/get_a_share_index_constituents_ths_stock_list/ > 按指数 thscode 取当前成分股清单 :::info 工具名:`get_a_share_index_constituents_ths_stock_list` 对应 REST 端点:[`GET /api/a-share-index/constituents/ths-stock-list`](/docs/api-reference/a-share-index#同花顺指数成分股) ::: ## 工具描述 > 按单个指数 `thscode` 返回当前成分股清单。支持同花顺板块指数(如 `886042.TI`)与 > 标准指数(如沪深 300 `000300.SH` / `399300.SZ`)。不接受逗号,单次只能查一个指数。 > 拿到成分股 `thscode` 列表后,可继续调 > [`get_a_share_prices_snapshot`](./get_a_share_prices_snapshot.mdx) 取实时行情,或调 > [`get_a_share_prices_historical`](./get_a_share_prices_historical.mdx) 取历史 K 线。 ## 参数 | 参数 | 类型 | 必填 | 默认 | 说明 | |---|---|---|---|---| | `thscode` | string | 是 | — | 指数 thscode,形如 `{ticker}.{suffix}`。入参会被 `trim().toUpperCase()` 标准化。**不接受逗号**,单次仅支持一个指数。 | ## 调用示例 ```text 工具:get_a_share_index_constituents_ths_stock_list 参数: - thscode: "886042.TI" ``` ## 返回 返回 `{ timestamp, item: [{ thscode, ticker, name }, ...] }`。字段含义见 REST 端点 [同花顺指数列表和成分股 · 同花顺指数成分股](/docs/api-reference/a-share-index#响应字段-1)。 ```json { "timestamp": 1748102400000, "item": [ { "thscode": "600519.SH", "ticker": "600519", "name": "贵州茅台" }, { "thscode": "000858.SZ", "ticker": "000858", "name": "五粮液" } ] } ``` ## 与价格工具的组合 成分股 `thscode` 取出后逗号拼接(必要时分批控制单次请求长度),即可喂给 [`get_a_share_prices_snapshot`](./get_a_share_prices_snapshot.mdx) 拿到批量实时行情, 完成「指数 → 成分股 → 行情」完整链路。 ## A股历史K线 来源:https://fuyao.aicubes.cn/docs/mcp/tools/get_a_share_prices_historical/ > 单只标的的 A 股历史 K 线序列 :::info 工具名:`get_a_share_prices_historical` 对应 REST 端点:[`GET /api/a-share/prices/historical`](/docs/api-reference/prices#历史-k-线) ::: ## 工具描述 > 获取单只 A 股标的的历史 K 线数据,窗口最长 10 年。支持前复权 / 后复权 / 不复权。 > 每次只能传一个 `thscode`,多标的请分多次调用。 ## 参数 | 参数 | 类型 | 必填 | 默认 | 说明 | |---|---|---|---|---| | `thscode` | string | 是 | — | 单只标的 thscode,不接受逗号。 | | `interval` | enum | 是 | `1d` | K 线周期,**当前仅支持** `1d`(日线)。 | | `start` | long | 是 | — | 起始时间,毫秒 Unix 时间戳。 | | `end` | long | 是 | — | 结束时间,毫秒 Unix 时间戳。`end - start` 不超过 10 年。 | | `adjust` | enum | 否 | `forward` | 复权方式:`none` / `forward` / `backward`。 | | `offset` | integer | 否 | `0` | 分页偏移。 | ## 调用示例 ```text 工具:get_a_share_prices_historical 参数: - thscode: "600519.SH" - interval: "1d" - start: 1716105600000 - end: 1747641600000 - adjust: "forward" ``` ## 返回 返回 `{ timestamp, item: [PriceBarItem, ...] }`。字段含义见 REST 端点 [历史 K 线](/docs/api-reference/prices#响应字段-1)。 ```json { "timestamp": 1747584000000, "item": [ { "date_ms": 1716134400000, "open_price": 1611.602, "high_price": 1626.602, "low_price": 1601.722, "close_price": 1602.612, "volume": 3142572.0, "turnover": 5401389334.87 } ] } ``` ## A股行情快照 来源:https://fuyao.aicubes.cn/docs/mcp/tools/get_a_share_prices_snapshot/ > A 股行情快照(按 thscodes 批量或全市场分页) :::info 工具名:`get_a_share_prices_snapshot` 对应 REST 端点:[`GET /api/a-share/prices/snapshot`](/docs/api-reference/prices#行情快照) ::: ## 工具描述 > 获取 A 股行情快照。`thscodes` 显式给定时按入参顺序批量取数;省略时遍历完整 A 股代码表 > 并按 `limit`/`offset` 分页。返回每只标的的最新价、涨跌额、涨跌幅、开盘 / 最高 / 最低 / 前收价、成交量、成交额。 > 不返回中文名 `name`,如需展示请配合 `get_meta_tickers_search` / `get_meta_tickers_list`。 ## 参数 | 参数 | 类型 | 必填 | 默认 | 说明 | |---|---|---|---|---| | `thscodes` | string | 否 | — | 逗号分隔的 thscode 列表,如 `600519.SH,000001.SZ`。给定时忽略 `limit` / `offset`。 | | `limit` | integer | 否 | `100` | 分页大小,仅在 `thscodes` 省略时生效。 | | `offset` | integer | 否 | `0` | 分页偏移,仅在 `thscodes` 省略时生效。 | ## 调用示例 ```text 工具:get_a_share_prices_snapshot 参数: - thscodes: "600519.SH,000001.SZ" ``` ## 返回 返回 `{ timestamp, total, item: [PriceSnapshotItem, ...] }`。字段含义见 REST 端点 [行情快照](/docs/api-reference/prices#响应字段)。 ```json { "timestamp": null, "total": 2, "item": [ { "thscode": "600519.SH", "ticker": "600519", "last_price": 1277.8, "price_change": 21.8, "price_change_ratio_pct": 1.735669, "open_price": 1252.08, "high_price": 1282, "low_price": 1250.21, "prev_price": 1256, "volume": 3098875, "turnover": 3937375200 } ] } ``` ## 标的目录(代码表浏览) 来源:https://fuyao.aicubes.cn/docs/mcp/tools/get_meta_tickers_list/ > 批量获取代码表(按交易所 / 资产类别过滤) :::info 工具名:`get_meta_tickers_list` 对应 REST 端点:[`GET /api/meta/tickers/list`](/docs/api-reference/tickers#标的目录) ::: ## 工具描述 > 批量获取代码表,支持按交易所 / 资产类别过滤。MVP 采用简单 offset/limit 分页, > 调用方循环递增 `offset` 直到 `item.length < limit` 即可取尽。 ## 参数 | 参数 | 类型 | 必填 | 默认 | 说明 | |---|---|---|---|---| | `exchange` | string | 否 | `SH,SZ` | 逗号分隔的交易所列表,`SH` / `SZ` / `BJ`,可多选。 | | `asset_type` | enum | 否 | `a-share` | 资产类别:`a-share` / `a-share-index`。 | | `limit` | integer | 否 | `1000` | 单页条数,最大 `10000`。 | | `offset` | integer | 否 | `0` | 分页偏移。 | ## 调用示例 ```text 工具:get_meta_tickers_list 参数: - exchange: "SH,SZ" - asset_type: "a-share" - limit: 1000 - offset: 0 ``` ## 返回 返回 `{ timestamp, item: [TickerItem, ...] }`,结构与 [`get_meta_tickers_search`](./get_meta_tickers_search.mdx) 一致。 字段含义见 REST 端点 [标的检索与目录](/docs/api-reference/tickers#响应字段)。 ## 分页取尽 ```text offset = 0 loop: resp = get_meta_tickers_list(offset=offset, limit=1000) consume(resp.item) if len(resp.item) < 1000: break offset += 1000 ``` ## 标的检索(跨市场消歧) 来源:https://fuyao.aicubes.cn/docs/mcp/tools/get_meta_tickers_search/ > 公司名 / 代码片段解析为标准 thscode :::info 工具名:`get_meta_tickers_search` 对应 REST 端点:[`GET /api/meta/tickers/search`](/docs/api-reference/tickers#标的检索) ::: ## 工具描述 > 把公司名、代码片段或别名解析为标准 thscode 代码。当用户用中英文名提及标的,或者 > 你不确定 thscode 是否正确时,**优先调用本工具消歧**;用户已给出完整 thscode(如 > `600519.SH`)时可跳过。返回按相关性排序,最多 50 条。 ## 参数 | 参数 | 类型 | 必填 | 默认 | 说明 | |---|---|---|---|---| | `q` | string | 是 | — | 搜索关键词:完整 thscode、ticker 代码或中英文名称(支持子串匹配)。 | | `exchange` | enum | 否 | — | `SH` / `SZ` / `BJ`,省略 = 跨交易所。 | | `asset_type` | enum | 否 | — | `a-share` / `a-share-index`,省略 = 全部。 | | `limit` | integer | 否 | `10` | 返回上限,最大 `50`。 | ## 调用示例 ```text 工具:get_meta_tickers_search 参数: - q: "平安" - limit: 20 ``` ## 返回 返回 `{ timestamp, item: [TickerItem, ...] }`。字段含义见 REST 端点 [标的检索与目录](/docs/api-reference/tickers#响应字段)。 ```json { "timestamp": 1716105600000, "item": [ { "thscode": "601318.SH", "ticker": "601318", "name": "中国平安", "exchange": "SH", "asset_type": "a-share", "currency": "CNY" } ] } ``` ## 为什么是前置工具 LLM 调任何数据工具都需要传 `thscode`,其自身知识对 A 股 6 位代码、交易所后缀、 新上市 / 改名标的容易出错。优先调用本工具消歧,再调下游数据工具。