ガイドガイド

ECB参照レートの解説

欧州中央銀行(ECB)は、営業日ごとに1回、公式な外国為替参照レートを公表している。これが何を意味し、ライブのスポットデータとどう違い、APIからどう読み取るかを説明する。

2026年8月9日 · 6分で読了

/v1/latest/USDを呼び出してsource: ecb_dailyが返ってきたとき、それは欧州中央銀行のユーロ外国為替参照レートを読んでいる、CET16:00頃に営業日ごとに1回公表され、参照および情報提供を目的としており、取引には使えない。これはEURペアにとって最も権威ある日次のFX数値だが、あくまで1回のスナップショットであり、市場はCET16:00以降も動き続け、フィックスは翌営業日まで更新されない。

  • ECBはユーロ参照レートを営業日ごとに1回、CET16:00頃に公表する。
  • sourceはlive、ecb_daily、market_daily(ECB対象外通貨の保存済み日次市場終値)。
  • 週末や祝日には新しいECBフィックスは公表されない。該当日の履歴レスポンスにはis_forward_filled: trueが付く。
  • すべてのレートはインディケーティブであり、参照・分析目的のみに用いる。決済やディーリングには使えない。
  • 履歴は1999年、ECBのEXRシリーズの開始時点まで遡れる。

ECB参照レートとは何か

欧州中央銀行は営業日ごとに、ユーロ外国為替参照レートの一式を公表している。これらはCET16:00頃、欧州中央銀行制度の内外の中央銀行との協議プロセスを通じて算出される。レートはその時点でのコンセンサス・ミッドマーケット値を表しており、ECB自身の文書が明記するとおり、情報提供および参照目的のみに用いることを意図している。

これらは公的機関に由来し、固定された透明なスケジュールで公表されるため、EU域内の金融契約、会計、規制報告で広く使われている。APIレスポンスでsource: ecb_dailyを見たとき、まさにこれを読んでいることになる。

インディケーティブであり、決済には使えない

ECB参照レートはディーリングレートではない。ある時点での市場コンセンサスを反映したものだ。ECB由来のレートを含むすべての/v1/latestレスポンスには、これを確認するnoticeフィールドが含まれる:「Indicative rates, not for settlement. Source: incl. ECB statistics.」

APIにおける3つのソースクラス

APIのすべてのレスポンスには、そのレートがどのデータクラスに由来するかを示すsourceフィールドが含まれる。3種類ある:

フィールド値ecb_dailylive
提供元欧州中央銀行参考用スポット市場レート
頻度営業日ごとに1回取引週を通じて日中(約60秒間隔)
公表平日CET16:00頃取引週を通じて
フィックスの合間前回のフィックスを維持。市場変動は反映されない取引週を通じて更新が続く
週末・祝日新しいフィックスなし。前回値を維持銀行間市場は休止。最後の市場レートを維持
利用可能な履歴1999年まで遡及直近の期間のみ
適した用途会計、レポーティング、監査証跡リアルタイム表示、プライシング

ECB由来のレスポンスを読む

任意のベース通貨で最新レートをリクエストし、sourceを確認すれば何を見ているかがわかる:

bash · latest rates, EUR base
curl -s https://api.exchangerate.dev/v1/latest/EUR
json · response excerpt
{  "result": "success",  "base": "EUR",  "source": "ecb_daily",  "market_session": "open",  "timestamp": "2026-06-19T14:05:33Z",  "data_updated_at": "2026-06-19T14:00:00Z",  "rates": {    "USD": 1.14235,    "GBP": 0.86781,    "JPY": 184.320  },  "notice": "Indicative rates, not for settlement. Source: incl. ECB statistics."}

すべてのレスポンスに2つのタイムスタンプフィールドが現れる。data_updated_atは元のレートがデータストアに最後に書き込まれた時刻だ。ecb_dailyの場合、直近の営業日のCET16:00頃になる。timestampはAPIがレスポンスを構築した時刻だ。レスポンスをキャッシュするなら、鮮度を追跡すべきフィールドはdata_updated_atだ。

この最初のリクエストはキーなしで動く。スケジュールされたジョブやアプリケーションで呼び出すようになったら、無料キーを作成してアカウント単位のクォータを得て、サーバー側に保管する。

フィックス間、週末、フォワードフィル

ECBフィックスは1日1回のスナップショットだ。CET16:00頃の公表から翌営業日のフィックスまでの間、ecb_dailyのデータは更新されない、日中や夜間の市場変動は反映されない。ECBは週末や祝日にも公表しないため、土曜日や日曜日のリクエストには金曜日のフィックスが返る。APIはis_forward_filledフィールドで非公表日を扱う:

