瀏覽全部文件

股價指數 API 參考文件

18 種指數的點位與歷史資料

概覽

18 種股價與波動率指數的點位與歷史點位。每個請求都需要 Bearer 金鑰,REST 與 MCP 共用同一個額度餘額。

id 是指數的標準代碼,例如 SPX 代表 S&P 500,NDX 代表 Nasdaq-100,DJI 代表道瓊工業平均指數。大小寫皆可。清單路由會回傳每個 id 及其名稱、地區與幣別。

指數的日資料就緒後,價格會附上前收盤價、漲跌與漲跌幅。

基礎網址: https://api.narwhalapi.com。 MCP 工具是 indices, with one action ,適用於下列每個路由。

每個帳戶都能取得的內容

費用所有帳戶
最新點位在線
日線柱狀數據完整歷史資料
1 分鐘 K 線最近 12 個月
指數清單已包含

查看 定價 說明每次呼叫的費用。除非路由另有說明,請求依其所屬 API 的價格計費。

  • 歷史資料從我們持有的起點開始。S&P 500 自 2023 年 2 月起。
  • 波動率指數(VIX、OVX、GVZ)不是金額,因此其回應不含幣別。
  • market_session 依指數公布的交易時段為 open 或 closed。已收市的指數會回傳最後點位,且不算過時。開市中的指數若點位超過 15 分鐘未更新,即為過時。
  • 日 K 線涵蓋一個交易日,於 00:00 UTC 出現。當日尚未完成的 K 線不會顯示。
  • K 線不含成交量。一分鐘 K 線保留 12 個月,單一請求最多涵蓋 5 天。
  • 一個批次最多包含 50 個 id,每個回傳點位的 id 計為一次呼叫。未知的 id 會列在 errors,且不計次。

端點

每個路由都是 GET 請求,並需要將你的金鑰放在以下請求標頭中: Authorization: Bearer 標頭。範例僅展示回應的結構,並非即時資料。

提供報價的指數

GET /v1/indices

我們提供報價的所有指數序列,依 id 排序,並附名稱與單位。資料來自我們自己的清單,所有帳號皆可使用,計為一次呼叫。

MCP:工具 indices, action list。

參數

此路由不接受任何參數。

回應欄位

欄位類型傳送含義
indices物件陣列固定回傳我們提供報價的所有指數,依 id 排序。
indices[].id字串固定回傳指數代碼,例如 SPX。
indices[].name字串固定回傳指數名稱。
indices[].regionus、uk、europe、global、asia 擇一固定回傳成分股的交易地區。
indices[].currency字串選填指數的計價幣別。波動率指數不是金額,因此省略。
請求
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/indices"
回應範例
{
  "indices": [
    {
      "id": "SPX",
      "name": "S&P 500",
      "region": "us",
      "currency": "USD"
    },
    {
      "id": "VIX",
      "name": "Cboe Volatility Index",
      "region": "us"
    }
  ]
}

單一指數序列的最新價格

GET /v1/indices/{id}/price

最新價格。market_session 依序列的交易時段為 open 或 closed;已收市的序列會回傳最後價格,只有開市中的序列在最近 15 分鐘內沒有價格時,stale 才為 true。previous_close 是前一個交易日的收盤價,change_percent 以百分比表示。

MCP:工具 indices, action price。

參數

參數位置必填類型含義
idpath是字串指數 id,例如 SPX、NDX 或 DJI。大小寫皆可。

回應欄位

欄位類型傳送含義
id字串固定回傳指數代碼。
name字串固定回傳名稱,依我們代號清單所載。
currency字串選填指數的計價幣別。波動率指數不是金額,因此省略。
price字串固定回傳指數的最新點位。
previous_close字串選填前一個交易日的收盤價。未知時省略。
change字串選填price 減去 previous_close。
change_percent字串選填以百分比表示的漲跌幅(1.5 代表 1.5%)。與 change 一併省略。
market_sessionopen、closed 擇一固定回傳序列依公布時段交易時為 open,否則為 closed。已收市的序列仍會回傳最後價格;時段內遇到假日時顯示為 open,並標示為 stale。
timestamp日期時間固定回傳價格有效的時間(UTC,精確到秒)。
stale布林值固定回傳序列開市中且價格超過 15 分鐘未更新,或無法更新時為 true。已收市的序列不算過時。
delayed一律為 true選填不會回傳:所有帳號的價格皆為即時。
請求
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/indices/SPX/price"
回應範例
{
  "id": "SPX",
  "name": "S&P 500",
  "currency": "USD",
  "price": "7696.46",
  "previous_close": "7681.2",
  "change": "15.26",
  "change_percent": "0.2",
  "market_session": "open",
  "timestamp": "2026-10-29T18:38:00Z",
  "stale": false
}

最多 50 個指數序列的最新價格

GET /v1/indices/prices

所列每個 id 的最新價格。每個回傳價格的 id 計為一次呼叫,並一次性扣款:若餘額不足以支付已解析的 id,整個請求會以 402 insufficient_credits 拒絕。未回傳價格的 id 會列在 errors(以 id 表示),不收費;若沒有任何 id 能解析,回應仍為 200,且 prices 為空。previous_close 是前一個交易日的收盤價,change_percent 以百分比表示。

最多可傳入 50 個 ID。批次一次扣款:若餘額不足以支付可解析的 ID,整個請求會回傳 402 insufficient_credits。

MCP:工具 indices, action prices。

參數

參數位置必填類型含義
idsquery是字串以逗號分隔的 id,去除重複後最多 50 個。每個 id 的規則與單一價格路由相同。每個回傳價格的 id 計為一次呼叫。

回應欄位

