港股、美股、A 股实时行情数据 API 接口-免费接入

AI摘要
本文介绍一款免费港股、美股、A股行情数据API,支持股票基础信息、实时Tick、实时报价、历史K线及批量K线数据。提供HTTP和WebSocket接口,统一JSON格式,需使用token验证。包含各接口请求规范、参数说明及Python调用示例,适用于金融数据应用开发。

港股、美股、A 股实时行情数据 API 接口-免费接入

一款支持港股、美股、A 股多市场的免费股票行情数据接口服务,能够提供股票基础信息、实时 Tick 数据、实时报价、历史 K 线及批量 K 线等多维度数据,数据返回格式统一为 JSON,接入便捷,满足各类金融数据应用开发需求。本文将详细介绍该 API 的接口规范、使用方法及数据字段说明。

一、通用请求规范

1.1 必要请求头

所有 API 接口请求均需携带以下请求头,用于身份验证及数据格式指定,否则将导致请求失败:


{

 "accept": "application/json",

 "token": "your_token"

}

获取 token 方式,请参考 官网文档

1.2 市场标识说明

接口通过“region”参数区分目标市场,各市场对应的标识及股票代码规则如下,请求时需准确匹配:

市场 region 参数值 股票代码规则 示例
港股 HK 5 位数字 700(腾讯控股)、9988(阿里巴巴)
美股 US 1-4 位字母 AAPL(苹果)、TSLA(特斯拉)
A 股 SZ、SH 沪市 60 开头、深市 00/30 开头 601398(工商银行)、300750(宁德时代)

二、核心接口详情

2.1 股票基础信息接口

用于获取单只股票的基础信息,包括公司名称、所属行业、市值、市盈率等核心数据,为行情分析提供基础支撑。

2.1.1 请求地址

api.itick.org/stock/info

2.1.2 请求参数

参数名 类型 是否必填 说明
type string 资产类型,股票填“stock”
region string 市场标识,参考 1.2 节
code string 股票代码,需与 region 匹配

2.1.3 调用代码示例(Python)

使用 requests 库发送 GET 请求,需提前安装:pip install requests


import requests

# 接口请求地址

url = "https://api.itick.org/stock/info"

# 必要请求头

headers = {

 "accept": "application/json",

 "token": "your_token"

}

# 请求参数

params = {

 "type": "stock",  # 资产类型为股票

 "region": "HK", # 港股市场

 "code": "700"  # 腾讯控股股票代码

}

try:

 # 发送GET请求

response = requests.get(url, headers=headers, params=params)

 # 解析JSON响应

    result = response.json()

 # 打印请求结果

 if result["code"] == 0:

 print("请求成功,股票信息:", result["data"])

 else:

 print("请求失败,错误信息:", result["msg"])

except  Exception  as e:

 print("请求异常:", str(e))

2.1.3 响应数据示例(港股-腾讯控股)


{

 "code": 0,

 "msg": "ok",

 "data": {

 "c": "700",

 "n": "騰訊控股",

 "t": "stock",

 "e": "HKEX",

 "s": "Technology Services",

 "i": "Packaged Software",

 "l": "騰訊控股",

 "r": "HKD",

 "bd": "Tencent Holdings Ltd. provides value-added services...",

 "wu": "http://www.tencent.com",

 "mcb": 5380057843750,

 "tso": 9087935546,

 "pet": 24.562762020141466,

 "fcc": "HKD"

  }

}

2.1.4 响应字段解析

字段名 类型 说明
c string 股票代码
n string 股票中文名称
t string 资产类型
e string 所属交易所代码(HKEX=港交所)
s string 所属行业大类
i string 所属行业细分
r string 交易货币单位
bd string 公司业务描述
wu string 公司官网地址
mcb number 总市值
tso number 总股本
pet number 市盈率(TTM)
fcc string 财务报告货币单位

2.2 实时 Tick 数据接口

提供股票实时成交明细(Tick 数据),包含最新成交价格、成交量及成交时间,数据更新延迟低,适用于实时行情展示。

2.2.1 请求地址

api.itick.org/stock/tick

2.2.2 请求参数

参数名 类型 是否必填 说明
region string 市场标识,参考 1.2 节
code string 股票代码,需与 region 匹配

