所有 API

期貨 API 資料服務

透過 REST 或 MCP,取得 29 種期貨的最新價格,以及日線或一分鐘歷史資料。每個序列都是近月合約,所以價格在換月日會跳動。

首次請求

取得 WTI 原油的最新價格

curl --request GET \
  --url "https://api.narwhalapi.com/v1/futures/CL/price" \
  --header "Authorization: Bearer $NARWHAL_API_KEY"
回應範例
{
  "id": "CL",
  "name": "WTI Crude Oil",
  "commodity_key": "crude-oil",
  "benchmark": "wti",
  "exchange": "NYMEX",
  "exchange_mic": "XNYM",
  "currency": "USD",
  "unit": "usd_per_barrel",
  "unit_key": "barrel",
  "price": "102.11",
  "market_session": "open",
  "timestamp": "2026-10-29T18:38:00Z",
  "stale": false
}

取得日 K 線

curl --request GET \
  --url "https://api.narwhalapi.com/v1/futures/ES/bars?interval=1d&start=2017-04-03&end=2017-04-03" \
  --header "Authorization: Bearer $NARWHAL_API_KEY"
回應範例
{
  "id": "ES",
  "currency": "USD",
  "bars": [
    {
      "timestamp": "2017-04-03T00:00:00Z",
      "open": "2357.5",
      "high": "2363.25",
      "low": "2340",
      "close": "2354.5"
    }
  ],
  "next_cursor": null
}

端點

GET列出期貨/v1/futures

列出我們定價的每一種期貨合約,附名稱、類別、交易所、幣別與單位。

回應欄位

  • futures物件陣列

    我們定價的每一種合約,附上 id、名稱、類別、交易所、幣別與單位。


完整參考文件 →
GET取得期貨價格/v1/futures/{id}/price

取得單一合約的最新價格。

參數

  • id必填

    期貨 id:交易所的商品代碼,例如 CL、GC、ES 或 6E。大小寫皆可。序列為連續的近月合約,未經調整,每逢換月日都有缺口。

主要回應欄位

  • id字串

    根代碼,例如 CL。

  • name字串

    合約的正式名稱。

  • commodity_key字串

    商品的固定鍵值,在現貨、期貨、預測與實物價格中皆相同,例如 gold 或 crude-oil。可用它來串接這些資料。股價指數、利率與貨幣期貨會省略。

  • benchmarkwti、brent、urals、dubai 擇一

    原油基準:wti、brent、urals 或 dubai。僅原油會回傳;沒有此欄位的原油資料列代表整體原油。

  • exchange字串

    合約交易所在的交易所。

  • exchange_mic字串

    交易所的 ISO 10383 市場識別碼,例如 XNYM。

  • currency字串

    價格的幣別。

  • unit字串

    價格的計價基準,例如 usd_per_barrel 或 index_point。

  • unit_key字串

    單位的標準小寫名稱,在所有使用該單位的介面上都相同,例如 barrel、troy_ounce、mmbtu 或 tonne。unit 則保留來源的原始寫法。

  • price_scale字串

    僅在價格以較小計價單位報價時才會回傳。將 price 乘以此值即可得到以 currency 計價的價格:0.01 表示 price 以美分計,因此 unit 為 cent_per_bushel、price 為 450 時,即每蒲式耳 4.50 USD。


完整參考文件 →
GET取得多筆期貨價格/v1/futures/prices

一次呼叫取得最多 50 個合約的最新價格。

參數

  • ids必填

    以逗號分隔的 id,去除重複後最多 50 個。每個 id 的規則與單一價格路由相同。每個回傳價格的 id 計為一次呼叫。

回應欄位

  • prices物件陣列

    每個回傳價格的 id 各有一筆,內容為單一價格的欄位。

  • errors物件陣列

    未回傳價格的 id,每個都帶有代碼 not_found。這些不收費。


完整參考文件 →
GET取得期貨 K 線/v1/futures/{id}/bars

取得單一合約的日線或一分鐘 K 線,由舊到新排列。價格為未調整的近月原始價格,所以換月日會跳動。

參數

  • id必填

    期貨 id:交易所的商品代碼,例如 CL、GC、ES 或 6E。大小寫皆可。序列為連續的近月合約,未經調整,每逢換月日都有缺口。

  • interval選填

    1d(每個交易日一根 K 線,以其所屬日期標示)或 1m(一分鐘 K 線,保留 12 個月)。其他值會回傳 400 invalid_interval。

  • start選填

    第一根 K 線。1d:日期(YYYY-MM-DD),含該日;省略則表示最早的一根 K 線。1m:UTC 時間(YYYY-MM-DDTHH:MM:SSZ,或僅填日期,視為 UTC 00:00),含該時間;省略則表示 end 的前一天。

  • end選填

    最後一根 K 線。1d:日期,含該日;省略則表示最近一個已收盤的日子。1m:UTC 時間,不含該時間;省略則表示現在,或 start 之後五天。1m 的 start 與 end 之間最多 5 天(400 range_too_large)。

  • cursor選填

    上一頁的 next_cursor,其他參數須相同。

