ドキュメント /

APIリファレンス

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

認証と制限

データエンドポイントは匿名で試せます。IPごとに毎分12リクエスト、毎時100リクエストです。キーを付けるとアカウントの月間枠が使われます。

bash · header
Authorization: Bearer YOUR_KEY
X-RateLimit-Remaining: 9999
X-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アカウント、プラン、有効キー、当月利用量。

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

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

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

interval通貨ペア数
1m91
5m91
15m91
1h91
4h79
1d465
curl · 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"

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

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

対象範囲と制限の詳細

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

ライブWebSocket

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

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

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

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

ライブWebSocket

エラー

REST: すべて`{ result: "error", code, message }`形式です。429には`Retry-After`が付き、取得失敗時にモック値へ切り替わることはありません。

json · error
{
  "result": "error",
  "code": "missing_parameter",
  "message": "missing required parameter: symbols"
}

APIリファレンス →

使い慣れた環境で使う

同じリクエストを curl、Python、JavaScript で実行できます。評価に API キーは不要です。

クイックスタートを開く
curl -fsS --max-time 10 "https://api.exchangerate.dev/v1/latest/USD?symbols=EUR,GBP"
レスポンス例
{
  "result": "success",
  "base": "USD",
  "source": "live",
  "sources": {
    "EUR": "live",
    "GBP": "live"
  },
  "market_session": "open",
  "timestamp": "2026-06-15T12:00:00Z",
  "data_updated_at": "2026-06-15T12:00:00Z",
  "effective_at": {
    "EUR": "2026-06-15T12:00:00Z",
    "GBP": "2026-06-15T12:00:00Z"
  },
  "rates": {
    "EUR": 0.86207,
    "GBP": 0.74627
  },
  "derived_symbols": [],
  "notice": "Indicative rates, not for settlement."
}

rates.EUR は 1 USD あたりの EUR 額です。effective_at.EUR は観測時刻、sources.EUR はソース区分を示します。値と時刻は例です。

JSON レスポンスを開くAPI リファレンス