用 n8n 配合 Narwhal API,可以把节假日、发布日期、经济数据、大宗商品、外汇和预测市场赔率拉进工作流。HTTP Request 节点用你的 API 密钥获取数据,Schedule Trigger 可以按间隔启动工作流。
你将完成的设置
n8n 用于连接工作流节点,这套设置会得到一个可以送往表格或邮件等目的地的数据请求。你会把 Narwhal API 密钥保存到凭据中,为所需数据配置 HTTP Request 节点,并把响应列表拆成每行一个条目。REST 和 MCP 共用同一个密钥,因此你的 n8n 请求与它们使用相同的密钥。
设置你的 API 密钥
- 创建免费密钥 在 narwhalapi.com/signup 创建账户并获取免费 API 密钥。Narwhal API 用一个账户、一个密钥覆盖全部数据 API,所以你在 n8n 中连接的每个领域都用这个密钥。
- 保存密钥 把密钥放在名为
NARWHAL_API_KEY的环境变量中。配置 n8n 凭据时,把该密钥用作Bearer YOUR_KEY中的YOUR_KEY部分。 - 配置 Header Auth 在 HTTP Request 节点中,把 Authentication 设为 Generic Credential Type,并使用 Header Auth。名称设为
Authorization,值设为Bearer YOUR_KEY;密钥保存在凭据中。Authentication: Generic Credential Type > Header Auth (name Authorization, value Bearer YOUR_KEY)
无需代码拉取数据
基础 URL 是 https://api.narwhalapi.com,每个示例都带有要填入节点的完整 URL。你连接的每个领域各用一个 HTTP Request 节点,配上对应的 URL 和响应处理。这些节点的 Header Auth 设置都相同。
- 添加 HTTP Request 节点 把方法设为 GET,并填入你想拉取的领域的 URL。请求使用 Header Auth 凭据;下面各领域的示例也使用相同的认证设置。
- 添加查询参数 查询参数要放进节点的查询参数列表;发布日期请使用日历 URL,并带上
countries、start_date、end_date和limit,用于 2026 年 11 月的发布日历。countries填USA,start_date填2026-11-01,end_date填2026-11-30,limit填100。 - 拆分响应列表 当响应包含列表时,在 HTTP Request 之后添加 Split Out 节点。按请求把字段设为
holidays、releases、observations、rates或meetings,即可得到每行一个条目。 - 连接目的地 把得到的条目连接到表格或邮件等目的地节点,具体取决于你的设置。读取对应示例中显示的字段;对于 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。请在目的地把期间与数值一起保留,让每条观测值都带有日期信息。
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。
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。
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 错误。
发布于。