欄位類型傳送含義
prices物件陣列固定回傳每個成功解析的 ID 各有一筆價格,以 ID 為鍵。
prices[].id字串固定回傳指數代碼。
prices[].name字串固定回傳名稱,依我們代號清單所載。
prices[].currency字串選填指數的計價幣別。波動率指數不是金額,因此省略。
prices[].price字串固定回傳指數的最新點位。
prices[].previous_close字串選填前一個交易日的收盤價。未知時省略。
prices[].change字串選填price 減去 previous_close。
prices[].change_percent字串選填以百分比表示的漲跌幅(1.5 代表 1.5%)。與 change 一併省略。
prices[].market_sessionopen、closed 擇一固定回傳序列依公布時段交易時為 open,否則為 closed。已收市的序列仍會回傳最後價格;時段內遇到假日時顯示為 open,並標示為 stale。
prices[].timestamp日期時間固定回傳價格有效的時間(UTC,精確到秒)。
prices[].stale布林值固定回傳序列開市中且價格超過 15 分鐘未更新,或無法更新時為 true。已收市的序列不算過時。
prices[].delayed一律為 true選填不會回傳:所有帳號的價格皆為即時。
errors物件陣列固定回傳沒有回傳價格的 ID,不收費。
errors[].id字串固定回傳請求時傳入的 ID。
errors[].code固定為 "not_found"固定回傳not_found:沒有此序列。
請求
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/indices/prices?ids=SPX,NDX,DJI"
回應範例
{
  "prices": [
    {
      "id": "SPX",
      "name": "S&P 500",
      "currency": "USD",
      "price": "7696.46",
      "previous_close": "7681.2",
      "change": "15.26",
      "change_percent": "0.2",
      "market_session": "open",
      "timestamp": "2026-10-29T18:38:00Z",
      "stale": false
    },
    {
      "id": "NDX",
      "name": "Nasdaq-100",
      "currency": "USD",
      "price": "27310.5",
      "previous_close": "27264.9",
      "change": "45.6",
      "change_percent": "0.17",
      "market_session": "open",
      "timestamp": "2026-10-29T18:38:00Z",
      "stale": false
    }
  ],
  "errors": [
    {
      "id": "XX",
      "code": "not_found"
    }
  ]
}

單一指數序列的價格 K 線

GET /v1/indices/{id}/bars

日(1d,每個交易日一根 K 線)或一分鐘(1m)K 線,由舊到新排列。某日的 K 線在該日結束後的 00:00 UTC 產生;當日尚未完成的 K 線不會顯示。一分鐘 K 線保留 12 個月。歷史資料:全部,所有帳號皆可取得。每頁最多 5,000 根 K 線,並附 next_cursor。每頁計為一次呼叫。

MCP:工具 indices, action bars。

參數

參數位置必填類型含義
idpath是字串指數 id,例如 SPX、NDX 或 DJI。大小寫皆可。
intervalquery否下列其一:1d、1m1d(每個交易日一根 K 線,以所屬日期標記)或 1m(一分鐘 K 線,保留 12 個月)。其他值會回傳 400 invalid_interval。
startquery否字串第一根 K 線。1d:日期(YYYY-MM-DD),含該日;省略時為最舊的一根。1m:UTC 時間(YYYY-MM-DDTHH:MM:SSZ,或以日期代表 UTC 00:00),含該時間;省略時為 end 的前一天。
endquery否字串最後一根 K 線。1d:日期,含當日;省略表示最近一個已完成的日子。1m:UTC 時間,不含;省略表示現在,或 start 之後五天。1m 的 start 與 end 最多相隔 5 天(400 range_too_large)。
cursorquery否字串上一頁的 next_cursor,且參數須與前次相同。

回應欄位

欄位類型傳送含義
id字串固定回傳
currency字串選填指數的計價幣別。波動率指數不是金額,因此省略。
start字串選填不會回傳:start 不會被調整。
end字串選填不會回傳:日 K 線不會被截斷。
bars物件陣列固定回傳每頁最多 5,000 根 K 線。
bars[].timestamp日期時間固定回傳K 線所屬期間的起點(UTC):日 K 線為該交易日的 00:00,一分鐘 K 線為該分鐘。
bars[].open字串固定回傳期間的第一個價格。
bars[].high字串固定回傳期間的最高價。
bars[].low字串固定回傳期間的最低價。
bars[].close字串固定回傳期間的最後價格。
next_cursor字串固定回傳傳回此值即可讀取下一頁。最後一頁為 null。
請求
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/indices/SPX/bars?interval=1d&start=2026-10-01"
回應範例
{
  "id": "SPX",
  "currency": "USD",
  "bars": [
    {
      "timestamp": "2026-10-28T00:00:00Z",
      "open": "7655.1",
      "high": "7702.4",
      "low": "7640.8",
      "close": "7681.2"
    }
  ],
  "next_cursor": null
}

錯誤

錯誤使用共用的問題格式,並包含 request_id。查看 API 錯誤 處理:錯誤碼、額度與重試 了解格式與額度標頭。失敗的請求不計費。

代碼狀態含義
invalid_query400參數缺漏、未知、重複,或超出範圍。
invalid_id400id 或交易對的寫法不符合此 API 的要求。
too_many_ids400批次包含超過 50 個 id。
invalid_interval400間隔不是 1d 或 1m,或此商品不支援該間隔。
range_too_large400區間超過此路由允許的長度。
not_found404沒有此標的、基金或交易對。
invalid_cursor400此游標不是這個請求所回傳的,或來自不同的請求。
insufficient_credits402您的額度餘額不足以支付此請求的費用。
area_unavailable503此區域目前無法回應。

此頁面對你有幫助嗎?