Comparison/比較

2026年、無料の為替レートAPIを比較する方法

無料のFXデータソースを選ぶのは、価格だけの話ではない。重要な6つの軸がある:クォータ、日中の鮮度、鮮度メタデータ、履歴の深さ、換算エンドポイント、エージェント対応だ。それぞれの考え方を説明する。

ERexchangerate.dev·Jun 19, 2026·6分で読了

ほとんどの無料為替レートAPIは表面上似通って見える — JSON、ベアラートークン、通貨は100種類ほど。実際のプロジェクトで問題になる違いは、ある日次フィックスと次のフィックスの間、制限に達したときのエラーメッセージ、そして深夜3時にコードが信頼せざるを得ないフィールドの中に現れる。ブランドのランキングではなく、軸で選ぶこと。

Key points
無料枠のクォータは大きく異なる。exchangerate.devはカード登録不要で月10,000コール、毎分12リクエストを提供する。
日中の鮮度は最も明確な差別化要因だ。ECBのみのソースは営業日ごとに1回のフィックスを公表する — 市場はCET16:00以降も動き続けるが、レートは動かない。
すべてのレスポンスにあるsourcemarket_sessionは、時計から推測することなく、コードに実際に何を見ているかを教えてくれる。
1999年までの日次履歴は、単一の日付指定パス/v1/{date}/{base}から取得できる。
組み込みの/v1/convertエンドポイントと/v1/mcpのMCPサーバーにより、よくあるタスクのグルーコードが減る。

なぜ軸がランキングに勝るのか

ランク付けされたAPIリストは、著者がそれを書いた日にどれを好んだかを教えてくれるだけだ。軸ごとの分解は、どれが自分のプロジェクトに合うかを教えてくれる。1日1回の参照データしか消費しないダッシュボードと、日中ずっと価格を提示する旅行アプリとでは、必要なものが異なる。

以下の6つの軸は、ほぼすべてのFX統合で出てくる問いをカバーしている。順番に検討していけば、たいていのプロジェクトは終わる前に明確な答えを得られるはずだ。

軸1: 無料の月間クォータとレート制限

クォータは、プロトタイプを作り、小規模な本番ワークロードを無料で動かせるか、それとも1週間で壁にぶつかるかを左右する。レート制限は、初日からリトライロジックを書かずにバッチジョブでコールをバーストできるかを左右する。

ECBは自身の参照レートを無料かつクォータなしで公表している。トレードオフは、それが開発者向けAPIではなく生のXMLフィードであり、営業日ごとに1回しか更新されないことだ。オープンソースのFrankfurterプロジェクトは、ECBデータをキー不要・強制クォータなしのJSON APIでラップしているが、1日1回の更新頻度は引き継いでいる。

もう一つ、キー不要の第3のカテゴリを知っておく価値がある:fawazahmed0/exchange-apiのような、コミュニティ運営でCDNホスティングの静的JSONプロジェクトだ。リクエストに応答するサーバーはそもそも存在せず、jsDelivrやCloudflare Pagesから配信されるバージョン管理されたJSONファイルがあるだけで、毎日更新され、200種類以上の通貨(一般的な暗号通貨を含む)をCC0パブリックドメインライセンスでカバーし、キーも強制レート制限もない。トレードオフはアーキテクチャ上のものだ — sourceや鮮度メタデータがなく、換算エンドポイントもなく、ライブの日中更新もなく、ミラーがダウンしたときに責任を負う単一の主体もない — このプロジェクト自身のドキュメントも、まさにその理由から2つのCDNホスト間でフォールバックを組むことを推奨している。

キー不要の出発点として、exchangerate.devはIPアドレスごとに上限を設けた匿名コールを受け付ける。カード不要で/signupから取得できる無料キーを使うと、月10,000コール、毎分12リクエストまで上がる。

コミットする前にコール数を数える
月間1万ページビューでロードのたびにレートを取得するページは1万コールを消費する。20ペアを個別に5分ごとにチェックするcronジョブは1日5,760コールになる — それらのペアを1つのsymbolsリクエストにまとめれば288コールまで減る。プランを選ぶ前に自分の数字を把握すること。

軸2: 日中の鮮度

これは、何かが壊れるまでほとんどの開発者が考えない軸だ。ECB参照フィックスは営業日ごとにCET16:00頃に公表される — それ以降、市場は動き続けるがフィックスは翌営業日まで更新されない。そのフィックスのみをソースとするAPIは、午後の残り、夜間、週末を通じて前日のレートを返し続ける。

1日1回のクローズレートしか消費しないパイプラインならそれで問題ない。しかし、消費者向けアプリ、eコマースサイト、あるいは「latest」が現在の市場を意味すると期待するあらゆるコードにとっては、そのレートが日中の変動を反映しているのか、最大24時間前のフィックスなのかを知る必要がある。

exchangerate.devには取引週を通じて約60秒ごとに更新されるliveソースがある。あるペアがそのソースから来ている場合、market_sessionは現在のセッション状態(openweekendなど)を教え、data_updated_atはレートが最後に動いた正確な時刻を確認させてくれる。

軸3: 鮮度メタデータ

レートはただの数値だ。その数値が3分前のスポット集約なのか、昨日の朝の参照フィックスなのかを知ることで、それを責任を持ってどう扱えるかが変わる。

