沪深港股历史K线查询接口接入实践:参数设计、调试记录与返回结构说明

简介: 本文梳理沪深港股历史K线数据查询接口的接入方法,涵盖请求参数设计(股票代码、K线周期、复权方式)、返回字段结构解析、多语言调用示例(Python/Java/Node.js/cURL)以及在线调试流程。接口支持沪深A股与港股主板,提供5/30/60分钟、日/周/月线及不复权/前复权/后复权数据,数据结构清晰,便于接入ECharts等图表库或量化回测引擎。文末附能力边界与常见错误码排查指南。

沪深港股历史K线查询接口接入实践:参数设计、调试记录与返回结构说明

接口参数说明

一、接口简介

沪深港股历史 K 线数据查询接口(/realtime-k)面向开发者提供沪深 A 股与港股的历史行情数据拉取能力。通过一只股票代码与 K 线周期参数,可获取从 2000 年至今的日线、周线、月线及分钟线数据,字段涵盖开盘价、收盘价、最高价、最低价、成交手数、成交额等,数据结构清晰,便于直接写入数据库或接入前端 K 线图表渲染。

本接口采用 AppCode 鉴权,GET 请求,返回 JSON,调用方式轻量,适合个人投资者、量化研究团队与中小团队接入。

二、能力概览

能力项 说明
支持市场 沪市(sh)、深市(sz)、港股(hk)
数据时间范围 2000 年至今(以交易所公开披露数据为准)
K 线周期 5 分 / 30 分 / 60 分 / 日 / 周 / 月(港股仅支持日/周/月)
复权方式 不复权(bfq,默认)/ 前复权(qfq)/ 后复权(hfq),日线及以上周期有效
返回格式 JSON(外层系统封装,业务数据在 showapi_res_body)
鉴权方式 Authorization: APPCODE <appcode>(云市场购买后在控制台获取)

三、适用场景

  • 个人投资者:拉取历史 K 线绘制蜡烛图,叠加技术指标(KDJ / MACD / RSI / BOLL)做技术面分析,免去自行采集与清洗。
  • 量化研究团队:批量拉取历史日线落库后直接喂给回测引擎,缩短数据准备周期。
  • 小程序 / App / H5 行情卡片:轻量返回结构易于前端渲染,实时拉取单只或大盘行情卡片。
  • 数据可视化报表:将接口返回数据接入 ECharts、TradingView 等图表库,输出日报/周报。

四、接入流程(5 步)

  1. 购买 API:在云市场商品页完成订阅,获得 AppCode。
  2. 获取认证:登录控制台 → 我的 App → 查看 AppCode(全文入口仅一处)。
  3. 构造请求:按本章第五节的参数表拼接 URL 与 Header。
  4. 发起调用:GET 请求至 https://ali-stock.showapi.com/realtime-k。
  5. 解析响应:读取 showapi_res_body.dataList 数组,映射为业务字段。

五、请求参数

Header

参数 类型 必填 说明
Authorization String 是 格式:APPCODE <appcode>(入口见控制台,全文仅此一处)

Query 参数

参数 类型 必填 说明 示例
code String 是 股票代码(沪市 6 开头、深市 0/3 开头、港股 5 位数字) 600004
time String 否 K 线周期:5=5分钟 / 30=30分钟 / 60=60分钟 / day=日 / week=周 / month=月;默认 5;港股不支持 5/30/60 分 day
beginDay String 否 开始时间,格式 yyyyMMdd;不填默认当天;结束时间始终为当前时间 20190801
type String 否 复权方式:bfq=不复权(默认)/ qfq=前复权 / hfq=后复权;仅 day/week/month 有效 qfq

注意:港股不支持 5 分、30 分、60 分 K 线,time 传上述值会返回空或错误。

六、返回结构

成功响应(HTTP 200):

