すべてのドキュメントを閲覧

先物APIリファレンス

29の先物の価格と履歴

概要

29の先物(商品、株価指数、米国債、通貨)の価格と価格履歴。すべてのリクエストに Bearer キーが必要で、REST と MCP は同じクレジット残高を使います。

ID は取引所のルートコードです。たとえば WTI 原油は CL、金は GC、E-mini S&P 500 は ES、ユーロは 6E です。大文字小文字は問いません。一覧ルートは、すべての ID を名称、カテゴリ、取引所、通貨、単位とともに返します。

各系列は期近限月の契約を端から端までつないだもので、調整はしていません。期近限月が切り替わる日には、価格が前の契約から次の契約へ段差を描きます。この段差は、取引されたとおりにデータに含まれます。

ベースURL: https://api.narwhalapi.com。 MCP ツールは次のとおりです: futures, with one action 以下の各ルートに対応します。

すべてのアカウントで利用できるもの

課金額すべてのアカウント
最新の価格ライブ
日次バー全履歴(2017年4月から)
1分足バー過去12か月
系列一覧含まれる

参照: 料金表 で、呼び出し1回の料金を確認できます。ルートに別の記載がない限り、リクエストはそのAPIの料金で課金されます。

  • 先物の価格には、前日終値、変化、出来高がありません。ロールをまたぐ変化は誤った値になるため、API は算出しません。
  • 価格とバーは、取引されたとおりの期近限月です。ロール日ごとに段差が生じます。CL は 2026年10月19日に約4ドルの段差が出ました。この段差を1日の値動きと読まないでください。
  • market_session は、契約の公表された取引時間にもとづき open または closed になります。closed の系列は直近価格を返し、古い値(stale)にはなりません。open の系列は、価格が15分より古いと古い値(stale)になります。
  • 日次バーは1取引日分で、00:00 UTC に現れます。当日の途中のバーは表示されません。
  • 1分バーは12か月分を保持し、1回のリクエストで取得できるのは最大5日分です。
  • バッチは最大50件の ID を受け付け、価格を返した ID ごとに1回の呼び出しとして数えます。不明な ID は errors に並び、数えません。

エンドポイント

すべてのルートは GET で、キーを次のヘッダーで渡す必要があります: Authorization: Bearer ヘッダー。例はレスポンスの形を示すもので、ライブデータではありません。

価格を提供している先物

GET /v1/futures

価格を提供しているすべての先物系列を、ID 順に名称と単位とともに返します。自社の一覧から読むため、すべてのアカウントで利用でき、1回の呼び出しとして数えます。

MCP: ツール futures, action list。

パラメータ

このルートにパラメーターはありません。

レスポンスフィールド

フィールド種別送信意味
futuresオブジェクトの配列常に価格を提供しているすべての系列を、ID 順に返します。
futures[].id文字列常にルートコード(例: CL)。
futures[].name文字列常に系列の名称。
futures[].categoryenergy、metals、grains、livestock、equity_index、interest_rate、currency のいずれか常に
futures[].commodity_key文字列任意商品の固定キー。スポット、先物、予測、現物価格で共通です(例: gold、crude-oil)。これらを結合するのに使います。株価指数、金利、通貨の先物では省略されます。
futures[].benchmarkwti、brent、urals、dubai のいずれか任意原油のベンチマーク(wti、brent、urals、dubai)。原油のみで送られます。これがない原油の行は、原油全体を指します。
futures[].exchange文字列常に上場している取引所。
futures[].exchange_mic文字列任意取引所の ISO 10383 市場識別コード(例: XNYM)。
futures[].currency文字列常に価格の通貨。
futures[].unit文字列常に価格の単位あたりの基準(例: usd_per_barrel、index_point)。
futures[].unit_key文字列任意単位の正規の小文字名で、使うすべての面で共通です(例: barrel、troy_ounce、mmbtu、tonne)。unit は情報源の表記のままです。
futures[].price_scale文字列任意価格が補助通貨単位で建てられている場合にのみ送られます。price にこの値を掛けると currency 建ての価格になります。0.01 は price がセント単位であることを示します。たとえば単位が cent_per_bushel で価格が 450 なら、1ブッシェルあたり 4.50 USD です。
リクエスト
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/futures"
レスポンスの例
{
  "futures": [
    {
      "id": "CL",
      "name": "WTI Crude Oil",
      "category": "energy",
      "exchange": "NYMEX",
      "currency": "USD",
      "unit": "usd_per_barrel"
    },
    {
      "id": "GC",
      "name": "Gold",
      "category": "metals",
      "exchange": "COMEX",
      "currency": "USD",
      "unit": "usd_per_troy_ounce"
    }
  ]
}

