すべてのAPI

ETF APIでETF価格と投信NAVを取得

ETFと投資信託の価格と価格履歴を取得でき、検索とプロフィールはすべてのアカウントで使えます。各リクエストにBearerキーが必要です。RESTとMCPは1つのアカウント残高を共有します。

稼働中100.00% uptime, last 30日533 ms 標準応答

最初のリクエスト

最新の価格を取得する

curl --request GET \
  --url "https://api.narwhalapi.com/v1/funds/ARCX:SPY/price" \
  --header "Authorization: Bearer $NARWHAL_API_KEY"
レスポンスの例
{
  "id": "ARCX:SPY",
  "symbol": "SPY",
  "currency": "USD",
  "price": "578.12",
  "previous_close": "576.40",
  "change": "1.72",
  "change_percent": "0.30",
  "volume": "61230500",
  "market_session": "open",
  "timestamp": "2026-10-26T15:42:00Z",
  "stale": false,
  "type": "etf"
}

エンドポイント

GETティッカーまたは名称で ETF と投資信託を検索/v1/funds/search

ティッカーまたは名称が q で始まるファンド(大文字小文字は区別しません)。完全一致のティッカー、その他のティッカー、名称の順です。

パラメータ

  • q必須

    ティッカーまたはファンド名の先頭部分(大文字小文字は区別せず、2文字以上。例: vf、vanguard 500)。順序は、完全一致のティッカー、その他のティッカー、名称の先頭、名称の後ろの単語の先頭の順です。

  • country任意

    この国のファンドのみ。3文字で指定します(USA)。

  • type任意

    ETF のみ、または投資信託のみ。

  • cursor任意

    前のページの next_cursor。その他のパラメーターは同じものを指定します。

レスポンスフィールド

  • resultsオブジェクトの配列

    1ページ最大50件。

  • next_cursor文字列

    次のページを読むには、この値を渡します。最後のページでは null です。


リファレンス全文 →
GETファンド1件のプロフィール/v1/funds/{id}

ファンドのシンボル、名称、種別(etf または mutual_fund)、取引所(ETFのみ)、国、通貨。シンボル一覧に保持されているとおりです。

パラメータ

  • id必須

    ファンド ID。ETF は銘柄 ID で、取引所の4文字コード、コロン、ティッカーの順です(ARCX:SPY)。投資信託は FUND、コロン、ティッカーの順です(FUND:VFIAX)。SPY のような米国ティッカーだけでも、米国の銘柄が1つに決まる場合は使えます。レスポンスには正規の ID が入ります。

レスポンスフィールド

  • id文字列

    正規のファンド ID。

  • symbol文字列

    ファンドのティッカー。

  • mic文字列

    取引所の4文字コード。投資信託には取引所がないため省略されます。

  • country文字列

    ファンドの国。3文字。


リファレンス全文 →
GETファンド1件の最新価格/v1/funds/{id}/price

ETFの最終価格(株価の形式に type: etf を加えたもの)、または投資信託の最新の基準価額(type: mutual_fund: nav、previous_nav、change、change_percent と基準価額の日付。日次の終値ベースの値で、遅延はなく、翌営業日より古くなると更新が止まった状態になります)。

パラメータ

  • id必須

    ファンド ID。ETF は銘柄 ID で、取引所の4文字コード、コロン、ティッカーの順です(ARCX:SPY)。投資信託は FUND、コロン、ティッカーの順です(FUND:VFIAX)。SPY のような米国ティッカーだけでも、米国の銘柄が1つに決まる場合は使えます。レスポンスには正規の ID が入ります。