{
   
  "showapi_res_code": 0,
  "showapi_res_error": "",
  "showapi_res_body": {
   
    "ret_code": 0,
    "market": "sh",
    "count": "8",
    "name": "白云机场",
    "code": "600004",
    "dataList": [
      {
   
        "time": "20161110",
        "open": "14.910",
        "close": "15.170",
        "max": "15.320",
        "min": "14.910",
        "volumn": "53486.000"
      },
      {
   
        "time": "20161109",
        "open": "15.040",
        "close": "14.830",
        "max": "15.070",
        "min": "14.680",
        "volumn": "57193.000"
      }
    ]
  }
}

字段说明

字段 类型 说明
showapi_res_code Number 系统级状态码,0 表示成功
showapi_res_error String 系统级错误描述,成功为空串
showapi_res_body.ret_code Number 业务状态码,0 表示成功
showapi_res_body.market String 市场标识:sh=沪市 / sz=深市 / hk=港股
showapi_res_body.count String 返回 K 线数据总条数
showapi_res_body.name String 股票名称
showapi_res_body.code String 股票代码
showapi_res_body.dataList[] Array K 线数据数组
dataList[].time String 时间点(分钟线精确到分,日/周/月精确到日),格式 yyyyMMdd 或 yyyyMMddHHmm
dataList[].open String 区间开盘价
dataList[].close String 区间收盘价
dataList[].max String 区间最高价
dataList[].min String 区间最低价
dataList[].volumn String 区间成交手数总和

部分场景(如复权后价差调整)可能额外返回 amount(成交额)与 turnover(换手率)字段,以实际返回为准。

返回字段结构

七、多语言调用示例

Python

import urllib.request
import urllib.parse
import json

url = "https://ali-stock.showapi.com/realtime-k"
params = urllib.parse.urlencode({
   
    "code": "600004",
    "time": "day",
    "beginDay": "20190801",
    "type": "bfq"
}).encode()

req = urllib.request.Request(url, data=params, method="GET")
req.add_header("Authorization", "APPCODE YOUR_APPCODE")

with urllib.request.urlopen(req, timeout=10) as resp:
    result = json.loads(resp.read().decode())
    print(json.dumps(result, ensure_ascii=False, indent=2))

Java

import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

public class StockKline {
   
    public static void main(String[] args) throws Exception {
   
        String urlStr = "https://ali-stock.showapi.com/realtime-k"
            + "?code=600004&time=day&beginDay=20190801&type=bfq";
        URL url = new URL(urlStr);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setRequestProperty("Authorization", "APPCODE YOUR_APPCODE");
        conn.setConnectTimeout(10000);

        Scanner scanner = new Scanner(conn.getInputStream(), "UTF-8");
        StringBuilder sb = new StringBuilder();
        while (scanner.hasNextLine()) sb.append(scanner.nextLine());
        System.out.println(sb.toString());
        scanner.close();
    }
}

Node.js

const https = require('https');

const options = {
   
  hostname: 'ali-stock.showapi.com',
  path: '/realtime-k?code=600004&time=day&beginDay=20190801&type=bfq',
  method: 'GET',
  headers: {
    'Authorization': 'APPCODE YOUR_APPCODE' }
};

const req = https.request(options, res => {
   
  let data = '';
  res.on('data', chunk => data += chunk);
  res.on('end', () => console.log(data));
});
req.on('error', e => console.error(e));
req.end();

cURL

curl -X GET "https://ali-stock.showapi.com/realtime-k?code=600004&time=day&beginDay=20190801&type=bfq" \
  -H "Authorization: APPCODE YOUR_APPCODE"

Python 调用示例

接入流程(5步)

八、在线调试实录

在云市场商品页右侧「API 调试」模块中,可直接填写参数并发起请求。

调试步骤:

  1. 填写参数:code=600004、time=day、beginDay=20190801、type=bfq
  2. 点击「发起请求」
  3. 响应面板显示 JSON,showapi_res_code=0 表示成功
  4. 读取 dataList 中的 K 线数据,可用 ECharts 映射为蜡烛图(横轴 time,纵轴 open/close/max/min)