先物系列1件の最新価格

GET /v1/futures/{id}/price

最新価格です。market_session は系列の取引時間にもとづき open または closed になります。closed の系列は直近価格を返し、stale が true になるのは、open の系列で直近15分以内の価格がない場合のみです。先物の価格には、前日終値、変化、出来高がありません。系列は期近限月を端から端までつないだもので調整していないため、ロール日ごとに段差があります。

MCP: ツール futures, action price。

パラメータ

パラメータ場所必須種別意味
idパスはい文字列先物 ID。取引所のルートコードです(例: CL、GC、ES、6E)。大文字小文字は問いません。系列は連続した期近限月で、調整していないため、ロール日ごとに段差があります。

レスポンスフィールド

フィールド種別送信意味
id文字列常にルートコード。
name文字列常に自社のシンボル一覧にあるとおりの名称。
commodity_key文字列任意商品の固定キー。スポット、先物、予測、現物価格で共通です(例: gold、crude-oil)。これらを結合するのに使います。株価指数、金利、通貨の先物では省略されます。
benchmarkwti、brent、urals、dubai のいずれか任意原油のベンチマーク(wti、brent、urals、dubai)。原油のみで送られます。これがない原油の行は、原油全体を指します。
exchange文字列常に
exchange_mic文字列任意取引所の ISO 10383 市場識別コード(例: XNYM)。
currency文字列常に価格の通貨。
unit文字列常に
unit_key文字列任意単位の正規の小文字名で、使うすべての面で共通です(例: barrel、troy_ounce、mmbtu、tonne)。unit は情報源の表記のままです。
price_scale文字列任意価格が補助通貨単位で建てられている場合にのみ送られます。price にこの値を掛けると currency 建ての価格になります。0.01 は price がセント単位であることを示します。たとえば単位が cent_per_bushel で価格が 450 なら、1ブッシェルあたり 4.50 USD です。
price文字列常に連続した期近限月の直近価格。
market_sessionopen、closed のいずれか常に系列が公表された取引時間内で取引されている間は open、それ以外は closed です。closed の系列も直近価格を返します。取引時間内の休日は open と表示され、stale になります。
timestamp日時常に価格が有効だった時刻(UTC、秒単位)。
staleブール値常に系列が open で、価格が15分より古い場合、または更新できなかった場合に true。closed の系列は古い値(stale)になりません。
delayed常に true任意送信されません。価格はすべてのアカウントでリアルタイムです。
リクエスト
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/futures/CL/price"
レスポンスの例
{
  "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
}

最大50の先物系列の最新価格

GET /v1/futures/prices

指定した各 ID の最新価格を返します。価格を返した ID ごとに1回の呼び出しとして数え、一括で課金します。解決できた ID の分を残高で支払えない場合、リクエスト全体が 402 insufficient_credits で拒否されます。価格を返さなかった ID は errors に(id として)並び、課金されません。どの ID も解決できなくてもレスポンスは 200 で、prices は空になります。先物の価格には、前日終値、変化、出来高がありません。系列は期近限月を端から端までつないだもので調整していないため、ロール日ごとに段差があります。

ID は最大50件まで送れます。バッチは一括で課金されます。解決できた ID の分を残高で払えない場合、リクエスト全体が 402 insufficient_credits を返します。

MCP: ツール futures, action prices。

パラメータ

パラメータ場所必須種別意味
idsクエリはい文字列カンマ区切りの ID。重複を除いて最大50件です。各 ID は単一価格ルートと同じ規則に従います。価格を返した ID ごとに1回の呼び出しとして数えます。

レスポンスフィールド