回應欄位

  • id字串

    根代碼,例如 CL。

  • commodity_key字串

    商品的固定鍵值,在現貨、期貨、預測與實物價格中皆相同,例如 gold 或 crude-oil。可用它來串接這些資料。股價指數、利率與貨幣期貨會省略。

  • benchmarkwti、brent、urals、dubai 擇一

    原油基準:wti、brent、urals 或 dubai。僅原油會回傳;沒有此欄位的原油資料列代表整體原油。

  • currency字串

    價格的幣別。

  • price_scale字串

    僅在價格以較小計價單位報價時才會回傳。將 price 乘以此值即可得到以 currency 計價的價格:0.01 表示 price 以美分計,因此 unit 為 cent_per_bushel、price 為 450 時,即每蒲式耳 4.50 USD。

  • start字串

    僅在範圍起點被向後移動時才會回傳。

  • end字串

    不再回傳,因為所有帳戶的價格都是即時的。

  • bars物件陣列

    K 線由舊到新排列。每根都有 timestamp、open、high、low 與 close,沒有成交量。

  • next_cursor字串

    傳回此值即可讀取下一頁。最後一頁為 null。


完整參考文件 →

使用情境

回補完整歷史

分頁讀取全部歷史,儲存到檔案,中斷後可繼續。

閱讀指南 →

每日資料拉取

每天執行一次小腳本,把結果附加到 CSV 檔案。

閱讀指南 →

快取與 429 錯誤

Cache responses by data type and tell a rate limit (429) from an empty credit balance (402).

閱讀指南 →

涵蓋範圍

大宗商品期貨

  • WTI 原油CL · NYMEX · 每桶 USD
  • 亨利港天然氣NG · NYMEX · 每 MMBtu 的 USD 價格
  • RBOB 汽油RB · NYMEX · 每加侖 USD
  • 紐約港超低硫柴油HO · NYMEX · 每加侖 USD
  • 黃金GC · COMEX · 每金衡盎司 USD
  • 白銀SI · COMEX · 每金衡盎司 USD
  • 鉑金PL · NYMEX · 每金衡盎司 USD
  • 銅HG · COMEX · 每磅 USD
  • 玉米ZC · CBOT · 美分/蒲式耳
  • 芝加哥軟紅冬麥ZW · CBOT · 美分/蒲式耳
  • 黃豆ZS · CBOT · 美分/蒲式耳
  • 活牛LE · CME · 美分/磅
  • 瘦肉豬HE · CME · 美分/磅

股價指數期貨

  • E-mini 標普 500ES · CME · 指數點
  • E-mini 那斯達克 100NQ · CME · 指數點
  • E-mini 道瓊工業平均指數YM · CBOT · 指數點
  • E-mini 羅素 2000RTY · CME · 指數點

美國公債期貨

  • 2 年期美國公債ZT · CBOT · 面值百分比
  • 5 年期美國公債ZF · CBOT · 面值百分比
  • 10 年期美國公債ZN · CBOT · 面值百分比
  • 美國公債ZB · CBOT · 面值百分比

貨幣期貨

  • 歐元外匯6E · CME · 每歐元的 USD 價格
  • 英鎊6B · CME · 每磅 USD
  • 日圓6J · CME · 每日圓的 USD 價格
  • 澳幣6A · CME · 每澳幣的 USD 價格
  • 加幣6C · CME · 每加幣的 USD 價格
  • 瑞士法郎6S · CME · 每瑞士法郎的 USD 價格
  • 紐西蘭幣6N · CME · 每紐西蘭幣的 USD 價格
  • 墨西哥披索6M · CME · 每墨西哥披索的 USD 價格

相關 API

油、金屬、穀物與牲畜期貨報價 API

13 種商品期貨的價格與歷史資料

探索 API →

股價指數 API 資料

透過 REST 與 MCP 取得 18 個指數的點位與歷史資料

探索 API →

現貨金屬價格 API

黃金、白銀、鉑金和鈀金的現貨價格,以及 WTI、布蘭特和銅的參考價格。

探索 API →

價格

每月 10 美元免費額度,之後每 1,000 次呼叫 2 美元起。

查看價格 →

常見問題

可以取得哪些期貨?

29 種期貨:13 種商品、4 種股價指數期貨、4 種美國公債期貨與 8 種貨幣期貨。id 是交易所的根代碼,例如 CL、GC、ES、ZN 或 6E,大小寫皆可。清單路由會回傳全部。

為什麼價格在某些日子會跳動?

每個序列都是近月合約,首尾相接,不做調整。近月合約換月時,序列會轉到下一個合約,價格也跳到該合約的價格。CL 在 2026 年 10 月 19 日跳動了約 4 美元。價格與 K 線如實顯示成交時的跳動,所以不要把它當成一天的漲跌。這也是期貨價格沒有前收盤價或漲跌的原因:換月時的漲跌是假的。

價格是即時的還是延遲的?

所有帳戶的價格都是即時的。市場休市時,API 會回傳最後價格,並將 market_session 設為 closed。

可以取得多久的歷史資料?

日線可追溯到 2017 年 4 月,所有帳戶都可取得完整歷史。1 分鐘線涵蓋最近 12 個月,每次請求最多 5 天。

有成交量嗎?

沒有。K 線只有開盤、最高、最低與收盤。期貨價格沒有成交量、前收盤價或漲跌。

如何一次取得多筆價格?

以 ids 傳入最多 50 個 id 呼叫 /v1/futures/prices,例如 ids=CL,GC,ES。每個回傳價格的 id 計為一次呼叫。未知的 id 會出現在 errors 中,不計費。

費用是多少?

呼叫費用為每 1,000 次 $2,從預付額度扣款。每個帳戶在前 12 個月內,每月都有 $10 的免費額度。