用 n8n API 串接 Narwhal API

用 n8n 搭配 Narwhal API,可以把國定假日、發布日期、經濟數據、大宗商品、外匯和預測市場賠率拉進工作流程。HTTP Request 節點用你的 API 金鑰取得資料,Schedule Trigger 可以按間隔啟動工作流程。

你將完成的設定

n8n 用於連接工作流程節點,這套設定會得到一個可以送往試算表或電子郵件等目的地的資料請求。你會把 Narwhal API 金鑰儲存到憑證中,為所需資料設定 HTTP Request 節點,並把回應清單拆成每列一個項目。REST 和 MCP 共用同一把金鑰,因此你的 n8n 請求與它們使用相同的金鑰。

設定你的 API 金鑰

  1. 建立免費金鑰 在 narwhalapi.com/signup 建立帳號並取得免費 API 金鑰。Narwhal API 以一個帳號、一把金鑰涵蓋所有資料 API,所以你在 n8n 中連接的每個領域都用這把金鑰。
  2. 儲存金鑰 把金鑰放在名為 NARWHAL_API_KEY 的環境變數中。設定 n8n 憑證時,把該金鑰用作 Bearer YOUR_KEY 中的 YOUR_KEY 部分。
  3. 設定 Header Auth 在 HTTP Request 節點中,把 Authentication 設為 Generic Credential Type,並使用 Header Auth。名稱設為 Authorization,值設為 Bearer YOUR_KEY;金鑰儲存在憑證中。
    Header Auth 憑證
    Authentication: Generic Credential Type > Header Auth
                    (name Authorization, value Bearer YOUR_KEY)

不寫程式碼擷取資料

基礎 URL 是 https://api.narwhalapi.com,每個範例都帶有要填入節點的完整 URL。你連接的每個領域各用一個 HTTP Request 節點,配上對應的 URL 和回應處理。這些節點的 Header Auth 設定都相同。

  1. 新增 HTTP Request 節點 把方法設為 GET,並填入你想擷取的領域的 URL。請求使用 Header Auth 憑證;下面各領域的範例也使用相同的認證設定。
  2. 新增查詢參數 查詢參數要放進節點的查詢參數清單;發布日期請使用日曆 URL,並帶上 countries、start_date、end_date 和 limit,用於 2026 年 11 月的發布日曆。countries 填 USA,start_date 填 2026-11-01,end_date 填 2026-11-30,limit 填 100。
  3. 拆分回應清單 當回應包含清單時,在 HTTP Request 之後新增 Split Out 節點。依請求把欄位設為 holidays、releases、observations、rates 或 meetings,即可得到每列一個項目。
  4. 連接目的地 把得到的項目連接到試算表或電子郵件等目的地節點,具體取決於你的設定。讀取對應範例中顯示的欄位;對於 Brent,從單一回應物件中讀取 {{ $json.price }}。

按排程定時執行

新增 Schedule Trigger 節點,按間隔啟動工作流程,例如每天 07:00。把它放在 HTTP Request 之前,讓觸發器去啟動資料請求。對於清單回應,鏈路是 Schedule Trigger、HTTP Request、Split Out,然後是你的目的地節點。

請使用與所請求領域相符的 Split Out 欄位。Brent 的回應是單一物件,因此把它的 price 欄位傳給目的地。有關排程請求的更多內容,請見排定每日資料擷取。

在 n8n 中使用國定假日

請求 2026 年美國國定假日,然後拆分 holidays 清單。每個假日都有 date 和 name;連接目的地時,從每個項目中讀取這些欄位。URL 同時包含國家和年份,而 Split Out 節點使用請求回傳的清單欄位。若目的地是試算表,假日日期用 {{ $json.date }},名稱用 {{ $json.name }}。

國定假日請求與欄位
Authentication: Generic Credential Type > Header Auth
                (name Authorization, value Bearer YOUR_KEY)

Holidays   GET https://api.narwhalapi.com/v1/calendars/holidays/USA/2026
           Split Out field: holidays            read: {{ $json.date }}, {{ $json.name }}

在 n8n 中使用發布日期