bash · historical date on a weekend
curl -s https://api.exchangerate.dev/v1/2026-06-13/USD \  -H "Authorization: Bearer exr_live_..."
json · forward-filled response
{  "result": "success",  "base": "USD",  "source": "ecb_daily",  "market_session": "weekend",  "is_forward_filled": true,  "rates": {    "EUR": 0.87531,    "GBP": 0.75945,    "JPY": 161.412  }}

is_forward_filledがtrueのとき、レスポンス中のレートは直前の営業日から持ち越された最後の公表値だ。新しい観測値ではない。多くの用途(週末にレートを表示する、チャートを埋めるなど)ではこれで問題ない。会計や監査証跡のように、特定の日に実際にフィックスが存在したかを記録する必要がある場合は、このフラグを確認すべきだ。

ライブレートはフィックスの合間も日中更新される

liveソースは取引週を通じて約60秒ごとに更新される、ECBの日次フィックスの合間や夜間も含む。CET16:00昨日時点ではなく、今現在の市場を反映するレートが必要なら、レスポンスにsource: liveが含まれるか確認するとよい。

Pythonでsourceを確認する

レートを読み取り、sourceによって表示方法を分岐させるのはよくあるパターンだ:

python · source-aware rate fetch
import requestsAPI = "https://api.exchangerate.dev/v1"KEY = "exr_live_..."resp = requests.get(    f"{API}/latest/USD",    headers={"Authorization": f"Bearer {KEY}"},    timeout=10,)resp.raise_for_status()data = resp.json()rate = data["rates"]["EUR"]        # 0.87531source = data["source"]            # ecb_dailysession = data["market_session"]   # openif source == "ecb_daily":    print(f"ECB reference rate as of last business day: {rate}")elif source == "live":    print(f"Indicative spot rate ({session}): {rate}")else:    print(f"Rate ({source}): {rate}")

1999年までの履歴

ECBはユーロ導入時にEXRシリーズを開始した。Plus/ProのキーでAPIは日付パス/v1/{date}/{base}とレンジエンドポイント/v1/rangeで全履歴を公開する。どちらも該当箇所にはis_forward_filledを返す。任意の期間について、特定の通貨ペアの時系列を取得できる:

bash · weekly EUR/USD series
curl -s "https://api.exchangerate.dev/v1/range?base=EUR&symbols=USD&start_date=2026-06-10&end_date=2026-06-16" \  -H "Authorization: Bearer exr_live_..."

パラメータ名に注意:start_dateとend_date(スネークケース)、symbolsはカンマ区切りの文字列だ。レンジは公表された営業日ごとに1行を返し、各行に固有のsourceとis_forward_filledが付く。週末の日付は行として含まれない。

ECBフィックスは営業日ごとの1つの観測値だ。ライブスポット、フォワードフィル、三角測量によるクロスレートは、すべてそのアンカーを取り巻く文脈にすぎない。
ライブレスポンスで両フィールドを確認する

1回のリクエスト、キー不要:/v1/latest/USDを試し、実際のペイロードでsourceとmarket_sessionを読んでみる。履歴と自分のクォータが必要になったら、無料キーは月5,000コール、カード不要。

よくある質問

ECBのユーロ外国為替参照レートとは何か?

欧州中央銀行が営業日ごとに1回、CET16:00頃に公表する公式なミッドマーケットFXレートだ。協議プロセスを通じて算出されるコンセンサス値であり、参照および情報提供のみを目的としており、取引の決済には使えない。

なぜAPIレスポンスでis_forward_filled: trueが表示されることがあるのか?

ECBは週末や祝日にはレートを公表しない。そうした日の履歴日付をリクエストすると、APIは直近の公表レートを持ち越し、is_forward_filledをtrueに設定する。そのレートは新しい観測値ではなく、直前の営業日の値の繰り返しだ。

sourceフィールドにおけるecb_dailyとliveの違いは何か?

ecb_dailyは欧州中央銀行の公式参照フィックスで、営業日ごとに1回、CET16:00頃に公表される。その公表から次の公表までの間、市場は動き続けるがecb_dailyは更新されない。liveは取引週を通じて約60秒ごとに更新される参考用スポット市場レートだ。用途は異なる、ecb_dailyは固定された公式ベンチマークが必要な会計・監査証跡向け、liveはリアルタイム表示や最新のインディケーティブ・プライシング向けだ。

ECBのレート履歴はどこまで遡れるか?

ECBのEXRシリーズはユーロが導入された1999年から始まる。1999年からの/v1/{date}/{base}にはPlusかProのキーが必要。ECBが公表していない日付(週末、祝日)にはis_forward_filled: trueが付く。

関連記事

無料のAPIキーで始める

無料プランで月5,000リクエスト。クレジットカードは不要です。

無料キーを取得