過去の為替レート API
基準通貨、換算先通貨、日付範囲を指定して保存済みの為替レートをリクエストします。
履歴操作は、現在受け入れられている保存済み系列を古い順で返します。現在の FX および 経済データ リクエストと同じ Narwhal キーと共有月間クォータを使用します。
リクエスト
curl --request GET \
--url "https://api.narwhalapi.com/v1/fx/rates/USD/observations?currencies=EUR,NZD&start_date=2026-08-20&end_date=2026-08-28&limit=100" \
--header "Authorization: Bearer $NARWHAL_API_KEY"| パラメータ | 規則 |
|---|---|
base | パス内の大文字の流通 ISO 4217 通貨。 |
currencies | 1~64個の重複しない換算先通貨をカンマ区切りで指定する必須リスト。基準通貨は含められません。 |
start_date | 必須です。1971-01-01以降の日付を指定します。当日を含みます。 |
end_date | 必須です。開始日以降の日付を指定します。開始日を含み、未来の日付は指定できません。 |
limit | 1ページあたりの観測日数。デフォルトは 100。最大値 366。 |
cursor | 前のページから受け取った不透明な値。同じフィルターでのみ再利用してください。 |
MCP ツールは次のとおりです: fx_get_rate_history。その currencies の入力は JSON 配列で、その他のフィールドはすべて同じ意味です。
レスポンス
{
"base": "USD",
"observations": [
{
"date": "2026-08-20",
"rates": [
{ "currency": "EUR", "rate": "0.85609" },
{ "currency": "NZD", "rate": "1.681" }
]
},
{
"date": "2026-08-21",
"rates": [
{ "currency": "EUR", "rate": "0.85477" },
{ "currency": "NZD", "rate": "1.6714" }
]
},
{
"date": "2026-08-24",
"rates": [{ "currency": "EUR", "rate": "0.85734" }]
}
],
"next_cursor": null
}各レートは小数文字列です。基準通貨を表す base の1単位に相当する金額は、換算先通貨を表す currency の値として、その観測日について返されます。
start_date と end_date は、プランによりリクエストした日付が変更される場合のみ返されます。
ページ分割
limit は観測日数を数えるため、同じ日付の通貨レコードが複数のページに分かれることはありません。 next_cursor が null でない場合は、base、currencies、開始日、終了日を変更せずに再送してください。カーソルはこれらのフィルターに紐づいています。変更すると返されるのは 400 invalid_cursor。
日付範囲全体の長さに上限はありません。全履歴を取得するには、件数に上限のあるページを順に取得し、終了条件を確認します: next_cursor null です。
欠落した日付と通貨は捏造されません
実際に保存された観測日だけが表示されます。週末、祝日、その他の公開されていない日付は省略されます。Narwhal はそれらを前方補完しません。
ある日付のデータに、リクエストした通貨の一部しか含まれない場合があります。この例では、8月24日の NZD のレコードはありませんが、EUR のレコードはあります。これは実際のデータの欠落をそのまま示したものであり、レスポンスの一部を返せなかったエラーではありません。
価格バー
GET /v1/fx/rates/{base}/barsは、1通貨の対USDレートについて、始値・高値・安値・終値を含む確定済みバーを返します。MCPツールはfx_get_rate_barsです。
curl --request GET \
--url "https://api.narwhalapi.com/v1/fx/rates/USD/bars?currency=EUR&interval=1h&start=2026-10-08T00:00:00Z&end=2026-10-08T03:00:00Z" \
--header "Authorization: Bearer $NARWHAL_API_KEY"| パラメータ | 規則 |
|---|---|
base | USDのみ。他の基準通貨を指定すると404 currency_not_supportedを返します。 |
currency | 価格コレクターが収集する決済通貨を1つ指定します。 |
interval | 1m、5m、15m、1h、4h、1d(デフォルト)のいずれか。 |
start / end | 両方とも必須。UTC時刻をインターバルの境界に合わせます(4hは00、04、08時など、1dは午前0時)。開始を含み、終了を含みません。 |
limit / cursor | デフォルトは100、最大500です。同じクエリでnext_cursorを再利用してください。 |
各バーにはtimestamp(バーの開始時刻)と、1baseあたりのcurrency単位で表したopen、high、low、closeが含まれます。欠損は補完せず、バーがない箇所はそのままにします。1mと5mのバーは30日間、15m、1h、4h、1dのバーは無期限に保持します。利用できる履歴はプランの範囲内です。保持期間外の範囲を指定した場合、エラーではなく空のbarsリストを返します。
start と end は、プランによりリクエストした範囲が変更される場合のみ返されます。
1回のリクエストで取得できる範囲は、1mのバーで最大3日、5mで14日、15mで60日です。これを超えると400 invalid_queryを返します。より長い足の間隔には範囲の上限はありません。
エラー
400 invalid_query:通貨、日付、またはページサイズが無効な場合。400 invalid_cursor:ページ分割の状態が不正な形式であるか、フィルターと一致しない場合。401 invalid_api_keyBearer キーがないか無効な場合。403 plan_upgrade_required指定範囲がプランの履歴対象期間(Freeは12か月、Basicは5年)より前に終了する場合。404 currency_not_supported選択した通貨を利用できない場合。429 rate_limit_exceeded:短時間枠の上限に達した場合。Retry-Afterを確認してから再試行してください。429 quota_exhausted共有月間クォータを使い切った場合。503 upstream_unavailable受け入れ済みの履歴データを安全に読み取れない場合。
確認: エラーと上限のガイド で、2種類のレート制限ヘッダーと再試行時の動作を確認してください。
カバレッジと制限
カバレッジの開始日は通貨によって異なります。対応する保存系列で最も早いものは1971年に始まり、日次カバレッジの大半は1999年または2000年に始まります。この API 仕様を変更せずにカバレッジが広がる場合があります。
このインターフェースは、以前のすべての公開版ではなく、現在受け入れられている履歴系列を返します。ソース、プロバイダー、ライセンス、導出、古さ、市場セッションのフィールドは省略します。次をお読みください: FX の方法論 で公開データポリシーを、 FX プロダクトページ で提供中のすべての操作を確認してください。
ドキュメント