Guide/ECBレート

ECB参照レートの解説

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

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

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

Key points
ECBはユーロ参照レートを営業日ごとに1回、CET16:00頃に公表する。
APIはこれをsource: ecb_dailyとして表し、live(集約スポット)やfred_daily(米連邦準備制度の日次系列)とは区別される。
週末や祝日には新しい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年まで遡及直近の期間のみ
適した用途会計、レポーティング、監査証跡リアルタイム表示、プライシング

3つ目のクラスであるfred_dailyは米連邦準備制度の日次系列に由来し、連邦準備制度が独自の参照値を公表しているUSDペアで最も重要になる。ecb_dailyと似た頻度で、営業日ごとに1回、米国の祝日には欠落がある。

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

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

bash · latest rates, EUR basecopy
curl -s https://api.exchangerate.dev/v1/latest/EUR
json · response excerptcopy
{
  "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 weekendcopy
curl -s https://api.exchangerate.dev/v1/2026-06-13/USD \
  -H "Authorization: Bearer exr_live_..."
json · forward-filled responsecopy
{
  "result": "success",
  "base": "USD",
  "source": "fred_daily",
  "market_session": "weekend",
  "is_forward_filled": true,
  "rates": {
    "EUR": 0.87531,
    "GBP": 0.75945,
    "JPY": 161.412
  }
}

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

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

Pythonでsourceを確認する

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

python · source-aware rate fetchcopy
import requests

API = "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.87531
source = data["source"]            # ecb_daily
session = data["market_session"]   # open

if 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シリーズを開始した。APIは日付指定エンドポイント/v1/{date}/{base}とレンジエンドポイント/v1/rangeを通じてこの全履歴を公開している。どちらも該当箇所にはis_forward_filledを返す。任意の期間について、特定の通貨ペアの時系列を取得できる:

bash · weekly EUR/USD seriescopy
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_dateend_date(スネークケース)、symbolsはカンマ区切りの文字列だ。レンジは公表された営業日ごとに1行を返し、各行に固有のsourceis_forward_filledが付く。週末の日付は行として含まれない。

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

ライブレスポンスで両フィールドを確認する
1回のリクエスト、キー不要:/v1/latest/USDを試し、実際のペイロードでsourcemarket_sessionを読んでみる。履歴と自分のクォータが必要になったら、無料キーは月10,000コール — カード不要。
ER
exchangerate.dev
インディケーティブ・レートを扱う開発者向けのFXデータガイド。

Keep reading

Referencesourceとmarket_sessionの読み方Read Blogフィックス間でECBベースのFX APIが取りこぼすものRead Guideインディケーティブレートと約定可能レート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 you
ライブレートEUR/USDGBP/USDUSD/JPY