跳至主要內容
🚀 新服務上線

美股行情 API

免費 · 快速 · 穩定

美股與 ETF 的收盤報價(T+1)、歷史 K 線、靜態資訊、批次查詢與回測,統一 JSON 回應格式,無需註冊即可呼叫。

介面位址: https://us2.ninequantai.com

所有端點都掛在這個位址下。路徑區分大小寫,標的代碼不區分。

請求
GET /v1/quote/AAPL.US
狀態200 OK回應耗時毫秒級
回應
{
  "code": 0,
  "message": "ok",
  "data": {
    "symbol": "AAPL.US",
    "name": "苹果",
    "market": "US",
    "currency": "USD",
    "last": 328.21,
    "open": 324.87,
    "high": 330.81,
    "low": 324.11,
    "prev_close": 324.96,
    "change": 3.25,
    "change_pct": 1.0001,
    "volume": 37225838,
    "ts": "2026-09-03T16:00:00-04:00",
    "as_of": "2026-09-03",
    "delayed": true,
    "venue_mode": "consolidated",
    "timeliness": { "mode": "eod_only", "delayed": true, "label": "T+1 收盘数据" },
    "source": "eod"
  }
}

範例取自真實呼叫。delayed 與 as_of 原樣保留,一眼就知道這批資料是什麼時效。

目前提供 T+1 及更早的日線資料,盤中與即時資料暫未開放。 資料已更新至 2026/09/04

能力概覽

四個數字都是開啟本頁時向伺服器實測得到的,不是宣傳口徑,重新整理一次即可重現。沒測到的寫「毫秒級」或「—」——我們不寫沒有量測依據的數字承諾。

歷史資料回應
毫秒級
本次未測到,改用不量化的措辭
收盤報價回應
毫秒級
收盤資料(T+1 及更早)
服務可用性
正常
本次探測結果
支援標的
13,193
7,284 個已入庫歷史行情

為什麼選擇我們的 API?

六條都能在本頁別處當場驗證:能力數字、流量限制表、線上試用面板。我們不寫驗證不了的口號。

快速回應

歷史 K 線與報價命中本地庫後毫秒級回傳。本頁頂部四格就是你這次開啟頁面實測到的耗時。

穩定可靠

上游資料來源故障時回傳明確的 502,絕不拿舊資料或髒資料頂替。

智慧流量限制

滑動視窗計數,429 自帶 Retry-After 與 X-RateLimit-* 標頭,用戶端可以自適應退避。

RESTful 介面

所有端點共用 code / message / data 一個回應外殼,用戶端只寫一處解析。

資料豐富

報價、日線週線月線、靜態資訊、標的搜尋、批次查詢與回測,一套介面全涵蓋。

完全免費

訪客免註冊即可呼叫,註冊後額度更高。免費檔不是試用期,也不會靜默降額。

💰 用量與定價

三檔用量。卡上每一個數字都即時來自伺服器方案設定,前端一個都沒寫死。

訪客版

¥0無需註冊
單端點
30 次/分
批次查詢
10 次/分
回測
5 次/分
API Key
無法使用
  • 依來源 IP 限流,開啟就能呼叫
  • 報價、K 線、靜態資訊、標的搜尋、批次與回測全部開放
  • 不簽發 API Key
  • 無呼叫記錄與統計
  • 無技術支援

註冊版

推薦
¥0免費註冊
單端點
60 次/分
批次查詢
20 次/分
回測
20 次/分
API Key
1 把
  • 依 API Key 限流,與他人互不干擾
  • 控制台可查每日呼叫量統計
  • 回測記錄可儲存與分享
  • 郵件技術支援

Pro 版

¥99/ 月
單端點
300 次/分
批次查詢
100 次/分
回測
60 次/分
API Key
5 把
  • 專屬額度,可開多把 Key 分攤用量
  • 依端點、依日的詳細呼叫統計
  • 參數最佳化、投資組合回測與 CSV 匯出
  • 專屬技術支援,優先回應

回測介面訪客 5 次/分、註冊使用者 20 次/分。以上流量限制數字來自 GET /api/plans,與定價頁、控制台同源,不會出現互相矛盾的版本。 查看完整定價與機構版

🔐 驗證方式

三種呼叫身分,切換只需要改一個請求標頭。

訪客模式

無需註冊

