exchangerate.hostの代替サービス——キーが必須になった今
exchangerate.hostはかつて登録不要でリクエストに応答していた。現在はAPILayerが運営しており、無料プランはキーの背後で月100リクエストが上限となっている。何が変わり、開発者たちがどこへ移行しているかを説明する。
何年も問題なく動いていたスクリプトが突然401エラーや「クォータ超過」メッセージを返すようになったなら、原因はほぼ確実にこれである。exchangerate.hostはAPILayer傘下に移行し、かつてキー不要で事実上無制限だったエンドポイントは、現在は登録が必要で、無料プランでは月100リクエストしか使えなくなった。有料プランは月14.99ドルから10,000リクエストで利用できる。以下では現実的な選択肢を紹介する。探すのをやめて無料のものを使うべきケースも含めて。
実際に何が変わったのか
exchangerate.hostは、登録不要でGETリクエストを送るだけという、無料・キー不要の選択肢として評判を築いてきた。そのバージョンはもう存在しない。現在はAPILayerが運営しており、すべてのリクエストにアカウントに紐づくapikeyヘッダーが必要である。
無料プランでは月100リクエストしか許可されない。以前は1日に数百コールしていたプロジェクトなら、1週目が終わる前にこの上限に達する。有料アクセスは月14.99ドルから10,000リクエストで利用できる。
1日1回のECBレートだけで十分な場合
有料の選択肢を比較する前に、そもそも必要かどうかを検討してほしい。Frankfurterはオープンソースであり、APIキーを必要としない。欧州中央銀行の参照レートをラップしており、営業日に1回、16:00 CET前後に公表される。週末のデータはなく、土曜日には金曜日の終値が表示される。また、現在はmcp.frankfurter.devで自社のMCPサーバーも提供している。
ダッシュボード、レポート、あるいは「今日の公式レート」だけを必要とするバッチジョブであれば、この1日1回の更新頻度だけで足りる場合もある。十分でなければ、エンドポイントの対応表を含む移行ガイド全文を下にリンクしている。
現実的な選択肢を並べて比較する
この分野は、各無料プランが何を制限しているかで分かれる——ベース通貨、コール数、あるいはその両方である。
ExchangeRate-API:キー不要だが帰属表示の条件を読むこと
ExchangeRate-APIはopen.er-api.comでオープンアクセス・エンドポイントを運用しており、キー不要で、Frankfurterと同様に1日1回更新される。ただし"Rates By Exchange Rate API"をリンク付きで表示する必要があり、生データを再配布してはならない。レート制限に達すると429が返り、20分でクリアされる。キー付きのティアも存在し、月1,500リクエストである。
Open Exchange Rates:月1,000リクエストだがUSDに固定
Open Exchange Ratesは月1,000リクエストを無料で提供し、1時間ごとの更新と日次履歴が含まれる。落とし穴は、無料プランがUSDに固定されている点である。IDRやGBPをベースにするにはクライアント側で変換するか、月12ドルを払って任意のベースと時系列・変換コールを利用する必要がある。
Fixer:月100コール、EURのみ、変換エンドポイントなし
Fixerの無料プランは月100APIコールを許可し、1時間ごとの更新と履歴が含まれる。ベース通貨はEURに固定されており、BASICまで変換エンドポイントはない——/convert?from=USD&to=IDRは動作せず、自分でレートを取得して乗算する必要がある。
この中でexchangerate.devが占める位置
exchangerate.devの無料プランは、登録にカード不要で月10,000コール、毎分12リクエストを提供する。匿名でキー不要の呼び出しも、簡単な評価用にIPごとの上限付きで利用できる。どのプランにもベース通貨の制限はなく——カタログ内の465通貨ペアのいずれもベースにできる。1999年までさかのぼる日次履歴はすべてのプランで無料に含まれ、有料プランの背後に隠されていない。
主要通貨ペアは取引週を通じておよそ60秒ごとに更新され、他のほとんどのペアも同様で、残りはECBとFREDの参照レートで補われる。すべてのレスポンスにはsource、market_session、timestamp、data_updated_at、noticeフィールドが含まれるため、コードは時計を頼りに推測することなく、ライブのスポットレートと日次フィックスを区別できる。キー付きMCPサーバーはFreeを含むすべてのプランに、REST APIと同じクォータで搭載されている。
移行で実際に壊れるもの
キー不要のエンドポイントから移行すると、URL以上のものに影響が及ぶ。上記の選択肢のうちFrankfurterとExchangeRate-APIのオープンアクセス・エンドポイントを除くすべてが、Authorizationヘッダーかapikeyパラメータを必要とするため、それを追加する必要がある。フィールド名も標準化されていないため、あるAPIでrates.EURを読み取っていたスクリプトは、新しいプロバイダーがデータを異なる形でネストしていると、静かに壊れることがある。
レート制限には、肩をすくめるのではなく再試行ロジックで対応すべきである。月数百程度の無料プランでは、バックオフのない単純な再試行ループが、数分で1日分の予算を使い果たしかねない。積極的にキャッシュし、月間カウントを厳格な上限として扱うこと。
1つを選ぶ
自分のコードに影響する制限に合わせて選ぶこと。セットアップ不要で1日1回のECBレートならFrankfurter。帰属表示テキストを追加してもよいならExchangeRate-APIのオープンエンドポイント。USDやEUR以外のベース、あるいは日中の値動きが必要なら、それがexchangerate.devを含むキー付きの選択肢が埋める隙間である。