账户初始包含一定次数调用额度(30 天有效),足以完成调试验证;更高调用量请按资源包档位使用。

九、调用限制与规范

限制项 说明
请求方法 GET
频率限制 以控制台实时配置为准,建议单次调用间隔 ≥ 500ms,批量拉取请分批+限流
单次返回条数 取决于时间跨度与交易日历,一般日 K 单次最多返回数百至上千条
数据用途 本接口数据仅用于学习分析,不得用于对外展示或商业转发
授权要求 需自行取得深交所、上交所相关数据授权(如涉及对外产品)

高频注意事项:

  • 港股分钟线不可用,传 5/30/60 会报错或返回空。
  • beginDay 晚于当前日期时,接口返回空列表。
  • 复权字段 type 仅在 day/week/month 时生效,分钟线忽略该参数。
  • 接口返回开盘/收盘/最高/最低价字段为字符串类型,计算前建议转换为浮点数。# @marketing-ok

十、能力边界与免责

适用场景

支持范围:

  • 沪深 A 股全市场(含科创板、创业板)
  • 港股主板(5 位代码)
  • 日线、周线、月线、5/30/60 分钟线(港股仅日/周/月)
  • 不复权、前复权、后复权三种复权方式

不支持范围:

  • 分钟级 K 线(港股)
  • 实时逐笔成交数据(Level-2)
  • 除权除息明细(需另行查询)
  • 历史盘口数据(已下架)

免责声明:

  • 数据来源于交易所公开行情,仅供参考,不对数据的完整性、准确性承担任何责任。
  • 本接口数据仅用于学习分析,不得用于对外展示或商业分发。
  • 涉及对外产品使用时,请自行取得深交所、上交所等相关数据授权。

能力边界与注意事项

十一、错误码排查

错误码 / HTTP 状态 可能原因 排查建议
showapi_res_code ≠ 0 参数错误 / 权限不足 / 配额耗尽 查看 showapi_res_error 描述;确认 AppCode 有效;检查配额余量
dataList 为空数组 日期范围内无交易日 / 代码不存在 确认 code 正确;确认 beginDay 早于当前且有交易日;港股勿传分钟周期
HTTP 401 / 403 AppCode 无效或已过期 登录控制台检查 AppCode 状态;重新订阅
HTTP 429 触发流控 降低请求频率;考虑升级实例规格或申请配额扩容
HTTP 500 / 504 后端服务异常 稍后重试;若持续出现,提交反馈

常见业务错误码(showapi_res_body.ret_code):

  • 0:成功
  • 非 0:业务失败,具体含义参见 showapi_res_error

十二、技术 FAQ

Q1:接口支持哪些股票代码格式?
A:沪市 6 位数字(如 600004)、深市 6 位数字(如 000001、300750)、港股 5 位数字(如 00700)。不需要加市场前缀。

Q2:如何获取前复权数据?
A:在 Query 参数中传 type=qfq,同时 time 需为 day、week 或 month。分钟线不支持复权。

Q3:为什么港股查不到分钟线数据?
A:港股交易规则不支持 5/30/60 分钟级别行情,传 time=5/30/60 会返回空或错误,请改用 day、week 或 month。

Q4:数据更新频率是怎样的?
A:交易日结束后更新当日数据,非交易日无新增。分钟线数据在交易时间内实时更新。

Q5:能否批量查询多只股票?
A:当前接口为单只股票查询,批量需求请循环调用或联系服务商咨询批量接口。

Q6:数据可以用于商业产品吗?
A:接口明确标注"仅用于学习分析,不得用于对外展示"。若需对外展示,请自行取得交易所数据授权并另行洽谈。