主なレスポンスフィールド

  • id文字列

    リクエストしたファンドについて返される正規の上場id。

  • symbol文字列

    取引所でこのファンドに使われるティッカー。

  • currency文字列

    すべての価格フィールドの通貨。ペンスはポンドに換算されます。

  • price文字列

    ETFの最終価格。currency 建ての文字列で返されます。

  • previous_close文字列

    前回セッションの終値。その値が不明な場合は省略されます。

  • change文字列

    ETF:price から previous_close を引いた値。投資信託:nav から previous_nav を引いた値。以前の値が不明な場合は省略されます。

  • change_percent文字列

    変化率(パーセント)。ETFは previous_close、投資信託は previous_nav からの変化です。1.5 は 1.5% を意味します。以前の値が不明な場合は省略されます。

  • volume文字列

    当日の売買株数。不明な場合は省略されます。

  • market_session次のいずれか: pre, open, post, closed

    timestamp 時点の取引所の状態:pre、open、post、closed。preとpostがあるのは米国の取引所のみです。

  • timestamp日時

    価格が有効だった時刻。UTCで、秒単位です。


リファレンス全文 →
GET最大50ファンドの最新価格/v1/funds/prices

掲載している各ファンドの最新価格。ETFの最終価格、または投資信託の最新の基準価額。

パラメータ

  • ids必須

    カンマ区切りのファンド ID。重複を除いて最大50件です。各 ID は単一価格ルートと同じ規則に従います。価格を返した ID ごとに1回の呼び出しとして数えます。

レスポンスフィールド

  • pricesオブジェクトの配列

    解決できた ID ごとに1つの価格を、ID をキーにして返します。

  • errorsオブジェクトの配列

    価格を返さなかった ID。課金されません。


リファレンス全文 →
GETファンド1件の価格バー/v1/funds/{id}/bars

日足(1d)または1分足(1m)のバーを、古い順に、株式のバーと同じ形式で返します。

パラメータ

  • id必須

    ファンド ID。ETF は銘柄 ID で、取引所の4文字コード、コロン、ティッカーの順です(ARCX:SPY)。投資信託は FUND、コロン、ティッカーの順です(FUND:VFIAX)。SPY のような米国ティッカーだけでも、米国の銘柄が1つに決まる場合は使えます。レスポンスには正規の ID が入ります。

  • interval任意

    1d(セッションごとに1本のバー。投資信託のバーは日次の基準価額)または 1m(1分足。ETFのみ)。それ以外は 400 invalid_interval になります。

  • start任意

    最初のバー。1d: 日付(YYYY-MM-DD)、その日を含みます。省略すると最も古いバーになります。1m: UTC時刻(YYYY-MM-DDTHH:MM:SSZ、または 00:00 UTC とみなす日付)、その時刻を含みます。省略すると end の1日前になります。

  • end任意

    最後のバー。1d: 日付、その日を含みます。省略するとバーが公開済みの直近のセッションになります。1m: UTC時刻、その時刻を含みません。省略すると現在時刻、または start の5日後になります。1m では start と end の間隔は最大5日です(400 range_too_large)。

  • cursor任意

    前のページの next_cursor。その他のパラメーターは同じものを指定します。カーソルは、その背後の価格が変わる(分割や配当)と使えなくなります: 409 cursor_expired。

レスポンスフィールド

  • id文字列

    正規の銘柄 ID。

  • currency文字列

    すべての価格の通貨。ペンスはポンドになります。

  • adjustedブール値

    常に true です。価格は株式分割と配当で調整されます。あるページと次のページは必ず整合します。2つのページの間に分割や配当で履歴が変わった場合は、両者を混ぜずにカーソルが使えなくなります(409 cursor_expired)。

  • start文字列

    送られることはありません。start は移動されません。

  • end文字列

    送信されません。日足は切り詰められません。

  • barsオブジェクトの配列

    1ページ最大5,000本。

  • next_cursor文字列

    次のページを読むには、この値を渡します。最後のページでは null です。


リファレンス全文 →
GETファンド1件の分配/v1/funds/{id}/distributions

1つのファンドの分配金を、権利落ち日の新しい順にページ分割して返します。