2.2.3 调用代码示例(Python)


import requests

# 接口请求地址

url = "https://api.itick.org/stock/tick"

# 必要请求头

headers = {

 "accept": "application/json",

 "token": "your_token"

}

# 请求参数(港股腾讯控股)

params = {

 "region": "HK",

 "code": "700"

}

try:

response = requests.get(url, headers=headers, params=params)

    result = response.json()

 if result["code"] == 0:

 print("实时Tick数据:", {

 "股票代码": result["data"]["s"],

 "最新成交价": result["data"]["ld"],

 "成交时间": result["data"]["t"],

 "成交量": result["data"]["v"]

        })

 else:

 print("请求失败:", result["msg"])

except  Exception  as e:

 print("异常信息:", str(e))

2.2.3 响应数据示例


{

 "code": 0,

 "msg": null,

 "data": {

 "s": "700",

 "ld": 567,

 "t": 1754554087000,

 "v": 1134500

  }

}

2.2.4 响应字段解析

字段名 类型 说明
s string 股票代码
ld number 最新成交价格
t number 成交时间戳(毫秒级,UTC 时间)
v number 成交数量(股)

2.3 实时报价接口

获取股票实时行情快照,包含开盘价、最高价、最低价、最新价、成交量等核心行情数据,是行情分析的核心接口。

2.3.1 请求地址

api.itick.org/stock/quote

2.3.2 请求参数

与“实时 Tick 数据接口”一致,仅需传入 region 和 code 参数。

2.3.3 调用代码示例(Python)


import requests

# 实时报价接口地址

url = "https://api.itick.org/stock/quote"

# 请求头(固定格式)

headers = {

 "accept": "application/json",

 "token": "your_token"

}

# 示例:请求美股苹果公司实时报价

params = {

 "region": "US",  # 美股市场

 "code": "AAPL"  # 苹果股票代码

}

try:

response = requests.get(url, headers=headers, params=params)

    response.raise_for_status()  # 检查HTTP请求状态

    result = response.json()

 if result["code"] == 0:

        quote_data = result["data"]

 # 格式化输出关键行情数据

 print(f"股票代码:{quote_data['s']}")

 print(f"开盘价:{quote_data['o']}")

 print(f"最高价:{quote_data['h']}")

 print(f"最低价:{quote_data['l']}")

 print(f"最新价:{quote_data['ld']}")

 print(f"当日成交量:{quote_data['v']}")

 print(f"当日成交金额:{quote_data['tu']}")

except requests.exceptions.RequestException as e:

 print("HTTP请求异常:", e)

except  KeyError  as e:

 print("响应数据字段缺失:", e)

2.3.3 响应数据示例


{

 "code": 0,

 "msg": null,

 "data": {

 "s": "700",

 "ld": 567,

 "o": 571,

 "h": 572,

 "l": 560.5,

 "t": 1754554089000,

 "v": 16940382,

 "tu": 9595241622.71,

 "ts": 0

  }

}

2.3.4 响应字段解析

字段名 类型 说明
o number 当日开盘价
h number 当日最高价
l number 当日最低价
tu number 当日成交金额
ts number 涨跌幅(未启用时为 0)

2.4 历史 K 线接口

获取单只股票的历史 K 线数据,支持不同周期类型,可用于技术分析、趋势研判等场景。

2.4.1 请求地址

api.itick.org/stock/kline

2.4.2 请求参数

参数名 类型 是否必填 说明
region string 市场标识,参考 1.2 节
code string 股票代码
kType int K 线周期类型(8=日 K,其他周期可参考 API 补充文档)
limit int 返回数据条数,最大支持 1000 条

2.4.3 调用代码示例(Python)


import requests

import time

# 历史K线接口地址

url = "https://api.itick.org/stock/kline"

headers = {

 "accept": "application/json",

 "token": "your_token"

}

# 请求参数:A股宁德时代(300750)的最近10条日K线数据

params = {

 "region": "CN",

 "code": "300750",

 "kType": 8,  # 8代表日K线

 "limit": 10 # 返回最近10条数据

}

try:

response = requests.get(url, headers=headers, params=params)

    result = response.json()

 if result["code"] == 0:

        kline_data = result["data"]

 print(f"宁德时代(300750)最近10条日K线数据:\n")

 # 遍历K线数据并格式化输出

 for kline in kline_data:

 # 将时间戳转换为本地日期格式

            kline_time = time.strftime("%Y-%m-%d", time.localtime(kline["t"]/1000))

 print(f"日期:{kline_time}")

 print(f"开盘价:{kline['o']} | 最高价:{kline['h']} | 最低价:{kline['l']} | 收盘价:{kline['c']}")

 print(f"成交量:{kline['v']} | 成交金额:{kline['tu']}\n")

except  Exception  as e:

 print("请求失败:", str(e))

2.4.3 响应数据示例


{

 "code": 0,

 "msg": null,

 "data": [

    {

 "tu": 56119888070.5,

 "c": 534.5,

 "t": 1741239000000,

 "v": 104799385,

 "h": 536,

 "l": 534.5,

 "o": 535

    }

  ]

}

2.4.4 响应字段解析

字段名 类型 说明
o number 该周期开盘价
h number 该周期最高价
l number 该周期最低价
c number 该周期收盘价
t number 该周期时间戳(毫秒级,UTC 时间)
v number 该周期成交量
tu number 该周期成交金额

2.5 批量历史 K 线接口

支持同时获取多只股票的历史 K 线数据,减少请求次数,提升开发效率,参数及返回格式与单只 K 线接口兼容。

2.5.1 请求地址

api.itick.org/stock/klines

2.5.2 请求参数

参数名 类型 是否必填 说明
region string 市场标识,多只股票需属于同一市场
codes string 股票代码列表,用英文逗号分隔,如“700,9988”
kType int K 线周期类型,与单只 K 线接口一致
limit int 单只股票返回数据条数

2.5.3 调用代码示例(Python)


import requests

import time

# 批量历史K线接口地址

url = "https://api.itick.org/stock/klines"

headers = {

 "accept": "application/json",

 "token": "your_token"

}

# 请求参数:港股腾讯(700)和阿里(9988)的最近5条日K线

params = {

 "region": "HK",

 "codes": "700,9988",  # 多只股票代码用英文逗号分隔

 "kType": 8,

 "limit": 5

}

try:

response = requests.get(url, headers=headers, params=params)

    result = response.json()

 if result["code"] == 0:

        stock_klines = result["data"]

 # 遍历不同股票的K线数据

 for stock_code, klines in stock_klines.items():

stock_name = "腾讯控股"  if stock_code == "700"  else  "阿里巴巴"

 print(f"=== {stock_name}{stock_code})最近5条日K线 ===")

 for kline in klines:

                kline_date = time.strftime("%Y-%m-%d", time.localtime(kline["t"]/1000))

 print(f"日期:{kline_date} | 开:{kline['o']} | 高:{kline['h']} | 低:{kline['l']} | 收:{kline['c']}")

 print("\n")

except  Exception  as e:

 print("批量获取K线失败:", str(e))

2.5.3 响应数据示例


{

 "code": 0,

 "msg": null,

 "data": {

 "700": [

      {

 "tu": 56119888070.5,

 "c": 534.5,

 "t": 1741239000000,

 "v": 104799385,

 "h": 536,

 "l": 534.5,

 "o": 535

      }

    ],

 "9988": [

      {

 "tu": 75404622753.1,

 "c": 140.1,

 "t": 1741239000000,

 "v": 538602171,

 "h": 140.3,

 "l": 139.8,

 "o": 139.9

      }

    ]

  }

}

2.6 实时行情 WebSocket 接口

通过 WebSocket 协议实现行情数据推送,支持多只股票同时订阅,实时性优于 HTTP 轮询,适用于高频行情场景。

2.6.1 连接地址

wss://api.itick.org/stock

2.6.2 订阅参数

连接建立后需发送订阅请求,指定目标股票及数据类型:


{

 "ac": "subscribe",

 "params": "AAPL$US,TSLA$US,601398$CN",

 "types": "depth,quote"

}
参数名 说明
ac 操作类型,订阅填“subscribe”
params 订阅股票列表,格式为“代码$市场”,多只用逗号分隔
types 订阅数据类型,支持“tick”(实时成交)、“quote”(实时报价)、“depth”(盘口)