不帶任何憑證直接呼叫,依來源 IP 計額度。

單端點額度: 30 次/分

  • 適合先試介面、寫 demo、跑一次性指令碼
  • 同一個出口 IP 下的所有呼叫共用額度 —— 公司網路、雲端函式、CI 要留意
  • 不保留呼叫記錄,控制台裡看不到用量

註冊使用者

推薦

請求標頭帶上 API Key,依 Key 計額度。

單端點額度: 60 次/分

  • 註冊只要電子郵件驗證碼,平台不設密碼,註冊即自動簽發一把 Key
  • Key 以 nq_ 開頭,後接 64 位十六進位;控制台可隨時重設
  • 控制台能看到每日呼叫量,回測記錄可儲存與分享

登入取得 Key

Pro 版本

更高額度

同樣是 API Key,額度與可用功能依 Pro 檔發放。

單端點額度: 300 次/分

  • 可開多把 Key,額度依 Key 分配,互不干擾
  • 依端點與依日的詳細呼叫統計
  • 參數最佳化、投資組合回測與 CSV 匯出隨檔位開放

查看完整定價與機構版

請求範例

訪客呼叫
GET https://us2.ninequantai.com/v1/quote/AAPL.US

不帶任何請求標頭,依來源 IP 計額度。

帶 API Key 呼叫
GET https://us2.ninequantai.com/v1/quote/AAPL.US
Authorization: Bearer nq_your_api_key_here
Accept-Language: zh-CN

把 nq_your_api_key_here 換成控制台裡的 Key。Accept-Language 決定錯誤訊息用哪種語言回傳。

憑證不合法時是 401,不會降級成訪客

帶了 Key 但 Key 過期或被重設,回傳 401 而不是靜默按訪客處理 —— 否則你只會看到「資料怎麼少了」,而不是「該換 Key 了」。完全不帶憑證才按訪客走。

⚠️ 別把 Key 寫進前端

瀏覽器裡的任何程式碼都是公開的。Key 只放伺服器或本機指令碼;一旦外洩,去控制台重設,舊 Key 立即失效。

⚠️ 錯誤碼

只列真正會遇到的六個,不鋪滿一整張 HTTP 狀態碼表。

狀態碼含義該怎麼辦
400參數不合法:日期格式、period 取值、批次標的數超上限等依 message 改參數。message 已依 Accept-Language 在地化,可以直接顯示給你的使用者。
401憑證不合法或已過期檢查 Authorization 標頭是否寫成 Bearer nq_xxx;Key 被重設過就去控制台取新的。完全不帶憑證不會 401,會按訪客處理。
403我方新增目前身分沒有這項權限兩種情況:分發姿態還沒開放(例如 eod_only 下的分時),或目前方案不含該能力。前者等授權,後者升級方案。
404我方新增標的或記錄不存在先用 /v1/symbols 確認拼字。統一格式是 QQQ.US,預設市場按美股解釋。
429觸發流量限制讀 Retry-After 退避重試。長期不夠用就升級方案,或者多開一把 Key —— 額度是依 Key 分配的。
502上游資料來源暫時無法使用我們寧可回傳 502 也不回傳髒資料。稍後重試,或改用已入庫的歷史區間。

403 與 404 是我方在四個通用錯誤碼之外新增的:403 用於「分發姿態尚未開放」(例如目前的分時端點)與「目前方案不含該能力」,404 用於標的或記錄不存在。少了這兩個,呼叫方分不清該等授權、該升級方案,還是只是程式碼寫錯了。

500 / 503 同樣遵守上面的回應外殼。任何錯誤回應都不會把堆疊吐給呼叫方,出問題請帶上 X-Request-Id 找我們。

統一回應格式

所有 /v1 與 /api 端點回傳同一個外殼,用戶端只需要寫一處解析。

成功
{
  "code": 0,
  "message": "ok",
  "data": { }
}
失敗
{
  "code": 429,
  "message": "请求过于频繁,请在 12 秒后重试",
  "data": null,
  "retry_after": 12
}

每個回應都帶 X-Request-Id 標頭。回報問題時附上它,我們能直接定位到那一次呼叫。

📦 SDK 範例

Python(requests)、JavaScript(fetch)與 cURL 三份,複製即可跑。把 YOUR_API_KEY 換成控制台裡的 Key;不換也能跑,只是依訪客額度計。