パラメータ

  • id必須

    ファンド ID。ETF は銘柄 ID で、取引所の4文字コード、コロン、ティッカーの順です(ARCX:SPY)。投資信託は FUND、コロン、ティッカーの順です(FUND:VFIAX)。SPY のような米国ティッカーだけでも、米国の銘柄が1つに決まる場合は使えます。レスポンスには正規の ID が入ります。

  • cursor任意

レスポンスフィールド

  • id文字列

    正規のファンド ID。

  • start日付

    送信されません。すべてのアカウントで全履歴を利用できます。

  • distributionsオブジェクトの配列

    権利落ち日の新しい順。

  • next_cursor文字列

    次のページを取得するには cursor として渡します。最後のページでは null です。


リファレンス全文 →

ユースケース

全履歴をバックフィルする

履歴をすべてページ単位で取得してファイルに保存し、途中で止まっても再開します。

ガイドを読む →

毎日のデータ取得

小さなスクリプトを 1 日 1 回実行し、結果を CSV に追記します。

ガイドを読む →

キャッシュと 429 エラー

Cache responses by data type and tell a rate limit (429) from an empty credit balance (402).

ガイドを読む →

関連 API

上場株式向けの株価API

上場株式の価格と企業データをRESTとMCPで提供

APIを見る →

暗号資産APIでライブ価格と履歴を取得

REST、MCPで暗号資産のペア価格と履歴を提供

APIを見る →

プリペイドクレジットと料金

1,000回あたりの料金、チャージ、毎月の無料クレジットを確認できます。価格はすべてのアカウントでリアルタイムです。

料金を見る →

よくある質問

ETFのIDはどう書きますか。

ARCX:SPYのようなETFの上場idを使います。SPYのような米国のティッカー単体も、1つの米国上場銘柄を指す場合は使えます。

投資信託の基準価額はどう取得しますか。

投資信託にはFUND:VFIAXを使います。日次の基準価額は nav に、previous_nav と date とともに表示されます。投資信託の値は遅延しません。

価格はライブですか、それとも遅延ですか。

株式、ETF、暗号資産の価格はすべてのアカウントでリアルタイムで、当日出来高は判明している場合に含まれます。

料金はいくらですか?

1,000回あたり$2で、プリペイドのクレジットから差し引かれます。すべてのアカウントに、最初の12か月間、毎月$10分の無料クレジットが付与され、商用利用も可能です。

APIは何をカバーしますか?

日足と過去の分配金は、すべてのアカウントで全履歴を対象とし、ETFの1分足も含まれます。投資信託には1分足がなく、リクエストは400 invalid_intervalを返します。日足の始値・高値・安値・終値には基準価額が使われ、出来高はありません。バッチの価格呼び出しは最大50件のIDを受け付け、価格を返したIDごとに1回と数えます。

ETF価格と投資信託の基準価額はどう違いますか?

ETFは取引価格を返します。投資信託は、nav に1日1回の終値ベースの基準価額を、previous_nav と date とともに返します。etf か mutual_fund かは type で確認します。基準価額は遅延せず、翌営業日より古くなると stale になります。取引所がクローズ中でも、ETF価格が stale になることはありません。

種類の違うidを使うとどうなりますか?

ETFのidは取引所コードとティッカーで、ARCX:SPYのように指定します。投資信託のidは FUND にコロンとティッカーを続けます。ファンド用ルートに株式idを使うと 404 not_found が返ります。株式用ルートにファンドidを使うと、ファンド用ルートに 301 でリダイレクトされます。

ファンドの履歴はどのくらい遡ってリクエストできますか?

すべてのアカウントで、日足と過去の分配金の全履歴を取得できます。古い行がない場合、startは最初に返した日付を示します。分配金のkindフィールドは、ソースが提供するまで省略されます。

ファンドの価格リクエストはどのように数えられますか?

RESTとMCPは1つのアカウントと1つのクレジット残高を使い、すべてのリクエストにBearerキーが必要です。バッチは最大50件のファンドIDを受け付け、価格を返したIDごとに1回と数えます。