メニュー

APIリファレンス

認証、制限、鮮度フィールド、エンドポイント、エラーのREST要約です。

認証と制限

データエンドポイントは匿名で試せます。IPごとに毎分10リクエスト、毎時100リクエストです。キーを付けるとアカウントの月間枠が使われます。 Freeの価格は15分遅れです(X-Price-Delay-Seconds: 900ヘッダー)。

http · request headers
Authorization: Bearer YOUR_KEY
http · response headers
X-RateLimit-Remaining: 9999X-RateLimit-Reset: 1788220800

鮮度を説明するフィールド

sourceはデータ種別、market_sessionは市場状態、data_updated_atはレスポンスに寄与した最も古い観測の時刻です。3つとも保存してください。

エンドポイント

GET /v1/latest[/{BASE}]現在のレート。全通貨またはsymbolsで絞り込み。
GET /v1/{YYYY-MM-DD}[/{BASE}]指定日とベース通貨の履歴スナップショット。
GET /v1/convert/{FROM}/{TO}[/{AMOUNT}] · POST /v1/convert金額換算。単発GETと一括POST。
GET /v1/rate/{slug}slugで1通貨ペアを取得するフラットなレスポンス。
GET /v1/rangeページングとダウンロードに対応した日次系列。
GET /v1/currencies対応通貨一覧。パラメーターなし。
GET /v1/accountアカウント、プラン、有効キー、当月利用量。
GET /v1/indices/{index_slug} · GET /v1/indices/{index_slug}/timeseriesUSD指数の最新値と履歴系列。

イントラデイ系列と対象通貨

/v1/timeseries は1m、5m、15m、1h、4hと日次参照値1dに対応します。2hはありません。USDを含まないSGDクロスは4hの対象外ですが、USD/SGDと逆方向は対象です。市場データの収集開始日は2026-09-14です。1mは30日間保持し、それより大きい間隔には定期的な削除期限がありません。保持期間と実際に蓄積した履歴の長さは異なります。 1mから1hのイントラデイ対応範囲は221のユニークペアで、USDペア143組とクロス78組です。

履歴クロスは同じUTC区間にある実際の終値観測を使い、時刻差は最大5秒です。effective_atは古い方の観測時刻です。欠損は補完せず、進行中の区間は変わる場合があります。1dは全カタログの日次参照値です。表は通貨ペアを重複せず数え、両方向に対応します。

interval通貨ペア数
1m221
5m221
15m221
1h221
4h209
1d10296
curl · Pro · EUR/JPY · 15m
curl "https://api.exchangerate.dev/v1/timeseries?base=EUR&symbols=JPY&interval=15m&from=2026-09-14T12:00:00Z&to=2026-09-14T13:00:00Z" \  -H "Authorization: Bearer YOUR_API_KEY"

対象期間に観測がない場合はHTTP 200でdata: []、has_more: false、next_cursor: nullを返します。不明な間隔はunsupported_interval、対象外ペアはunsupported_pair_intervalとrejected_pairsを返します(HTTP 400)。対象外を含むリクエストは全体を拒否します。

対象範囲と制限の詳細

イントラデイ為替レートAPI

ライブWebSocket

wss://api.exchangerate.dev/v1/streamへ接続し、10秒以内にauthを送信します。APIキーはサーバーに保存し、URLや公開JavaScriptに含めないでください。匿名接続は非対応です。authenticatedの後にsubscribeを送ります。対象通貨は下記のとおりです。クロスには両方の最新観測が新鮮で、時刻差が最大5秒であることが必要です。unavailableやstaleになる場合があります。受け付けた接続ごとに月間クォータを1回消費します。

表は新規アカウントの上限。既存アカウントは旧Basic 3 × 25または旧Pro 10 × 100(接続数 × 接続あたりの通貨ペア数)を維持します。実際の上限はauthenticatedメッセージに表示されます。

AUD, CAD, CHF, EUR, GBP, JPY, MXN, NOK, NZD, PLN, SEK, SGD, USD, ZAR

プラン同時接続数接続あたりのペア数
Free00
Basic00
Plus110
Pro3100
JSON
{"action":"auth","api_key":"YOUR_KEY"}
JSON
{"action":"subscribe","base":"EUR","symbols":["USD","JPY"]}

ライブWebSocket →

エラー

REST: すべて{ result: "error", code, message }形式です。429にはRetry-Afterが付き、取得失敗時にモック値へ切り替わることはありません。 HTTP 403のplan_gatedにはtier、intervalが含まれ、履歴期間の制限ではhistory_days、earliest_allowedも返します。アップグレードでリクエストが可能になる場合はupgrade_plans、upgrade_offers(plan、loses)、upgrade_urlを返します。

json
{  "result": "error",  "code": "missing_parameter",  "message": "required parameter missing: symbols"}
json · 403 plan_gated
{  "result": "error",  "code": "plan_gated",  "message": "The 15m interval is not included in your plan.",  "tier": "plus_2026",  "interval": "15m",  "upgrade_plans": ["pro_2026"],  "upgrade_offers": [{ "plan": "pro_2026", "loses": [] }],  "upgrade_url": "https://exchangerate.dev/pricing?plan=pro_2026&source=api&reason=plan_gated"}
curl -fsS --max-time 10 "https://api.exchangerate.dev/v1/latest/USD?symbols=EUR,GBP"

統合ガイド: Python · JavaScript / Node.js · Google Sheets · Excel · Go · Swift · Zapier