回填完整历史
分页读取全部历史,保存到文件,中断后可继续。
阅读指南 →通过 REST 或 MCP,获取 29 种期货的最新价格以及日线或 1 分钟历史数据。每个序列都是近月合约,因此价格在换月日会出现跳动。
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
}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
}/v1/futures/v1/futures/{id}/price获取单个合约的最新价格。
id必填期货 id:交易所的根代码,例如 CL、GC、ES 或 6E。不区分大小写。序列为连续近月合约,未做调整:每个换月日都有跳空。
id字符串根代码,如 CL。
name字符串合约的官方名称。
commodity_key字符串该商品的稳定键,在现货、期货、预测和实物价格中相同,例如 gold 或 crude-oil。可用它关联这些数据。股指、利率和货币期货省略此项。
benchmark取值之一:wti、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。
/v1/futures/prices一次调用最多获取 50 个合约的最新价格。
ids必填以逗号分隔的 id,去重后最多 50 个。每个 id 的规则与单个价格路由相同。每个返回价格的 id 计一次调用。
prices对象数组每个返回了价格的 id 对应一条记录,包含单个价格的各个字段。
errors对象数组未返回价格的 id,每个都带有代码 not_found。这些不收费。
/v1/futures/{id}/bars获取单个合约的日线或 1 分钟 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。可用它关联这些数据。股指、利率和货币期货省略此项。
benchmark取值之一:wti、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。
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 线包含开盘价、最高价、最低价和收盘价。期货价格没有成交量、前收盘价或涨跌幅。
调用 /v1/futures/prices,在 ids 中最多传入 50 个 id,例如 ids=CL,GC,ES。每个返回了价格的 id 计为一次调用。未知的 id 会出现在 errors 中,不计入调用次数。
调用按每 1,000 次 $2 的价格,从预付额度 中扣费。每个账户在前 12 个月内,每月都有 $10 的免费额度。
12 个月内每月赠送 10 美元免费额度,无需绑卡。每月 10 美元免费额度,无需绑卡。