介面位址: https://us2.ninequantai.com

Python
import requests

BASE = "https://us2.ninequantai.com"
# 訪客呼叫把這一行刪掉即可
headers = {"Authorization": "Bearer YOUR_API_KEY"}

r = requests.get(f"{BASE}/v1/quote/QQQ.US", headers=headers, timeout=20)
r.raise_for_status()
body = r.json()          # 統一信封:code / message / data
if body["code"] != 0:    # HTTP 200 也可能是業務失敗,務必判 code
    raise RuntimeError(body["message"])

print(body["data"])

我們不提供也不打算提供官方 SDK:一個只有七個端點、統一回應外殼的 REST 介面,二十行程式碼就能封裝完,多一層 SDK 只會多一層版本問題。

API 端點

七個端點:報價 / 歷史K線 / 分時 / 靜態資訊 / 批次,再加上標的搜尋與回測。每個端點都給了參數表、真實請求與回應範例,以及一個可以直接發請求的線上試用面板。

GET/v1/quote/{symbol}

報價

單一標的的最新可分發報價

時效取決於部署的分發姿態:eod_only 下回傳最近一個已過 T+1 的交易日快照,as_of 標明資料日期。回應裡的 timeliness 會如實說明本次拿到的是哪一種。

計入額度類別: 報價訪客版 · 30 次/分註冊版 · 60 次/分

參數

參數位置型別必填預設說明
symbol路徑string必填標的代碼,QQQ 或 QQQ.US 均可,預設市場按美股解釋

請求範例

cURL
# 訪客呼叫把這一行刪掉即可
curl -s "https://us2.ninequantai.com/v1/quote/QQQ.US" \
  -H "Authorization: Bearer YOUR_API_KEY"

回應範例

JSON
{
  "code": 0,
  "message": "ok",
  "data": {
    "symbol": "QQQ.US",
    "name": "纳斯达克100",
    "market": "US",
    "currency": "USD",
    "last": 717.67,
    "open": 710.85,
    "high": 718.915,
    "low": 709.69,
    "prev_close": 709.24,
    "change": 8.43,
    "change_pct": 1.1886,
    "volume": 29449781,
    "ts": "2026-09-03T16:00:00-04:00",
    "as_of": "2026-09-03",
    "delayed": true,
    "venue_mode": "consolidated",
    "venue_mode_label": "合并口径(全市场)",
    "timeliness": {
      "mode": "eod_only",
      "delayed": true,
      "delay_minutes": null,
      "label": "T+1 收盘数据",
      "max_date": "2026-09-03"
    },
    "source": "eod"
  }
}

範例取自真實呼叫,為便於閱讀裁剪了陣列長度。

可能的錯誤

  • 400參數不合法:日期格式、period 取值、批次標的數超上限等
  • 404標的或記錄不存在
  • 429觸發流量限制
  • 502上游資料來源暫時無法使用

線上試用

填好參數直接發一次真實請求。它會消耗你目前身分的額度,和線上呼叫完全一樣。

還沒發過請求。點上面的按鈕試一次。

GET/v1/kline/{symbol}

歷史 K 線

日 / 週 / 月 K 線

週線與月線由日線重新取樣得出,不單獨儲存。adjust=qfq 為前復權:因子在查詢時相乘算出,不預存復權價,最新價保持真實成交價;adjust_applied 會如實告訴你該區間是否真的有因子被套用。

計入額度類別: K 線訪客版 · 30 次/分註冊版 · 60 次/分

參數

參數位置型別必填預設說明
symbol路徑string必填標的代碼
period查詢string選填dayday / week / month,預設 day
start查詢string選填起始日期 YYYY-MM-DD
end查詢string選填結束日期 YYYY-MM-DD,超出可分發範圍會被收斂
days查詢integer選填250回傳最近 N 根(依 period 計數);與 start 同時給出時以 start 為準
adjust查詢string選填nonenone(預設)/ qfq 前復權

請求範例

cURL
# 訪客呼叫把這一行刪掉即可
curl -s "https://us2.ninequantai.com/v1/kline/QQQ.US?period=day&days=30&adjust=none" \
  -H "Authorization: Bearer YOUR_API_KEY"

回應範例