2.6.3 调用代码示例(Python)

使用 websockets 库实现 WebSocket 连接,需提前安装:pip install websockets


import asyncio

import websockets

import json

# WebSocket连接地址

WS_URL = "wss://api.itick.org/stock"

# 订阅请求数据

subscribe_msg = {

 "ac": "subscribe",

 "params": "AAPL$US,700$HK,601398$SZ",  # 订阅美股苹果、港股腾讯、A股工行

 "types": "tick,quote" # 订阅实时成交和实时报价

}

async  def  subscribe_stock_data():

 async  with websockets.connect(WS_URL) as websocket:

 # 发送订阅请求

 await websocket.send(json.dumps(subscribe_msg))

 print("已发送订阅请求,等待行情数据推送...\n")

 # 循环接收推送数据

 while  True:

response = await websocket.recv()

 # 解析响应数据

            data = json.loads(response)

 if data["code"] == 1:

                tick_data = data["data"]

                stock_code = tick_data["s"]

                data_type = tick_data["type"]

 print(f"=== 股票:{stock_code} | 数据类型:{data_type} ===")

 if data_type == "tick":

 print(f"最新成交价:{tick_data['ld']}")

 print(f"成交量:{tick_data['v']}")

 print(f"成交时间:{tick_data['t']}")

 elif data_type == "quote":

 print(f"开盘价:{tick_data['o']} | 最高价:{tick_data['h']} | 最低价:{tick_data['l']}")

 print(f"最新价:{tick_data['ld']} | 成交金额:{tick_data['tu']}")

 print("-" * 50 + "\n")

if  __name__ == "__main__":

 try:

 # 运行异步WebSocket客户端

        asyncio.run(subscribe_stock_data())

 except  KeyboardInterrupt:

 print("程序已终止")

 except  Exception  as e:

 print("WebSocket连接异常:", str(e))

2.6.3 响应内容示例

实时 Tick 响应


{

 "code": 1,

 "data": {

 "s": "AAPL.US",

 "ld": 225.215,

 "v": 16742235,

 "t": 1731689407000,

 "type": "tick"

  }

}

实时报价响应


{

 "code": 1,

 "data": {

 "s": "AAPL.US",

 "ld": 225.215,

 "o": 226.27,

 "h": 226.92,

 "l": 224.44,

 "t": 1731689407000,

 "v": 16742235,

 "tu": 3774688301.452,

 "ts": 0,

 "type": "quote"

  }

}

三、接入注意事项

  • Token 有效性:登录官方网站获取专属 Token,避免因共用导致的访问限制。

  • 请求频率限制:免费版 API 存在一定的请求频率限制(建议每秒不超过 5 次),高频请求需联系官方升级权限。

  • 数据格式处理:时间戳字段为毫秒级 UTC 时间,需根据业务需求转换为本地时间;价格、金额等数值字段建议保留 2 位小数展示。

  • 市场差异适配:不同市场的股票代码规则、交易时间及货币单位存在差异(如 A 股用人民币,港股用港币),需在应用中针对性适配。

  • 异常处理:当响应 code 不为 0 时,可通过 msg 字段获取错误信息,建议实现重试机制(如网络超时)及降级策略(如无数据时展示缓存内容)。

四、常见问题

4.1 接口支持的 K 线周期有哪些?

目前 kType 参数支持多种周期,核心包括:1(1 分钟 K)、2(5 分钟 K)、3(15 分钟 K)、4(30 分钟 K)、5(60 分钟 K)、6(2 小时 K)、7(4 小时 K)、8(日 K)、9(周 K)、10(月 K),完整周期列表可参考 官方 API 文档

4.2 能否同时订阅不同市场的股票?

支持,WebSocket 订阅时 params 参数中可包含多市场股票,只需按"代码$市场"格式正确填写即可,如"AAPL$US,700$HK,300750$CN"

4.3 数据延迟情况如何?

HTTP 接口数据延迟约 200 毫秒,WebSocket 接口延迟可低至 50 毫秒以内,满足多数实时行情场景需求。

GitHub https://github.com/itick-org

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!