フィールド種別送信意味
pricesオブジェクトの配列常に解決できた ID ごとに1つの価格を、ID をキーにして返します。
prices[].id文字列常にルートコード。
prices[].name文字列常に自社のシンボル一覧にあるとおりの名称。
prices[].commodity_key文字列任意商品の固定キー。スポット、先物、予測、現物価格で共通です(例: gold、crude-oil)。これらを結合するのに使います。株価指数、金利、通貨の先物では省略されます。
prices[].benchmarkwti、brent、urals、dubai のいずれか任意原油のベンチマーク(wti、brent、urals、dubai)。原油のみで送られます。これがない原油の行は、原油全体を指します。
prices[].exchange文字列常に
prices[].exchange_mic文字列任意取引所の ISO 10383 市場識別コード(例: XNYM)。
prices[].currency文字列常に価格の通貨。
prices[].unit文字列常に
prices[].unit_key文字列任意単位の正規の小文字名で、使うすべての面で共通です(例: barrel、troy_ounce、mmbtu、tonne)。unit は情報源の表記のままです。
prices[].price_scale文字列任意価格が補助通貨単位で建てられている場合にのみ送られます。price にこの値を掛けると currency 建ての価格になります。0.01 は price がセント単位であることを示します。たとえば単位が cent_per_bushel で価格が 450 なら、1ブッシェルあたり 4.50 USD です。
prices[].price文字列常に連続した期近限月の直近価格。
prices[].market_sessionopen、closed のいずれか常に系列が公表された取引時間内で取引されている間は open、それ以外は closed です。closed の系列も直近価格を返します。取引時間内の休日は open と表示され、stale になります。
prices[].timestamp日時常に価格が有効だった時刻(UTC、秒単位)。
prices[].staleブール値常に系列が open で、価格が15分より古い場合、または更新できなかった場合に true。closed の系列は古い値(stale)になりません。
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/futures/prices?ids=CL,GC,ES"
レスポンスの例
{
  "prices": [
    {
      "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
    },
    {
      "id": "GC",
      "name": "Gold",
      "exchange": "COMEX",
      "currency": "USD",
      "unit": "usd_per_troy_ounce",
      "price": "4021.3",
      "market_session": "open",
      "timestamp": "2026-10-29T18:38:00Z",
      "stale": false
    }
  ],
  "errors": [
    {
      "id": "XX",
      "code": "not_found"
    }
  ]
}

先物系列1件の価格バー

GET /v1/futures/{id}/bars

日次(1d。1取引日につき1バー)または1分(1m)のバーを古い順に返します。1日のバーは、その翌日の 00:00 UTC に出ます。当日の途中のバーは表示されません。1分バーは12か月分を保持します。履歴はすべてのアカウントで全期間を取得できます。1ページ最大5,000バーで、next_cursor を返します。1ページにつき1回の呼び出しです。

バーは加工していない期近限月の価格です。そのため、ロール日にはバーが前のバーの終値から離れて始まることがあります。

MCP: ツール futures, action bars。

パラメータ

パラメータ場所必須種別意味
idパスはい文字列先物 ID。取引所のルートコードです(例: CL、GC、ES、6E)。大文字小文字は問いません。系列は連続した期近限月で、調整していないため、ロール日ごとに段差があります。
intervalクエリいいえ次のいずれか: 1d, 1m1d(1取引日につき1バー。属する日の日付)または 1m(1分バー。12か月分を保持)。それ以外は 400 invalid_interval です。
startクエリいいえ文字列最初のバー。1d では日付(YYYY-MM-DD)で、その日を含みます。省略すると存在する最古のバーになります。1m では UTC の時刻(YYYY-MM-DDTHH:MM:SSZ、または日付のみで UTC 00:00)で、その時刻を含みます。省略すると end の1日前になります。
endクエリいいえ文字列最後のバー。1d では日付で、その日を含みます。省略すると、確定済みの最新の日です。1m では UTC の時刻で、その時刻を含みません。省略すると現在時刻、または start の5日後です。1m では start と end の間は最大5日です(400 range_too_large)。
cursorクエリいいえ文字列前のページの next_cursor。パラメーターは同じものを使います。

レスポンスフィールド

フィールド種別送信意味
id文字列常に
commodity_key文字列任意商品の固定キー。スポット、先物、予測、現物価格で共通です(例: gold、crude-oil)。これらを結合するのに使います。株価指数、金利、通貨の先物では省略されます。
benchmarkwti、brent、urals、dubai のいずれか任意原油のベンチマーク(wti、brent、urals、dubai)。原油のみで送られます。これがない原油の行は、原油全体を指します。
currency文字列常に価格の通貨。
price_scale文字列任意価格が補助通貨単位で建てられている場合にのみ送られます。price にこの値を掛けると currency 建ての価格になります。0.01 は price がセント単位であることを示します。たとえば単位が cent_per_bushel で価格が 450 なら、1ブッシェルあたり 4.50 USD です。
start文字列任意送信されません。start は動かされません。
end文字列任意送信されません。日足は切り詰められません。
barsオブジェクトの配列常に1ページ最大5,000本。
bars[].timestamp日時常にバーの期間の開始(UTC)。日次バーは取引日の 00:00、1分バーはその分の開始です。
bars[].open文字列常に期間の最初の価格。
bars[].high文字列常に期間の最高価格。
bars[].low文字列常に期間の最安価格。
bars[].close文字列常に期間の最後の価格。
next_cursor文字列常に次のページを読むには、この値を渡します。最後のページでは null です。
リクエスト
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/futures/ES/bars?interval=1d&start=2017-04-03&end=2017-04-05"
レスポンスの例
{
  "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
}

エラー

エラーは共通の problem 形式で返され、次のコードを含みます: 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この領域は現在応答できません。

このページは役に立ちましたか?