JSON
{
  "code": 0,
  "message": "ok",
  "data": {
    "symbol": "QQQ.US",
    "name": "纳斯达克100",
    "market": "US",
    "currency": "USD",
    "period": "day",
    "adjust": "none",
    "adjust_applied": false,
    "venue_mode": "consolidated",
    "venue_mode_label": "合并口径(全市场)",
    "delayed": true,
    "as_of": "2026-09-03",
    "timeliness": { "mode": "eod_only", "delayed": true, "label": "T+1 收盘数据" },
    "start": "2026-07-24",
    "end": "2026-09-03",
    "count": 30,
    "bars": [
      { "ts": "2026-07-24", "open": 690.41, "high": 692.63, "low": 682.48, "close": 684.23, "volume": 42876658 },
      { "ts": "2026-07-27", "open": 691.68, "high": 692.3, "low": 675.945, "close": 682.12, "volume": 42681473 },
      { "...": "共 30 根,其余略" },
      { "ts": "2026-09-03", "open": 710.85, "high": 718.915, "low": 709.69, "close": 717.67, "volume": 29449781 }
    ]
  }
}

範例取自真實呼叫,為便於閱讀裁剪了陣列長度。

可能的錯誤

  • 400參數不合法:日期格式、period 取值、批次標的數超上限等
  • 404標的或記錄不存在
  • 429觸發流量限制
  • 502上游資料來源暫時無法使用

線上試用

填好參數直接發一次真實請求。它會消耗你目前身分的額度,和線上呼叫完全一樣。

還沒發過請求。點上面的按鈕試一次。

GET/v1/intraday/{symbol}目前部署下無法使用

分時資料

當日分時 K 線

盤中資料的對外分發需要交易所額外授權。分發模式為 eod_only 時本端點回傳 403 —— 這不是你的參數寫錯了,而是這個部署還沒有開放盤中分發。授權落實後把分發模式改成 delayed 或 realtime 即可,端點與欄位不變。

目前分發模式為 eod_only:這個端點會回傳 403。原因是盤中資料的對外分發需要交易所額外授權 —— 不是你的參數寫錯了。授權落實後把分發模式改成 delayed 或 realtime 即可,端點路徑與欄位一律不變。

計入額度類別: 分時訪客版 · 無法使用註冊版 · 60 次/分

參數

參數位置型別必填預設說明
symbol路徑string必填標的代碼
date查詢string選填交易日 YYYY-MM-DD,預設最近可分發交易日
interval查詢string選填1m分時粒度,如 1m

請求範例

cURL
# 訪客呼叫把這一行刪掉即可
curl -s "https://us2.ninequantai.com/v1/intraday/QQQ.US?interval=1m" \
  -H "Authorization: Bearer YOUR_API_KEY"

回應範例

JSON
{
  "code": 403,
  "message": "分时数据暂不对外提供",
  "data": null
}

範例取自真實呼叫,為便於閱讀裁剪了陣列長度。

可能的錯誤

  • 400參數不合法:日期格式、period 取值、批次標的數超上限等
  • 403目前身分沒有這項權限
  • 404標的或記錄不存在
  • 429觸發流量限制
  • 502上游資料來源暫時無法使用

線上試用

填好參數直接發一次真實請求。它會消耗你目前身分的額度,和線上呼叫完全一樣。

目前部署下這個端點無法使用仍然可以點傳送 —— 伺服器會回傳一個真實的 403,正好看看錯誤外殼長什麼樣。

還沒發過請求。點上面的按鈕試一次。

GET/v1/static/{symbol}

靜態資訊

標的靜態屬性與本地歷史涵蓋區間

除了名稱、類型、主要交易所這些靜態屬性,還回傳本地已入庫的日線區間(history_start / history_end),方便你在發起回測前先確認資料夠不夠。已下市標的同樣回傳,並在 note 裡註明。

計入額度類別: 靜態資訊訪客版 · 30 次/分註冊版 · 60 次/分

參數

參數位置型別必填預設說明
symbol路徑string必填標的代碼

請求範例

cURL
# 訪客呼叫把這一行刪掉即可
curl -s "https://us2.ninequantai.com/v1/static/QQQ.US" \
  -H "Authorization: Bearer YOUR_API_KEY"

回應範例

