LUME EXCHANGE RATES / API REFERENCE

APIドキュメント

現在の提供元は外部為替データ提供元です。最新レートには提供元と公表時刻が含まれます。通貨の提供範囲は実際のデータに基づきます。

Base URLhttps://lumeexchangerates.com

概要

Lume Exchange Ratesは為替比較、通貨換算、過去の推移を一か所にまとめます。旅行の予算、海外価格の比較、製品開発に必要な通貨を選べます。

現在の提供元は外部為替データ提供元です。最新レートには提供元と公表時刻が含まれます。通貨の提供範囲は実際のデータに基づきます。

HTTPSJSONUTF-8GET / POSTUTC

クイックスタート

最初に通貨一覧を取得し、anchorとtargetsを指定してください。フィールド名と通貨コードは表示言語にかかわらず共通です。

cURL
curl --request GET 'https://lumeexchangerates.com/v1/quotes?anchor=USD&targets=EUR,JPY'
JavaScript · browser
const response = await fetch('/v1/quotes?anchor=USD&targets=EUR,JPY', {
  credentials: 'same-origin'
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const { meta, anchor, data } = await response.json();
console.log(anchor, meta.as_of, data);

ブラウザの例は同一オリジンで実行します。非公開サイトへのcURLやサーバーリクエストにはアクセス権限が必要です。URLだけでログイン制限を回避できません。

アクセスと認証

プレビューへのアクセスはサイトの公開設定とブラウザのセッションに従います。顧客用APIキー、Bearer認証、公開CORS APIは未提供です。提供元App IDはサーバー内で保管してください。

パラメーター型説明
Base URLURLhttps://lumeexchangerates.com
Content-Typeheaderapplication/json
Customer API key—ホスト型プレビューはブラウザーのログインセッションを使用します。顧客別APIキーは未対応です。
Provider App IDserver secretOPEN_EXCHANGE_RATES_APP_ID
CORSsame-origin現在、クロスオリジンを許可するヘッダーは返しません。

Authorization: TokenはLume Exchange Ratesサーバーが外部為替データ提供元に接続する際だけ使用します。顧客用認証ではありません。アクセス制限の応答はHTMLやリダイレクトの場合があるため、HTTPステータスとContent-Typeを先に確認してください。

エンドポイント

MethodPath説明
GET/v1/currencies現在のレートがある全コードと名称。利用可能な代替通貨と貴金属を含みます。
GET/v1/quotes基準通貨。既定はUSD。提供元の全対応コードを指定できます。
GET/v1/exchange換算する0以上の数値。
GET/v1/history過去の日付のレートは/v1/history、期間別データは/v1/seriesで取得できます。
GET/v1/series過去の日付のレートは/v1/history、期間別データは/v1/seriesで取得できます。
GET/v1/candlesOHLC
GET/v1/capabilities提供範囲
GET/api/rates/latest最新公表レート
GET/api/currencies通貨
GET/api/rates/historyチャート
GET/api/rates/previous前UTC日
POST/api/convert通貨換算

/v1は簡潔な照会用API、/apiはウェブ画面の最新レート・履歴・換算用です。既定値とレスポンス形式が異なるため混同しないでください。

GET /v1/currencies

現在のレートがある全コードと名称。利用可能な代替通貨と貴金属を含みます。

パラメーター: —

cURL
curl --request GET 'https://lumeexchangerates.com/v1/currencies'

以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。

JSON
{
  "meta": {
    "mode": "provider",
    "source": "外部為替データ提供元",
    "source_url": "https://openexchangerates.org/",
    "as_of": "2026-01-01T00:00:00.000Z",
    "fetched_at": "2026-01-01T00:00:05.000Z",
    "currency_count": 3,
    "includes_alternative": true,
    "refresh_interval_seconds": 300,
    "provider_plan": "Unlimited",
    "notice": "Illustrative response; not live rates."
  },
  "data": [
    {
      "code": "USD",
      "name": "United States Dollar"
    },
    {
      "code": "EUR",
      "name": "Euro"
    },
    {
      "code": "JPY",
      "name": "Japanese Yen"
    }
  ]
}
パラメーター型説明
data[].codestring大文字の通貨コード。代替資産には4文字以上やアンダースコアを含むコードもあります。
data[].namestring提供元の通貨名。名前がない場合はコードを返します。

GET /v1/quotes

基準通貨。既定はUSD。提供元の全対応コードを指定できます。

パラメーター型必須初期値説明
anchorstring任意USD基準通貨。既定はUSD。提供元の全対応コードを指定できます。
targetsstring任意すべてカンマ区切りの対象通貨。省略すると全対応通貨を返します。
cURL
curl --request GET 'https://lumeexchangerates.com/v1/quotes?anchor=USD&targets=EUR,JPY'

以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。

JSON
{
  "meta": {
    "mode": "provider",
    "source": "外部為替データ提供元",
    "source_url": "https://openexchangerates.org/",
    "as_of": "2026-01-01T00:00:00.000Z",
    "fetched_at": "2026-01-01T00:00:05.000Z",
    "currency_count": 3,
    "includes_alternative": true,
    "refresh_interval_seconds": 300,
    "provider_plan": "Unlimited",
    "notice": "Illustrative response; not live rates."
  },
  "anchor": "USD",
  "data": [
    {
      "currency": "EUR",
      "value": 0.9
    },
    {
      "currency": "JPY",
      "value": 150
    }
  ]
}

例: /v1/quotes?anchor=EUR&targets=USD,JPY。valueは基準通貨1単位あたりの対象通貨の値です。targetsの重複は除去され、空のコード、小文字、利用できないコードは400になります。

パラメーター型説明
anchorstring基準通貨。既定はUSD。提供元の全対応コードを指定できます。
data[].currencystring換算先
data[].valuenumberrates[currency] / rates[anchor]

GET /v1/exchange

換算する0以上の数値。

パラメーター型必須初期値説明
fromstring任意USD元の通貨コード。既定はUSD。
tostring任意KRW換算先の通貨コード。既定はKRW。
quantitynumber任意1換算する0以上の数値。
cURL
curl --request GET 'https://lumeexchangerates.com/v1/exchange?from=USD&to=EUR&quantity=100'

以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。

JSON
{
  "meta": {
    "mode": "provider",
    "source": "外部為替データ提供元",
    "source_url": "https://openexchangerates.org/",
    "as_of": "2026-01-01T00:00:00.000Z",
    "fetched_at": "2026-01-01T00:00:05.000Z",
    "currency_count": 3,
    "includes_alternative": true,
    "refresh_interval_seconds": 300,
    "provider_plan": "Unlimited",
    "notice": "Illustrative response; not live rates."
  },
  "data": {
    "from": "USD",
    "to": "EUR",
    "quantity": 100,
    "rate": 0.9,
    "result": 90
  }
}

例: /v1/exchange?from=USD&to=EUR&quantity=100。fromとtoを常に指定してください。この既存GETルートの換算先既定値はKRWです。空値、負数、NaN、無限大、計算結果のオーバーフローは400です。

パラメーター型説明
data.ratenumberrates[to] / rates[from]
data.resultnumberquantity × rate

GET /api/rates/latest

最新公表レート

パラメーター: —

cURL
curl --request GET 'https://lumeexchangerates.com/api/rates/latest'

以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。

JSON
{
  "meta": {
    "provider": "外部為替データ提供元",
    "kind": "latest_published",
    "provider_timestamp": 1767225600,
    "published_at": "2026-01-01T00:00:00.000Z",
    "expected_interval_seconds": 300,
    "lag_seconds": 5,
    "stale": false,
    "timezone": "Asia/Seoul",
    "fetched_at": "2026-01-01T00:00:05.000Z",
    "persistent_storage": false
  },
  "data": {
    "base": "USD",
    "rates": {
      "USD": 1,
      "EUR": 0.9,
      "JPY": 150
    }
  }
}
パラメーター型説明
data.basestringUSD
data.ratesobject利用可能なUSD基準レート。通貨の利用可否は最新レスポンスで確認します。
meta.provider_timestampintegerUTC · UNIX seconds
meta.published_atstringISO 8601 · UTC
meta.fetched_atstringサーバーが取得した時刻。提供元の公表時刻とは異なります。
meta.expected_interval_secondsintegerseconds
meta.staleboolean経過時間がmax(想定更新間隔×3, 900秒)を超えるとtrueです。
meta.lag_secondsinteger提供元の公表からの経過秒数。
meta.persistent_storageboolean永続的な収集サービスに接続しているかどうか。
meta.kindstringlatest_published | utc_daily

GET /api/currencies

通貨

パラメーター型必須初期値説明
langstring任意enen / ko / ja / zh / es / hi / bn / de / fr / nl / pt / it / ru / vi / th / ar / id / ur
cURL
curl --request GET 'https://lumeexchangerates.com/api/currencies?lang=en'

以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。

JSON
{
  "meta": {
    "provider": "外部為替データ提供元",
    "kind": "latest_published",
    "provider_timestamp": 1767225600,
    "published_at": "2026-01-01T00:00:00.000Z",
    "expected_interval_seconds": 300,
    "lag_seconds": 5,
    "stale": false,
    "timezone": "Asia/Seoul",
    "fetched_at": "2026-01-01T00:00:05.000Z",
    "persistent_storage": false
  },
  "data": [
    {
      "code": "USD",
      "name": "US Dollar"
    },
    {
      "code": "EUR",
      "name": "Euro"
    }
  ]
}

通貨名はIntl.DisplayNamesで表示します。認識できない資産はコードのままです。最新データに存在するコードだけを返します。

GET /api/rates/history

過去の日付のレートは/v1/history、期間別データは/v1/seriesで取得できます。

パラメーター型必須初期値説明
fromstring任意USD換算元
tostring任意EUR換算先
periodenum任意1M1D | 1W | 1M | 3M | 1Y
cURL
curl --request GET 'https://lumeexchangerates.com/api/rates/history?from=USD&to=EUR&period=1W'

以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。

JSON
{
  "meta": {
    "kind": "utc_daily",
    "from": "USD",
    "to": "EUR",
    "period": "1W",
    "provider": "外部為替データ提供元",
    "persistent_storage": false
  },
  "data": [
    {
      "time": "2026-01-01",
      "value": 0.9
    },
    {
      "time": "2026-01-02",
      "value": 0.91
    }
  ]
}

1Wは7日前から、1M・3M・1Yは暦上の期間から始まり、すべて昨日で終わります。未完了のUTC当日は除外します。月末と閏年を補正し、長い期間は暦月ごとに分割後、日付順に統合して重複を除きます。

パラメーター型説明
data[].timestring | integer日次: YYYY-MM-DD (UTC)。日中: UNIX秒。
data[].valuenumberrates[to] / rates[from]
meta.kindstringutc_daily | intraday
JSON
{
  "meta": {
    "kind": "intraday",
    "persistent_storage": false
  },
  "data": []
}

収集サービス未接続時、1DはHTTP 200と空配列を返します。これはエラーや分単位データではありません。過去の期間に存在しない通貨は照会できない場合があります。

GET /api/rates/previous

前UTC日

パラメーター型必須初期値説明
fromstring任意USD換算元
tostring任意EUR換算先
cURL
curl --request GET 'https://lumeexchangerates.com/api/rates/previous?from=USD&to=EUR'

以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。

JSON
{
  "meta": {
    "kind": "utc_daily",
    "reference_date": "2026-01-01",
    "reference_timestamp": "2026-01-01T23:59:59Z"
  },
  "data": {
    "from": "USD",
    "to": "EUR",
    "rate": 0.9,
    "rates": {
      "USD": 1,
      "EUR": 0.9
    }
  }
}

比較基準は前UTC日の提供元の日次レートです。reference_timestampは論理的な日末で、実際の公表時刻ではありません。変化率は(現在値−基準値)/基準値×100です。

POST /api/convert

通貨換算

パラメーター型必須初期値説明
Content-Typeheader必須application/jsonapplication/json
amountnumber必須—0 ≤ amount ≤ 1e15; finite
fromstring必須—換算元
tostring必須—換算先
cURL
curl --request POST 'https://lumeexchangerates.com/api/convert' \
  --header 'Content-Type: application/json' \
  --data '{"amount":100,"from":"USD","to":"EUR"}'

以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。

JSON
{
  "meta": {
    "provider": "外部為替データ提供元",
    "kind": "latest_published",
    "provider_timestamp": 1767225600,
    "published_at": "2026-01-01T00:00:00.000Z",
    "expected_interval_seconds": 300,
    "lag_seconds": 5,
    "stale": false,
    "timezone": "Asia/Seoul",
    "fetched_at": "2026-01-01T00:00:05.000Z",
    "persistent_storage": false
  },
  "data": {
    "amount": 100,
    "from": "USD",
    "to": "EUR",
    "rate": 0.9,
    "result": 90
  }
}

amountはJSON数値で送信します。文字列の"100"は400です。通貨は最新スナップショットに存在する必要があります。計算のみを行い、送金や取引は実行しません。

GET /v1/history

過去の日付のレートは/v1/history、期間別データは/v1/seriesで取得できます。

パラメーター型必須初期値説明
dateYYYY-MM-DD必須—1999-01-01 ≤ date ≤ UTC today
anchorstring任意USD換算元
targetsCSV任意all換算先
cURL
curl --request GET 'https://lumeexchangerates.com/v1/history?date=2026-01-01&anchor=EUR&targets=USD,JPY'

以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。

JSON
{
  "meta": {
    "date": "2026-01-01",
    "published_at": "2026-01-01T23:00:00Z",
    "partial_day": false
  },
  "anchor": "EUR",
  "data": [
    {
      "currency": "USD",
      "value": 1.1
    }
  ]
}
パラメーター型説明
meta.partial_daybooleanUTC日次参考レート
meta.published_atISO 8601 UTC最新公表レート

GET /v1/series

過去の日付のレートは/v1/history、期間別データは/v1/seriesで取得できます。

パラメーター型必須初期値説明
start / endYYYY-MM-DD必須—1999-01-01 ≤ start ≤ end < UTC today; ≤ 366 days inclusive
anchor / targetsstring / CSV任意USD / allsame as /v1/quotes
cURL
curl --request GET 'https://lumeexchangerates.com/v1/series?start=2026-01-01&end=2026-01-07&anchor=USD&targets=EUR'

以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。

JSON
{
  "meta": {
    "start": "2026-01-01",
    "end": "2026-01-02",
    "timezone": "UTC",
    "count": 2
  },
  "anchor": "USD",
  "data": [
    {
      "date": "2026-01-01",
      "rates": [
        {
          "currency": "EUR",
          "value": 0.9
        }
      ]
    },
    {
      "date": "2026-01-02",
      "rates": [
        {
          "currency": "EUR",
          "value": 0.91
        }
      ]
    }
  ]
}

/v1/candlesのOHLCには提供元の利用権限が必要です。/v1/capabilitiesで機能を確認してください。提供範囲は接続プランに従います。

JSON
{
  "timezone": "UTC",
  "date_bounds": "inclusive",
  "max_days": 366,
  "upstream_chunk": "calendar_month"
}

GET /v1/candles

/v1/candlesのOHLCには提供元の利用権限が必要です。/v1/capabilitiesで機能を確認してください。提供範囲は接続プランに従います。

パラメーター型必須初期値説明
startYYYY-MM-DDTHH:mm:00Z必須—UTC; completed period only; ≥ 2016-12-19
periodenum必須—1m | 5m | 15m | 30m | 1h | 12h | 1d | 1w | 1mo
anchor / targetsstring / CSV任意USD / allprovider base / symbols
cURL
curl --request GET 'https://lumeexchangerates.com/v1/candles?start=2026-01-01T00%3A00%3A00Z&period=1d&anchor=USD&targets=EUR'

以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。

JSON
{
  "meta": {
    "start": "2026-01-01T00:00:00Z",
    "end": "2026-01-01T23:59:59Z",
    "period": "1d"
  },
  "anchor": "USD",
  "data": [
    {
      "currency": "EUR",
      "open": 0.9,
      "high": 0.92,
      "low": 0.89,
      "close": 0.91,
      "average": 0.905
    }
  ]
}
JSON
{
  "source": "provider_ohlc",
  "synthetic": false,
  "cross_rate_ohlc": false,
  "max_age": {
    "1m": "1h",
    "5m": "24h",
    "15m": "24h",
    "30m": "32d",
    "1h": "32d"
  },
  "alignment_minutes": {
    "5m": 5,
    "15m": 15,
    "30m": 30,
    "1h": 30,
    "12h": 30,
    "1d": 30
  },
  "calendar_alignment": {
    "1w": "00:00 UTC",
    "1mo": "YYYY-MM-01T00:00:00Z"
  }
}

GET /v1/capabilities

提供範囲

パラメーター: —

cURL
curl --request GET 'https://lumeexchangerates.com/v1/capabilities'

以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。

JSON
{
  "data": {
    "latest": true,
    "currencies": true,
    "conversion": "latest_snapshot",
    "historical": "verified_on_request",
    "time_series": true,
    "ohlc": false,
    "refresh_interval_seconds": 300,
    "customer_api_keys": false
  }
}

/v1/candlesのOHLCには提供元の利用権限が必要です。/v1/capabilitiesで機能を確認してください。提供範囲は接続プランに従います。

データと精度

レートは参考値であり、銀行の取引価格や約定を保証しません。同じレート集合で換算し、表示や決済時に丸めてください。

Formula
rate = rates[to] / rates[from]
result = amount * rate

固定小数点で切り捨てません。表示や会計方針に合わせて最後に丸めてください。

JPYを含め元通貨1単位で計算します。100単位表示が必要なら表示時だけ100倍します。JavaScriptの二進浮動小数点誤差を考慮し、決済には明確な小数点・丸め規則を適用してください。

時刻と日付

UNIX時刻はUTC秒、ISO時刻はZ表記です。日次UTC日付は現地の日付と異なる場合があります。画面はブラウザの時間帯を使用します。meta.timezoneは表示用ヒントで、timestampの基準を変えません。

パラメーター型説明
/v1 meta.as_ofISO 8601 | YYYY-MM-DD提供元の基準時刻
/v1 meta.refresh_interval_secondsintegerキャッシュ
/v1 meta.currency_countinteger現在…通貨に対応
/v1 meta.modeprovider | dailyデータ提供元
/api meta.published_atISO 8601 UTC最新公表レート
history data[].timeYYYY-MM-DD UTC | UNIX secondsUTC日次参考レート

エラー

HTTPcode説明
400INVALID_CURRENCY / INVALID_INPUT / INVALID_CONVERSION / INVALID_JSON / INVALID_PERIOD0以上の金額を入力してください
405METHOD_NOT_ALLOWEDGET: /v1/*, /api/rates/*, /api/currencies; POST: /api/convert
404NOT_FOUND/api/rates/*
422HISTORY_NOT_IN_PLAN / DATA_UNAVAILABLE提供範囲
429RATE_LIMITED/api/* · 90 / IP / minute
404NOT_FOUNDUnknown /v1 endpoint
422FEATURE_NOT_IN_PLAN / HISTORY_NOT_IN_PLAN / OHLC_NOT_IN_PLAN提供範囲
400INVALID_DATE / INVALID_DATE_RANGE / INVALID_PERIOD / INCOMPLETE_PERIOD0以上の金額を入力してください
503PROVIDER_UNAVAILABLE / DATA_UNAVAILABLE / SERVICE_UNAVAILABLEレートを取得できません。後でもう一度お試しください。
JSON
{
  "error": {
    "code": "INVALID_CURRENCY",
    "message": "Symbol not available in latest provider data"
  }
}

messageは省略される場合があります。HTTPステータスとerror.codeで処理を分けてください。入力を修正して再試行し、429や一時的な503には回数制限付きの指数バックオフとジッターを使います。Retry-Afterは保証しません。

制限とキャッシュ

最新データはキャッシュされ、現在の設定は5分更新です。/apiはIPごとに毎分90回。Worker直接接続ではインスタンス内、Redis接続時は全体で制限します。/v1の予定プラン制限は未適用です。

応答はCache-Control: no-storeです。ブラウザの応答キャッシュとサーバーの提供元キャッシュは別です。公表時刻でスナップショットを再利用してください。障害中は最終正常値を返す場合があるためstaleかas_ofを確認します。直接接続のWorkerキャッシュは永続保存ではありません。

JSON
{
  "endpoints": [
    "/v1/history",
    "/v1/series",
    "/v1/candles",
    "/v1/capabilities"
  ],
  "requests_per_ip_per_minute": 60,
  "cache": "in_process",
  "completed_history_cache_seconds": 3600,
  "current_day_cache_seconds": 60
}

提供範囲

/v1/candlesのOHLCには提供元の利用権限が必要です。/v1/capabilitiesで機能を確認してください。提供範囲は接続プランに従います。

/v1/candlesのOHLCには提供元の利用権限が必要です。/v1/capabilitiesで機能を確認してください。提供範囲は接続プランに従います。

API実行ツール

このサイトのAPIを呼び出せます。提供元のキーはサーバーで保護されます。

リクエスト / cURL
レスポンス / JSON
実行すると実際のJSONレスポンスを表示します。
WELCOME TO LUME EXCHANGE RATES

Lume Exchange Ratesで開発を始めよう

カードなしで実際の為替データを体験できます。無料APIはプレビューです。購入や請求は発生しません。

実データ · 決済不要

SUBSCRIPTION / USD

契約内容の確認

USD建ての定期契約です。確定前に安全な決済画面で税額と合計をご確認ください。

適用税は決済画面に表示されます。 請求ポータルで更新の管理と解約ができます。

Paddle

ACCOUNT / BILLING

サブスクリプション