用日曆請求及其查詢參數,擷取 2026 年 11 月的美國經濟發布日期。拆分 releases 清單,每次發布讀取一個項目。回應欄位包括 at、period、topic 和 status;範例為目的地讀取 at 和 topic。Split Out 之後,發布時間用 {{ $json.at }},主題用 {{ $json.topic }}。

發布日期請求與欄位
Authentication: Generic Credential Type > Header Auth
                (name Authorization, value Bearer YOUR_KEY)

Releases   GET https://api.narwhalapi.com/v1/economics/calendar
           query: countries=USA, start_date=2026-11-01, end_date=2026-11-30, limit=100
           Split Out field: releases            read: {{ $json.at }}, {{ $json.topic }}

在 n8n 中使用經濟數據

Narwhal 的經濟數據包括 CPI、通膨、GDP 和殖利率。美國經濟數據使用 CPI 觀測值請求,並在查詢參數清單中加入 start=2025-09。拆分 observations,每筆觀測值得到一個項目,再讀取它的 period 和 value。請在目的地把期間與數值一起保留,讓每筆觀測值都帶有日期資訊。

CPI 請求與欄位
Authentication: Generic Credential Type > Header Auth
                (name Authorization, value Bearer YOUR_KEY)

Economics  GET https://api.narwhalapi.com/v1/economics/USA/cpi/observations
           query: start=2025-09
           Split Out field: observations  read: {{ $json.period }}, {{ $json.value }}

在 n8n 中使用大宗商品

用大宗商品 URL 請求以 USD 計價的 Brent 現貨價格。該回應是單一物件:用範例中的運算式直接讀取 price。現貨代碼例如有 XAU、XAG、XPT、XPD、XCU、BRENT 和 WTI。這裡的請求在 URL 中使用 BRENT 和 USD。

Brent 請求與欄位
Authentication: Generic Credential Type > Header Auth
                (name Authorization, value Bearer YOUR_KEY)

Commodity  GET https://api.narwhalapi.com/v1/commodities/spot/BRENT/USD
           read: {{ $json.price }}

在 n8n 中使用外匯

在 URL 中使用 USD,並在查詢參數清單中加入 currencies=EUR,IDR 來擷取匯率。拆分回傳的 rates 清單,再從每個項目讀取 currency 和 rate。如果希望每列裡的匯率旁邊帶上貨幣,就把這兩個欄位都傳送到目的地。所請求的貨幣是 EUR 和 IDR,基礎貨幣是 USD。

FX 請求與欄位
Authentication: Generic Credential Type > Header Auth
                (name Authorization, value Bearer YOUR_KEY)

FX         GET https://api.narwhalapi.com/v1/fx/rates/USD
           query: currencies=EUR,IDR
           Split Out field: rates  read: {{ $json.currency }}, {{ $json.rate }}

在 n8n 中使用預測資料

擷取聯準會政策路徑預測,再把 meetings 清單拆成單獨的項目。每場會議都有 resolves_at、p_cut、p_hold 和 p_hike。範例讀取 resolves_at 和 p_hold;用這些運算式把會議的決議時間和維持不變機率傳給目的地。如果目的地需要降息機率,讀取 p_cut;需要升息機率,讀取 p_hike。

預測請求與欄位
Authentication: Generic Credential Type > Header Auth
                (name Authorization, value Bearer YOUR_KEY)

Predictions GET https://api.narwhalapi.com/v1/predictions/policy-paths/federal-reserve
           Split Out field: meetings  read: {{ $json.resolves_at }}, {{ $json.p_hold }}

可以把 API 金鑰放在 URL 裡嗎?

請把金鑰儲存在 Header Auth 憑證中。請求 URL 只用於端點,由憑證把 Authorization: Bearer YOUR_KEY 作為標頭附上。查詢參數則放在每個請求節點的查詢參數清單中。

遇到 429 該怎麼處理?

在 HTTP Request 節點中開啟 Retry On Fail,並遵循 Retry-After 的值。有關此回應和快取的更多內容,請見快取回應並處理 429 錯誤。

發布於 。

後續步驟