JSON
{
  "code": 0,
  "message": "ok",
  "data": {
    "symbol": "QQQ.US",
    "raw_symbol": "QQQ",
    "market": "US",
    "name": "纳斯达克100",
    "asset_type": "etf",
    "primary_venue": "XNAS",
    "currency": "USD",
    "listed_on": null,
    "delisted_on": null,
    "is_delisted": false,
    "is_popular": true,
    "lot_size": 40,
    "status": "active",
    "history_start": "2024-07-01",
    "history_end": "2026-09-03",
    "venue_mode": "consolidated",
    "note": null
  }
}

範例取自真實呼叫,為便於閱讀裁剪了陣列長度。

可能的錯誤

  • 400參數不合法:日期格式、period 取值、批次標的數超上限等
  • 404標的或記錄不存在
  • 429觸發流量限制
  • 502上游資料來源暫時無法使用

線上試用

填好參數直接發一次真實請求。它會消耗你目前身分的額度,和線上呼叫完全一樣。

還沒發過請求。點上面的按鈕試一次。

POST/v1/batch

批次查詢

一次查詢多個標的

單一標的失敗不會讓整次請求失敗:成功的結果在 results,失敗原因逐條列在 errors 裡,便於定位是哪個代碼寫錯了,而不是整批一起重來。單次標的數上限由方案決定,見上方額度表。

計入額度類別: 批次查詢訪客版 · 10 次/分註冊版 · 20 次/分

參數

參數位置型別必填預設說明
symbols請求主體string[]必填標的代碼陣列,依去重後計數
type請求主體string選填quotequote / static / kline
period請求主體string選填daytype=kline 時生效
adjust請求主體string選填nonetype=kline 時生效
days請求主體integer選填type=kline 時每個標的回傳的根數

請求範例

cURL
# 訪客呼叫把這一行刪掉即可
curl -s -X POST "https://us2.ninequantai.com/v1/batch" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
  "symbols": [
    "QQQ.US",
    "SPY.US",
    "NOPE.US"
  ],
  "type": "quote"
}'

回應範例

JSON
{
  "code": 0,
  "message": "ok",
  "data": {
    "type": "quote",
    "requested": 3,
    "succeeded": 2,
    "failed": 1,
    "distribution_mode": "eod_only",
    "results": {
      "QQQ.US": { "symbol": "QQQ.US", "last": 717.67, "change_pct": 1.1886, "as_of": "2026-09-03", "...": "字段与 /v1/quote 相同" },
      "SPY.US": { "...": "同上" }
    },
    "errors": [
      { "symbol": "NOPE.US", "code": 404, "message": "未找到标的 NOPE.US" }
    ]
  }
}

範例取自真實呼叫,為便於閱讀裁剪了陣列長度。

可能的錯誤

  • 400參數不合法:日期格式、period 取值、批次標的數超上限等
  • 429觸發流量限制
  • 502上游資料來源暫時無法使用

線上試用

填好參數直接發一次真實請求。它會消耗你目前身分的額度,和線上呼叫完全一樣。

還沒發過請求。點上面的按鈕試一次。

GET/v1/symbols

標的搜尋

依代碼或名稱模糊搜尋標的

代碼精確命中排最前,其次是代碼前綴,最後才是名稱命中。不傳 q 時回傳熱門標的,適合做搜尋框的初始狀態。結果包含已下市標的,只是排序上讓位於在營標的。

計入額度類別: 標的搜尋訪客版 · 30 次/分註冊版 · 60 次/分

參數

參數位置型別必填預設說明
q查詢string選填關鍵字,比對代碼前綴或名稱片段
market查詢string選填US市場代碼,目前僅支援 US
limit查詢integer選填20回傳筆數上限,預設 20,最大 100

請求範例

cURL
# 訪客呼叫把這一行刪掉即可
curl -s "https://us2.ninequantai.com/v1/symbols?q=QQ&market=US&limit=2" \
  -H "Authorization: Bearer YOUR_API_KEY"

回應範例

JSON
{
  "code": 0,
  "message": "ok",
  "data": {
    "query": "QQ",
    "market": "US",
    "total": 30,
    "count": 2,
    "items": [
      {
        "symbol": "QQQ.US",
        "raw_symbol": "QQQ",
        "market": "US",
        "name": "纳斯达克100",
        "asset_type": "etf",
        "primary_venue": "XNAS",
        "currency": "USD",
        "listed_on": null,
        "delisted_on": null,
        "is_delisted": false,
        "is_popular": true
      },
      { "...": "共 2 条,其余略" }
    ]
  }
}