ほとんどのAPIはタイムスタンプを返す。それはレスポンスがいつ構築されたかを教えるだけで、元のデータがいつ最後に動いたかは教えない。exchangerate.devは、合わせて本当の問いに答える2つのフィールドを返す:

  • sourcelive(集約スポット)、ecb_daily(ECB参照フィックス)、fred_daily(米連邦準備制度の日次系列)のいずれか。
  • market_sessionopenweekendinterbank_closedのいずれか。銀行間取引週の状態を示す。
  • data_updated_at:元のレートが最後に書き込まれた時刻。レスポンスが構築された時刻であるtimestampとは別。
  • is_forward_filled:履歴およびレンジのレスポンスで、trueはその日にレートが公表されず、前の値が持ち越されたことを意味する。

timestampではなくdata_updated_atを確認するキャッシュ層は、ユーザーに古いデータを配信することを避けつつ、不要な上流コールも避けられる。

軸4: 履歴の深さ

日次履歴は、データセットをバックフィルできるか、過去1年のチャートを作れるか、10年分のレートで回帰分析を回せるかを左右する。無料APIの中には履歴を90日に制限しているものもあれば、より深い履歴を有料プランの背後に置いているものもある。

exchangerate.devは無料枠でも1999年までの日次履歴を公開している。単一の日付指定パス/v1/2024-01-15/USDはその日のレートを返す。start_dateend_dateパラメータを持つ/v1/rangeエンドポイントは、1回のコールで完全な系列を返す。これらの履歴データの裏付けとなるのはECBのEXRシリーズとFREDデータであり、カバレッジはそれらの機関が公表してきた内容と一致する。

軸5: 組み込みの換算エンドポイント

多くのAPIはレートの表を返し、掛け算は呼び出し側に任せる。単一ペアならそれで問題ないが、バッチ換算ジョブやカート合計額を換算するチェックアウトフローには、算術ヘルパーではなく換算のプリミティブが必要だ。

GET /v1/convert/USD/EUR/100は1回のコールでrateconvertedderivedを返す。POST /v1/convertエンドポイントは1回のリクエストでバッチ換算を処理する。互いに直接クォートされていないペアである三角測量クロスも、サーバー側で処理される。

軸6: エージェントとMCP対応

LLMエージェントやAIアシスタントがAPIを確実に呼び出すには、構造化されたツール定義が必要だ。生のREST APIではそのグルーコードを自分で書く必要があるが、MCPサーバーはツール定義をAPIと一緒に出荷する。

exchangerate.devはhttps://api.exchangerate.dev/v1/mcp(サーバー名exchangerate-dev)でModel Context Protocolサーバーを稼働している。5つのツールを公開する:list_currenciesget_rateconvertget_rangesearch_docs(FAQ検索)。ツールはREST APIと同じ月間クォータと毎分制限を共有するため、別途追跡すべき課金はない。

6つの軸を並べて見る

ECB / Frankfurter(オープンソース)exchangerate.dev(無料枠)
無料の月間クォータ強制上限なし(ECBフィード)。Frankfurterも無制限月10,000コール、毎分12リクエスト
日中の鮮度次の営業日フィックス(CET16:00頃)まで前回のECBフィックスを返すライブソースが取引週を通じて約60秒ごとに更新
鮮度メタデータタイムスタンプのみsourcemarket_sessiondata_updated_at
履歴の深さECB履歴は1999年頃まで(Frankfurter)。それ以外は生のXML/v1/{date}/{base}経由で1999年までの日次履歴
換算エンドポイント提供なし。計算は呼び出し側の責任/v1/convert/{from}/{to}/{amount} + バッチPOST
エージェント/MCP対応ネイティブMCPサーバーなし5つのツールを備えた/v1/mcpのMCPサーバー
どの場合もレートはインディケーティブだ
ソースがECBであれ、連邦準備制度であれ、ライブ集約であれ、公開されているFXレートはすべて分析や表示のための参照値だ。ディーリングクォートではなく、取引の決済に使うべきではない。

自分に合うものを選ぶ

プロジェクトが1日1回のクローズレートしか必要とせず、鮮度メタデータも不要で、生のECB XMLフィードを取得することを気にしないなら、Frankfurterは無料でかなりの範囲をカバーする。よく保守されたオープンソースプロジェクトであり、妥当な出発点だ。

日中の鮮度(ECBフィックスの時点だけでなく、日中動くレート)が必要な場合、レスポンスにsourcemarket_sessionが欲しい場合、ECBフィードから簡単に得られる範囲を超える履歴が必要な場合、あるいはFXツールを呼び出すLLMエージェントを構築している場合は、exchangerate.devがそうしたケース向けに設計されている。無料枠にカードは不要で、MCPサーバーも含まれる。

正しいAPIとは、自分のユースケースに制約が合っているものであって、機能リストが最も長いものではない。

ER
exchangerate.dev
開発者とその構築するツールのためのインディケーティブFXレート。

Keep reading

Referencesourceとmarket_sessionの読み方Read GuideLLMエージェントにMCP経由でライブFXレートを与えるRead
他の比較Fixer vs exchangerate.devOpen Exchange Rates vs exchangerate.devCurrencylayer vs exchangerate.dev
学ぶReading source and market_session in your pipelineIndicative vs executable FX rates: what a rates API actually gives youECB参照レートの解説
ライブレートEUR/USDGBP/USDUSD/JPY