exchangerate.host の代替を探しているなら、ほぼ間違いなく他の誰もがぶつかったのと同じ壁に当たったはずです。無料プランが月 100 リクエストになったのです。1 日 100 回でも 1 時間 100 回でもなく、請求サイクル全体で合計 100 コール。チェックアウトページを検証している開発者が 1 人いれば、昼食前に使い切ります。かつて「とりあえずレートを取ってくる」ためのインターネットの標準エンドポイントだったサービスは、いまやデモ枠が付いただけの有料プロダクトになりました。
本記事では、2026 年の exchangerate.host 代替サービス 7 選を、エンジニアが実際に評価する観点で比較します。無料枠の大きさ、実際に到達する利用量での本当の価格、更新頻度、ヒストリカルデータの範囲、そして書き換えが必要なコード量です。以下の価格はすべて執筆時点で各プロバイダーの公式料金ページを確認したものであり、最後のセクションでは移行の全手順 — リクエスト、レスポンスのマッピング、キャッシュ — をおよそ 10 分の作業として示します。
exchangerate.host に何が起きたのか
exchangerate.host はコミュニティ色の強い無料 API として始まりました。キー不要、登録不要、ECB 由来のレート、そして素直な REST インターフェース。そのバージョンはもう存在しません。現在このサービスは APILayer(本社はオーストリア・ウィーンの APILayer GmbH)が開発・運用しており、同ファミリーの他の商用 API とまったく同じ挙動をします。開発者を他所へ向かわせている具体的な変更は 3 つです。
1. 無料プランは月 100 リクエスト
現在の exchangerate.host 料金ページでは、Free プランは月 100 リクエスト、レート更新は1 日 1 回、サポートなしと記載されています。感覚をつかむために言い換えると、30 日の月に完全に均等配分した場合、7 時間に 1 回しかリクエストできない計算です。これは開発用の枠ではなく、デモ枠です。テストスイート、CI パイプライン、あるいは 2 人以上の開発者がいるプロジェクトなら即座に使い切ります。
2. 超過は停止ではなく自動課金される
ここが多くの人を驚かせる部分です。クォータを超えても API は 429 を返して止まりません。そのまま応答し続け、1 コールごとに課金します。APILayer 自身の超過料金表では Basic プランは追加 1 コールあたり 0.005996 ドルで、次の実例が挙げられています。月額 14.99 ドルの Basic プランで 10,000 コール超過すると 59.96 ドル。プラン価格の 4 倍が、あなたが承認していない請求書に、気づかなかったリトライループのせいで上乗せされるわけです。クォータの 75%・90%・100% でメールとダッシュボード通知は届きますが、強制停止する仕組みはありません。
コストモデルが予測可能な上限に依存しているなら、バグを黙って請求書に変換する API は料金の細かい不満ではなく、構造的な問題です。
3. 無料・低価格帯は 1 日 1 回しか更新されない
更新頻度は階層化されています。Free は1 日 1 回、Basic(月 14.99 ドル)は1 時間ごと、Professional Plus(月 59.99 ドル)は10 分ごと、Business(月 99.99 ドル)は60 秒ごと。ヒストリカルデータは日次終値として提供され、前日分が GMT 00:05 に利用可能になります。この頻度は経理には十分です。チェックアウトページ、料金表、あるいはレートの陳腐化が返金チケットに直結するような用途には足りません。
4. サポートは別建ての年額請求
標準サポートは含まれますが、Platinum Support(専任アカウント担当、バグの優先対応)は年額の追加費用で、Basic が 479.88 ドル、Professional Plus が 599.88 ドル、Business が 719.88 ドルです。申し込み時にあらかじめチェックが入っており、手動で外す必要があります。月額を比較する前に知っておく価値があります。
これらは exchangerate.host が悪い API だという話ではありません。多くのチュートリアルがいまだに参照しているものとは別の API になったという話であり、その採算は特定の利用量でしか合わないというだけです。プロバイダーがこのデータをどう調達し値付けしているかという広い文脈は、為替レート API はどこからデータを取得しているのかのガイドで扱っています。
exchangerate.host の代替をどう評価するか
リストの前に、移行が定着するかどうかを実際に左右するチェックリストです。
- 実用に足る無料枠 — クレジットカードなしで開発・テストし、小規模な本番アプリを動かせるだけのコール数があるか。
- 超過時の挙動 — 上限で停止するのか、超過分を課金してくるのか。
- 自分が払う価格帯での更新頻度 — リアルタイムか、1 時間ごとか、1 日 1 回か。実際に購入するプランで見ること。
- ヒストリカルおよび時系列エンドポイント — 特定の過去日付は最低条件。チャート用の日付範囲取得は当たり前ではない。
- 基準通貨の自由度 — 無料枠を USD や EUR に固定し、変更を有料にするプロバイダーもある。
- 通貨の広さ — メジャー通貨は簡単。差が出るのは新興国通貨のロングテール。
- 移行コスト — リクエストとレスポンスの形が、いま解析しているものとどれだけ近いか。
2026 年の exchangerate.host 代替サービス 7 選
| API | 無料枠 | 通貨数 | 無料枠の更新頻度 | ヒストリカル | カード不要 |
|---|---|---|---|---|---|
| Finexly | 月 1,000 リクエスト | 170+ | リアルタイム | あり | はい |
| exchangerate.host | 月 100 リクエスト | 170+ | 1 日 1 回 | あり | はい |
| Frankfurter | 無制限・キー不要 | 約 30 | 1 日 1 回(ECB) | あり | はい |
| ExchangeRate-API | 月 1,500 リクエスト | 161 | 1 日 1 回 | 有料のみ | はい |
| Open Exchange Rates | 月 1,000 リクエスト | 200+ | 1 時間ごと(USD 基準) | 有料のみ | いいえ |
| Fixer | 月 100 リクエスト | 170+ | 1 時間ごと(EUR 基準) | 有料のみ | いいえ |
| CurrencyLayer | 月 100 リクエスト | 168 | 1 日 1 回(USD 基準) | 有料のみ | いいえ |
| CurrencyAPI | 月約 300 リクエスト | 170+ | 1 日 1 回 | 有料のみ | いいえ |
1. Finexly — もっとも近い同等の置き換え先
Finexly は exchangerate.host が空けた穴にぴったり収まるよう作られています。シンプルな REST API で 170 以上の通貨のリアルタイムおよびヒストリカルレートを提供し、無料プランは月 1,000 リクエスト(毎分 10 リクエスト)、登録時にクレジットカードは不要です。これは exchangerate.host の無料枠の 10 倍で、更新は 1 日 1 回ではなくリアルタイム、ヒストリカルデータも制限ではなく標準で含まれます。
比較が鋭くなるのは有料階層です。Finexly の Growth プランは月 12.99 ドルで 15,000 リクエスト。exchangerate.host の Basic は月 14.99 ドルで 10,000 リクエスト。支払いは少なく、余裕は 50% 多い計算です。セルフサービス帯の上限では両社とも月 59.99 ドルで 10 万リクエストですが、Finexly のこの階層はリアルタイム更新なのに対し、exchangerate.host の Professional Plus は 10 分ごとの更新です。
エンドポイントはおなじみの 4 つ — latest、historical、timeseries、convert — で、一貫した単一のレスポンス構造を持ちます。詳細は Finexly API ドキュメントを参照してください。全プランは料金プランページにあります。
こんな場合に: そのまま差し替えられる移行先が欲しく、無料枠で実際に開発でき、規模拡大に伴う価格も予測可能であってほしいとき。
2. Frankfurter — 約 30 通貨で足りるなら永久に無料
Frankfurter は無料・オープンソース・セルフホスト可能で、API キーがまったく不要です。exchangerate.host の当初の体験にもっとも近い存在が残っているとすればこれでしょう。欧州中央銀行の参照レートを、深いヒストリカルアーカイブとともに提供します。ただしトレードオフは厳しめです。カバー範囲は約 30 通貨(ECB が公表するもの)で止まり、レートは営業日に 1 回しか動かず、すべてがユーロ基準に紐づいています。
こんな場合に: ユーロ中心で、エキゾチック通貨ペアが不要で、日次の粒度で本当に十分なとき。そうでなければ、導入したその週のうちに限界に当たります。
3. ExchangeRate-API — カード不要でもっとも太っ腹な無料キー
ExchangeRate-API(AYR Tech の製品、2010 年から稼働)には無料の経路が 2 つあります。オープンアクセスのエンドポイントはキー不要ですが、目に見える形での出典表示が必要で、更新は 1 日 1 回、レート制限があります。過剰なクライアントには HTTP 429 が返り、20 分間ブロックされます。キーありの無料枠は月 1,500 リクエスト、1 日 1 回更新、出典表示は不要で、クレジットカードも不要です。Pro は月 10 ドルで 30,000 リクエスト、更新は 60 分ごとです。
上限には注意してください。ヒストリカルおよび時系列データは有料プランにあり、Pro でも更新は 1 時間ごとです。こんな場合に: 予算は限られていてリクエスト量が要り、日次レートで問題ないとき。このファミリーについては ExchangeRate-API と CurrencyLayer と Finexly の比較でさらに詳しく分解しています。
4. Open Exchange Rates — 通貨カバレッジがもっとも深い
2011 年から稼働し、200 以上の通貨と成熟したクライアントライブラリのエコシステムを持ちます。無料枠は月 1,000 リクエスト、1 時間ごとの更新ですが、USD 基準に固定されています。基準通貨の変更は有料機能であり、EUR や GBP をアンカーと想定したコードを静かに壊します。有料プランは月 12 ドル前後・10,000 リクエストから始まります。
こんな場合に: 通貨カバレッジの広さが最大の制約で、USD 基準が製品にとって自然なとき。
5. Fixer — 同じ運営元、同じ課金モデル
Fixer は exchangerate.host と同じ APILayer のエンドポイント構造で 170 以上の通貨をカバーします。そのため、このリストの中で移行コストがもっとも低い選択肢であり、同時にもっとも意味の薄い選択肢でもあります。無料枠は月 100 リクエスト、1 時間ごと更新、EUR 基準、ヒストリカルは有料プラン、そして同じ自動超過課金です。
こんな場合に: すでに APILayer のエコシステムに投資していて、請求をまとめたいとき。ただし、無料枠や超過モデルが理由で exchangerate.host を離れたのなら、Fixer はそのどちらも解決しません。
6. CurrencyLayer — 通貨に貴金属を加えて
こちらも APILayer です。168 通貨に貴金属を加え、無料枠は月 100 リクエスト、1 日 1 回更新、USD 基準。貴金属のカバレッジが差別化要素で、それ以外は Fixer と同様です。
こんな場合に: 法定通貨に加えて XAU/XAG が必要で、どのみち有料プランに直行するつもりのとき。
7. CurrencyAPI — 法定通貨と暗号資産を単一エンドポイントで
170 以上の法定通貨と暗号資産をカバーする素直な REST API で、無料枠はおよそ月 300 リクエスト、1 日 1 回更新。より速い更新は有料階層で提供されます。
こんな場合に: 一度の統合で暗号資産と法定通貨の両方が必要で、小さめの無料枠でも許容できるとき。
コスト比較:実際にいくら払うのか
表示価格は本当に重要なもの、つまり必要な更新頻度における有効リクエスト 1 件あたりのコストを隠します。現実的な 3 つの利用量で見てみます。
月 10,000 リクエストの場合。 exchangerate.host の Basic は 14.99 ドルで 1 時間ごと更新。Finexly の Growth は 12.99 ドルで 15,000 リクエスト、リアルタイム更新。請求額が下がるうえ、次に考え直すまで 5,000 リクエスト分の余裕が残ります。
月 100,000 リクエストの場合。 どちらも 59.99 ドルです。違いは更新頻度 — 10 分ごとかリアルタイムか — と、超過が金銭的損失になるのかエラーで済むのかという点です。
超過境界での比較。 ここが最大の分岐点です。APILayer 自身が公表している数字を使えば、Basic プランを 10,000 コール超えると 59.96 ドル、基本契約料の 4 倍以上です。設定ミスの cron やリトライの嵐が、そのまま請求書に変わります。クォータで強制停止するプロバイダーなら、同じ事故はアラートで済みます。
現実的な防御策はプロバイダーを問わず同じです。積極的にキャッシュし、失敗時はクローズドに倒すこと。1 時間ごとに更新されるレートを、ページ表示のたびに取得する必要はありません。通貨 API のキャッシュとエラーハンドリングのガイドで、TTL の選び方、stale-while-revalidate、サーキットブレーカーといった、レイテンシと請求額の両方を平準化するパターンを扱っています。
exchangerate.host からの移行手順
exchangerate.host の統合はたいてい GET リクエスト 1 本とレスポンスパーサー 1 つなので、移行は機械的です。マッピングすべきものはちょうど 2 つです。
ステップ 1:リクエストをマッピングする
exchangerate.host は APILayer の慣習に従い、クエリパラメータ access_key を使い、基準通貨は source、対象通貨は currencies で指定します。
# exchangerate.host — キーを URL に含める
curl "https://api.exchangerate.host/live?access_key=YOUR_ACCESS_KEY&source=USD¤cies=EUR,GBP,JPY"Finexly は標準的な Authorization ヘッダーと、より一般的な base / symbols というパラメータ名を使います。
# Finexly — キーはヘッダー、レートはリアルタイム
curl "https://api.finexly.com/v1/latest?base=USD&symbols=EUR,GBP,JPY" \
-H "Authorization: Bearer YOUR_API_KEY"キーをクエリ文字列から外すこと自体が小さなセキュリティ改善です。URL はサーバーログ、プロキシログ、ブラウザ履歴、リファラーヘッダーに残りますが、ヘッダーは通常そうなりません。
ステップ 2:レスポンスをマッピングする
解析コードに触れるのはここだけです。APILayer 系のレスポンスは各クォートを連結した通貨ペア(USDEUR)でキー付けするため、使える通貨コードを得るにはソース側のプレフィックスを取り除く必要があります。Finexly は対象通貨コードをキーとするフラットな rates オブジェクトを返します。
{
"success": true,
"base": "USD",
"timestamp": 1755763200,
"date": "2026-08-21",
"rates": {
"EUR": 0.9184,
"GBP": 0.7842,
"JPY": 152.31
}
}互換シムを挟めば、移行中もアプリケーションの残りの部分に手を入れずに済みます。
// 旧コードが期待する連結ペア形式を返すドロップイン置き換え
async function getQuotes(source = 'USD', currencies = ['EUR', 'GBP', 'JPY']) {
const url = `https://api.finexly.com/v1/latest?base=${source}&symbols=${currencies.join(',')}`;
const res = await fetch(url, {
headers: { Authorization: `Bearer ${process.env.FINEXLY_API_KEY}` }
});
if (!res.ok) throw new Error(`FX request failed: ${res.status}`);
const data = await res.json();
// 旧来の "USDEUR" キーを再構築し、下流のコードは無変更で済ませる
return Object.fromEntries(
Object.entries(data.rates).map(([symbol, rate]) => [`${source}${symbol}`, rate])
);
}Python での同等版。本来ずっと入れておくべきだった鮮度チェック付きです。
import os, time, requests
FRESHNESS_LIMIT = 15 * 60 # seconds
def get_rates(base="USD", symbols=("EUR", "GBP", "JPY")):
resp = requests.get(
"https://api.finexly.com/v1/latest",
params={"base": base, "symbols": ",".join(symbols)},
headers={"Authorization": f"Bearer {os.environ['FINEXLY_API_KEY']}"},
timeout=5,
)
resp.raise_for_status()
data = resp.json()
age = time.time() - data["timestamp"]
if age > FRESHNESS_LIMIT:
raise RuntimeError(f"Rates are {int(age)}s old — refusing to price on stale data")
return data["rates"]そして PHP 版。exchangerate.host 利用者の大きな割合を占める Laravel と WordPress のコードベース向けです。
<?php
$response = wp_remote_get(
'https://api.finexly.com/v1/latest?base=USD&symbols=EUR,GBP,JPY',
['headers' => ['Authorization' => 'Bearer ' . getenv('FINEXLY_API_KEY')], 'timeout' => 5]
);
if (is_wp_error($response)) {
return get_transient('fx_rates_fallback'); // 直近の正常値を返す
}
$data = json_decode(wp_remote_retrieve_body($response), true);
set_transient('fx_rates_fallback', $data['rates'], HOUR_IN_SECONDS * 6);
return $data['rates'];ステップ 3:切り替える前にキャッシュを入れる
どこへ移行するにせよ、初日から前段にキャッシュを置いてください。レートが 1 時間ごとに更新されるなら、TTL 30 分でリクエスト数は桁違いに減り、実トラフィックでも無料枠で回せるようになります。上流の呼び出しが失敗したときに返す直近の正常値も必ず保持しておきましょう。上の PHP 例のフォールバックが、その考え方そのものを 3 行で表しています。通貨コードの扱いも移行中の静かなバグ源です。ISO 4217 通貨コードガイドで、つまずきやすいコードを解説しています。
どれを選ぶべきか
- 本番の統合を置き換える: Finexly。無料枠は 10 倍、更新は日次ではなくリアルタイム、移行は上記の 2 つのマッピングだけです。無料プランから始めて、足りなくなったら上げてください。
- 個人プロジェクト、ユーロ中心、キーを持ちたくない: Frankfurter。
- 無料リクエスト数を最大化したく、日次レートで問題ない: ExchangeRate-API のキーあり無料枠、月 1,500 リクエスト。
- 通貨リストが最も広く、USD 基準が自然: Open Exchange Rates。
- すでに APILayer 一色: Fixer か CurrencyLayer。ただし、逃れようとしていたのと同じ無料枠と同じ超過モデルが待っています。
決める前に鮮度とカバレッジを自分で確かめたいなら、通貨コンバーターは Finexly のライブフィードで動いており、リアルタイム為替レート API の比較ではレイテンシと更新保証をさらに掘り下げています。自前フィードの構築を検討中なら、まず通貨 API は自作か購入かをお読みください。
よくある質問
exchangerate.host はまだ無料ですか。 無料プラン自体は残っていますが、月 100 リクエスト、1 日 1 回更新、サポートなしに制限されています。古いチュートリアルが参照している、キー不要で実質無制限だったバージョンはもう存在しません。API キーは必須で、実用的な利用量は月 14.99 ドルから始まります。
exchangerate.host の統合が突然動かなくなったのはなぜですか。
ほぼ必ず API キーの必須化が原因です。有効な access_key のないリクエストは失敗し、この API はエラーを success フィールドの false で示します。通常の 4xx ではなく HTTP 404 や HTTP 521 が返ることもあります。クライアントが HTTP ステータスコードしか見ていないと、失敗が空の成功に見えてしまいます。success フィールドを明示的に確認してください。
exchangerate.host の最良の無料代替は何ですか。 リアルタイムデータで実用に足る無料枠なら、クレジットカード不要で月 1,000 リクエストの Finexly。リクエスト数重視で日次データでよければ月 1,500 の ExchangeRate-API。キーをまったく使わず ECB の約 30 通貨で足りるなら Frankfurter です。
上限を超えたら課金されますか。 exchangerate.host では課金されます。超過はブロックではなくコール単位で課金され、Basic では 1 リクエストあたり 0.005996 ドルです。APILayer 自身の例では、10,000 コールの超過が 59.96 ドルとされています。評価するプロバイダーの超過ポリシーは必ず確認してください。クォータで強制停止するところもあり、制御しきれないトラフィックにはそちらが安全です。
別の通貨 API への移行にはどれくらいかかりますか。
単一エンドポイントの一般的な統合なら 1 時間もかかりません。作業はリクエスト URL と認証方式の差し替え、そしてレスポンスの再マッピングです。APILayer 系 API はクォートを連結ペア(USDEUR)でキー付けし、多くの代替はフラットな rates オブジェクトを返します。上記のような互換シムを挟めば、下流のコードに触れずに切り替えられます。
ヒストリカルレートは必要ですか。 チームが想定するより高頻度で必要になります。請求書発行、税務報告、収益の照合はいずれも今日のレートではなく特定日のレートを必要とします。このリストの多くのプロバイダーではヒストリカルアクセスが有料機能です。決める前に確認してください。ヒストリカル為替レート API ガイドで、保存すべきものと取得すべきものを整理しています。
無料 API キーで始める
exchangerate.host が開発者を失っている理由は価格ではありません。無料枠が「作れる場所」でなくなったことです。移行の準備はできましたか。Finexly の無料 API キーを取得 — クレジットカードは不要です。月 1,000 リクエスト、170 以上の通貨のリアルタイムレート、ヒストリカルデータ込みで利用でき、足りなくなったら月 6.99 ドルからのプランがあります。ドキュメントにはお使いの言語で動くサンプルがあり、決める前に通貨 API を比較することもできます。
Explore More
Vlado Grigirov
Senior Currency Markets Analyst & Financial Strategist
Vlado Grigirov is a senior currency markets analyst and financial strategist with over 14 years of experience in foreign exchange markets, cross-border finance, and currency risk management. He has wo...
View full profile →