範例取自真實呼叫,為便於閱讀裁剪了陣列長度。

可能的錯誤

  • 400參數不合法:日期格式、period 取值、批次標的數超上限等
  • 429觸發流量限制
  • 502上游資料來源暫時無法使用

線上試用

填好參數直接發一次真實請求。它會消耗你目前身分的額度,和線上呼叫完全一樣。

還沒發過請求。點上面的按鈕試一次。

POST/v1/backtest

執行回測

用內建策略跑一次回測

與網頁版回測共用同一套引擎,同參數同版本必然重現同結果。策略參數既可以放進 params 巢狀給,也可以直接平鋪在頂層(兩者同時出現時以 params 為準)。預設回傳 K 線與成交明細,只要那十幾個指標時把 include_klines / include_equity 設為 false,能省掉大部分頻寬。

計入額度類別: 回測訪客版 · 5 次/分註冊版 · 20 次/分

參數

參數位置型別必填預設說明
symbol請求主體string必填標的代碼
strategy請求主體string選填chandelier策略代碼,見 GET /v1/strategies
time_range請求主體string選填1Y預設區間:YTD / 1M / 3M / 6M / 1Y / 2Y / 3Y / 4Y / 5Y / 6Y / 7Y / 8Y / 10Y / MAX
start請求主體string選填起始日期 YYYY-MM-DD,給了就忽略 time_range
end請求主體string選填結束日期 YYYY-MM-DD
params請求主體object選填策略參數物件,依 params_schema 驗證
execute_on請求主體string選填close成交時點:close=訊號日收盤成交(預設);next_open=訊號次日開盤成交(更接近實際交易)
cost請求主體object選填交易成本 {commission_rate, min_commission, slippage_bps}。不傳則三項全為 0 —— 預設口徑不計成本,結果裡的 notes 會帶 no_cost_model 說明這件事
include_klines請求主體boolean選填true是否回傳 K 線陣列
include_trades請求主體boolean選填true是否回傳成交明細
include_equity請求主體boolean選填true是否回傳淨值曲線

請求範例

cURL
# 訪客呼叫把這一行刪掉即可
curl -s -X POST "https://us2.ninequantai.com/v1/backtest" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
  "symbol": "QQQ.US",
  "strategy": "chandelier",
  "time_range": "1Y",
  "params": {
    "sma_period": 100
  },
  "execute_on": "close",
  "include_klines": false,
  "include_trades": true,
  "include_equity": false
}'

回應範例

JSON
{
  "code": 0,
  "message": "ok",
  "data": {
    "symbol": "QQQ.US",
    "time_range": "1Y",
    "strategy": "chandelier",
    "engine_version": "1.1.0",
    "venue_mode": "consolidated",
    "start_date": "2025-09-08",
    "end_date": "2026-09-04",
    "num_trades": 8,
    "win_rate": 50.0,
    "total_pnl_pct": 8.56,
    "annualized_pct": 8.66,
    "max_drawdown_pct": 11.12,
    "sharpe": 0.624,
    "profit_factor": 1.84,
    "buy_hold_pnl_pct": 24.2,
    "excess_return_pct": -15.64,
    "params": { "sma_period": 100, "atr_period": 14, "entry_mult": 2.0, "exit_mult": 3.0, "entry_mode": "chandelier", "trail_mode": "rolling", "...": "其余略" },
    "cost": {
      "commission_rate": 0.0,
      "min_commission": 0.0,
      "slippage_bps": 0.0,
      "initial_capital": 100000.0,
      "execute_on": "close"
    },
    "data_range": { "actual_start": "2025-09-08", "actual_end": "2026-09-04", "bars": 251, "truncated": false },
    "data_freshness": { "distribution_mode": "eod_only", "as_of": "2026-09-04", "delayed": true },
    "notes": [
      { "code": "no_cost_model", "level": "info", "message": "本次未计成本。实盘会有手续费与滑点…" }
    ],
    "trades": [{ "seq": 1, "entry_date": "2025-09-08", "entry_price": 578.87, "exit_date": "2025-10-10", "exit_price": 589.5, "pnl_pct": 1.8363363103978347, "exit_reason": "stop", "...": "其余略" }],
    "disclaimer": "数据与回测结果仅供研究参考,不构成任何投资建议。"
  }
}

