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

株価指数APIリファレンス

18の指数の水準と履歴

概要

18の株価指数とボラティリティ指数の水準と水準の履歴。すべてのリクエストに Bearer キーが必要で、REST と MCP は同じクレジット残高を使います。

ID は指数の標準コードです。たとえば S&P 500 は SPX、Nasdaq-100 は NDX、ダウ工業株30種平均は DJI です。大文字小文字は問いません。一覧ルートは、すべての ID を名称、地域、通貨とともに返します。

指数の日次履歴が揃うと、価格には前日終値、変化、パーセント単位の変化が含まれます。

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

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

課金額すべてのアカウント
最新の水準ライブ
日次バー全期間の履歴
1分足バー過去12か月
指数一覧含まれる

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

  • 履歴は、保有している時点から始まります。S&P 500 は2023年2月からです。
  • ボラティリティ指数(VIX、OVX、GVZ)は金額ではないため、レスポンスに通貨は含まれません。
  • 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/indices

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

MCP: ツール indices, action list。

パラメータ

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

レスポンスフィールド

フィールド種別送信意味
indicesオブジェクトの配列常に価格を提供しているすべての指数を、ID 順に返します。
indices[].id文字列常に指数コード(例: SPX)。
indices[].name文字列常に指数の名称。
indices[].regionus、uk、europe、global、asia のいずれか常に構成銘柄が取引される地域。
indices[].currency文字列任意指数の通貨。金額ではないボラティリティ指数では省略されます。
リクエスト
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/indices"
レスポンスの例
{
  "indices": [
    {
      "id": "SPX",
      "name": "S&P 500",
      "region": "us",
      "currency": "USD"
    },
    {
      "id": "VIX",
      "name": "Cboe Volatility Index",
      "region": "us"
    }
  ]
}

指数系列1件の最新価格

GET /v1/indices/{id}/price

最新価格です。market_session は系列の取引時間にもとづき open または closed になります。closed の系列は直近価格を返し、stale が true になるのは、open の系列で直近15分以内の価格がない場合のみです。previous_close は前取引日の終値で、change_percent はパーセント単位です。

MCP: ツール indices, action price。

パラメータ

パラメータ場所必須種別意味
idパスはい文字列指数 ID(例: SPX、NDX、DJI)。大文字小文字は問いません。

レスポンスフィールド

フィールド種別送信意味
id文字列常に指数コード。
name文字列常に自社のシンボル一覧にあるとおりの名称。
currency文字列任意指数の通貨。金額ではないボラティリティ指数では省略されます。
price文字列常に指数の直近の水準。
previous_close文字列任意前取引日の終値。不明な場合は省略されます。
change文字列任意price から previous_close を引いた値。
change_percent文字列任意パーセント単位の変化(1.5 は 1.5% を意味します)。change と同時に省略されます。
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/indices/SPX/price"
レスポンスの例
{
  "id": "SPX",
  "name": "S&P 500",
  "currency": "USD",
  "price": "7696.46",
  "previous_close": "7681.2",
  "change": "15.26",
  "change_percent": "0.2",
  "market_session": "open",
  "timestamp": "2026-10-29T18:38:00Z",
  "stale": false
}

最大50の指数系列の最新価格

GET /v1/indices/prices

指定した各 ID の最新価格を返します。価格を返した ID ごとに1回の呼び出しとして数え、一括で課金します。解決できた ID の分を残高で支払えない場合、リクエスト全体が 402 insufficient_credits で拒否されます。価格を返さなかった ID は errors に(id として)並び、課金されません。どの ID も解決できなくてもレスポンスは 200 で、prices は空になります。previous_close は前取引日の終値で、change_percent はパーセント単位です。

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

MCP: ツール indices, action prices。

パラメータ

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

レスポンスフィールド

フィールド種別送信意味
pricesオブジェクトの配列常に解決できた ID ごとに1つの価格を、ID をキーにして返します。
prices[].id文字列常に指数コード。
prices[].name文字列常に自社のシンボル一覧にあるとおりの名称。
prices[].currency文字列任意指数の通貨。金額ではないボラティリティ指数では省略されます。
prices[].price文字列常に指数の直近の水準。
prices[].previous_close文字列任意前取引日の終値。不明な場合は省略されます。
prices[].change文字列任意price から previous_close を引いた値。
prices[].change_percent文字列任意パーセント単位の変化(1.5 は 1.5% を意味します)。change と同時に省略されます。
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/indices/prices?ids=SPX,NDX,DJI"
レスポンスの例
{
  "prices": [
    {
      "id": "SPX",
      "name": "S&P 500",
      "currency": "USD",
      "price": "7696.46",
      "previous_close": "7681.2",
      "change": "15.26",
      "change_percent": "0.2",
      "market_session": "open",
      "timestamp": "2026-10-29T18:38:00Z",
      "stale": false
    },
    {
      "id": "NDX",
      "name": "Nasdaq-100",
      "currency": "USD",
      "price": "27310.5",
      "previous_close": "27264.9",
      "change": "45.6",
      "change_percent": "0.17",
      "market_session": "open",
      "timestamp": "2026-10-29T18:38:00Z",
      "stale": false
    }
  ],
  "errors": [
    {
      "id": "XX",
      "code": "not_found"
    }
  ]
}

指数系列1件の価格バー

GET /v1/indices/{id}/bars

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

MCP: ツール indices, action bars。

パラメータ

パラメータ場所必須種別意味
idパスはい文字列指数 ID(例: SPX、NDX、DJI)。大文字小文字は問いません。
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文字列常に
currency文字列任意指数の通貨。金額ではないボラティリティ指数では省略されます。
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/indices/SPX/bars?interval=1d&start=2026-10-01"
レスポンスの例
{
  "id": "SPX",
  "currency": "USD",
  "bars": [
    {
      "timestamp": "2026-10-28T00:00:00Z",
      "open": "7655.1",
      "high": "7702.4",
      "low": "7640.8",
      "close": "7681.2"
    }
  ],
  "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この領域は現在応答できません。

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