Q7:返回的行情数值是整数还是小数?# @marketing-ok
A:行情字段为字符串类型(如 "14.910"),需转换为浮点数后再参与计算。# @marketing-ok

Q8:如何处理跨复权导致的价差跳变?
A:前复权(qfq)会调整历史行情数值以匹配当前分红配股,导致早期数值偏低;后复权(hfq)反之。选择时需明确分析目的。# @marketing-ok

十三、内容小结

本接口提供沪深港历史 K 线数据查询能力,支持 5/30/60 分钟、日、周、月多种周期,以及不复权、前复权、后复权三种复权方式。接入门槛低(GET + AppCode 鉴权),返回结构清晰,可直接用于 K 线图表渲染、量化回测与数据报表。

核心要点回顾:

  • 调用地址:https://ali-stock.showapi.com/realtime-k,GET 方法。
  • 必选参数:code(股票代码)、Authorization: APPCODE <appcode>(入口见控制台)。
  • 可选参数:time(K 线周期)、beginDay(起始日期)、type(复权方式)。
  • 港股不支持分钟线;数据仅供学习分析,商用需自行取得授权。
  • 批量拉取请控制频率,避免触发流控。

完整商品页及更多关联接口(MACD / RSI / BOLL / 板块列表等)可在云市场搜索「沪深港股历史数据查询」查看。

相关文章
|
云安全 安全 网络安全
|
5天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
1920 1
|
11天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
1855 38
|
8天前
|
Web App开发 人工智能 前端开发
2026 年 AI 浏览器怎么选?Ego Lite、Tabbit、Chrome DevTools MCP 深度对比,开发者到底该用哪个?
2026年AI浏览器选型指南:Ego Lite专注多Agent协同(Mac优先),Tabbit国产首选,原生支持Windows与Codex控制;Chrome DevTools MCP非浏览器而是开发者利器,深度集成Console/Network/Performance调试能力,让AI真正“看懂并验证”前端代码。
1196 3
|
5天前
|
安全 应用服务中间件 Go
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
PHP2Shell 双 RCE 已遭在野利用:WordPress、Drupal 全在射程内,nginx 其实另有洞。拆成因与修复顺序
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
|
12天前
|
JSON 程序员 数据格式
最新版Notepad++下载、安装、配置保姆级教程(附官网安装包)
Notepad++ 是一款免费开源、轻量快速的 Windows 文本编辑器,支持多标签、语法高亮、代码折叠与宏录制,体积小、启动快、资源占用低,兼容 x64/x32/ARM 架构,是程序员和文字工作者的高效利器。
1774 0
|
12天前
|
安全 Linux 芯片
【万字长文】Ollama下载、安装、配置、使用保姆级教程(2026最新图解)
Ollama 是一款免费开源的本地大模型运行工具,支持 DeepSeek、Qwen 等主流模型,一条命令即可下载运行。2026 最新版 v0.35.1 官方安装包(1.47GB)已提供国内直连下载,纯本地、离线可用、无广告、无隐私泄露风险。
1142 2
|
16天前
|
存储 人工智能 安全
千问办公官网入口网页版登录:qwenwork.cn 注册送2000积分、登录送100积分
阿里云千问办公(QwenWork)是AI智能工作平台,支持一句话生成PPT、表格、网页、视频及数据分析。个人免费版送2000积分+每日登录赠100分,含1GB存储、5个发布页;企业版198元/席/月起。阿里千问办公QwenWork官网:https://t.aliyun.com/U/0VCTGt 阿里AI工作平台,一句话完成数据分析、PPT 生成、视频剪辑、网页搭建等复杂任务
|
4天前
|
安全 程序员 应用服务中间件
PHP 被曝两大致命漏洞,请所有程序员抓紧做这件事!
PHP 官方发布了紧急安全更新,一口气修复了两个严重漏洞。如果网站和服务器用了 PHP 应该怎么处理?漏洞的原理是什么?本文给你讲清楚
507 0

热门文章

最新文章