範例取自真實呼叫,為便於閱讀裁剪了陣列長度。

可能的錯誤

  • 400參數不合法:日期格式、period 取值、批次標的數超上限等
  • 404標的或記錄不存在
  • 429觸發流量限制
  • 502上游資料來源暫時無法使用

線上試用

填好參數直接發一次真實請求。它會消耗你目前身分的額度,和線上呼叫完全一樣。

還沒發過請求。點上面的按鈕試一次。

機器可讀文件

介面的 OpenAPI 描述隨服務一起發布,可以直接匯入 Postman / Insomnia,或者用它產生用戶端程式碼。那份文件裡的流量限制說明同樣由伺服器方案設定算出,不會與本頁對不上。

資料時效聲明

目前分發模式: eod_only

目前提供 T+1 及更早的日線資料,盤中與即時資料暫未開放。

交易所對資料的對外轉發有明確規則:T+1 及更早的收盤資料可以免費分發,即時與盤中資料需要額外授權。授權落實之前,我們寧可不提供,也不含糊其辭地給一份說不清來源的資料。授權到位後這裡會改成延遲或即時,端點路徑與欄位一律不變。

資料已更新至 2026/09/04合併口徑日線自 2024/07/01 起入庫

每個行情回應都帶 timeliness 欄位,如實標註這批資料的時效 —— 能不能用於即時決策,看回應就知道,不必靠讀文件猜。

資料口徑隨資料一起回傳

每筆行情都帶 venue_mode。合併口徑(consolidated)彙總全部交易場所,單一交易所口徑(single_venue)只有一家 —— 實測兩者收盤價最大偏差 7.1%,單場成交量僅為合併量的 23%~34% 且隨季度漂移,single_venue 因此一律拒絕進入回測。行情介面只回傳合併口徑;回測要取 2024-07 之前的美股歷史時,會接上主場常規時段重建口徑(primary_session:收盤價取交易所官方收盤價,實測與合併口徑逐日相等;開高低由主場分鐘線重建,偏差 ≤0.03%;成交量為單場口徑),並在結果裡掛 mixed_session_source 把這件事講清楚。

標的庫含已下市標的

下市標的照常可查,並標註 is_delisted。回測不做倖存者偏差過濾 —— 把下市公司剔掉,歷史報酬會憑空變好看。

平台沒有下單能力

我們不對接任何券商實盤交易,介面裡也不會出現下單、部位、資金相關的端點。

免費開放

下面這些端點訪客無需註冊即可呼叫,依來源 IP 計額度。

可用端點

流量限制規則(訪客檔)

  • 報價30 次/分
  • K 線30 次/分
  • 分時無法使用
  • 靜態資訊30 次/分
  • 標的搜尋30 次/分
  • 批次查詢10 次/分
  • 回測5 次/分
  • 參數最佳化無法使用

每個類別各有一個獨立計數桶,不共用。數字來自 GET /api/plans 的訪客檔,與定價頁同源。

註冊後可提高用量

  • 額度改依 API Key 計,不再與同一出口 IP 的其他人共用
  • 單端點、批次與回測額度提高到註冊檔,具體數字見上方額度表
  • 控制台可查每日呼叫量,回測記錄可儲存、分享

常見問題

命中本地庫的歷史 K 線與報價是毫秒級回傳。本頁頂部四格就是你這次開啟頁面時實測到的往返耗時,重新整理一次即可自己重現。我們不寫「小於 50 毫秒」這類沒有量測依據的承諾。

立即開始使用

不需要任何憑證,複製右邊這行指令就能拿到第一份資料。想要更高額度、呼叫統計與回測記錄,用電子郵件驗證碼註冊一個帳號即可,註冊時自動簽發 API Key。

cURL
curl -s "https://us2.ninequantai.com/v1/quote/AAPL.US"

以訪客身分直接呼叫,依來源 IP 計額度。

聯絡我們

接入問題、額度需求、資料合作都可以直接寫信。

技術支援

使用問題、Bug 回報、API 接入諮詢

support@ninequantai.com

商務合作

策略客製、資料合作、商務洽談

business@ninequantai.com

微信諮詢

公眾號與客服微信正在申請中

待公布

我們通常會在 1-3 個工作天內回覆您的來信。前往聯絡頁