港股、美股、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 請求地址
https://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 響應字段解析
| 字段名 | 類型 | 説明 |
|---|---|---|
| code | int | 請求狀態碼,0 表示成功 |
| msg | string | 狀態描述,成功時為“ok” |
| 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 請求地址
https://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 請求地址
https://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 請求地址
https://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 請求地址
https://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