概要
Lume Exchange Ratesは為替比較、通貨換算、過去の推移を一か所にまとめます。旅行の予算、海外価格の比較、製品開発に必要な通貨を選べます。
現在の提供元は外部為替データ提供元です。最新レートには提供元と公表時刻が含まれます。通貨の提供範囲は実際のデータに基づきます。
クイックスタート
最初に通貨一覧を取得し、anchorとtargetsを指定してください。フィールド名と通貨コードは表示言語にかかわらず共通です。
curl --request GET 'https://lumeexchangerates.com/v1/quotes?anchor=USD&targets=EUR,JPY'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 URL | URL | https://lumeexchangerates.com |
| Content-Type | header | application/json |
| Customer API key | — | ホスト型プレビューはブラウザーのログインセッションを使用します。顧客別APIキーは未対応です。 |
| Provider App ID | server secret | OPEN_EXCHANGE_RATES_APP_ID |
| CORS | same-origin | 現在、クロスオリジンを許可するヘッダーは返しません。 |
Authorization: TokenはLume Exchange Ratesサーバーが外部為替データ提供元に接続する際だけ使用します。顧客用認証ではありません。アクセス制限の応答はHTMLやリダイレクトの場合があるため、HTTPステータスとContent-Typeを先に確認してください。
エンドポイント
| Method | Path | 説明 |
|---|---|---|
| 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/candles | OHLC |
| 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 --request GET 'https://lumeexchangerates.com/v1/currencies'以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。
{
"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[].code | string | 大文字の通貨コード。代替資産には4文字以上やアンダースコアを含むコードもあります。 |
| data[].name | string | 提供元の通貨名。名前がない場合はコードを返します。 |
GET /v1/quotes
基準通貨。既定はUSD。提供元の全対応コードを指定できます。
| パラメーター | 型 | 必須 | 初期値 | 説明 |
|---|---|---|---|---|
| anchor | string | 任意 | USD | 基準通貨。既定はUSD。提供元の全対応コードを指定できます。 |
| targets | string | 任意 | すべて | カンマ区切りの対象通貨。省略すると全対応通貨を返します。 |
curl --request GET 'https://lumeexchangerates.com/v1/quotes?anchor=USD&targets=EUR,JPY'以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。
{
"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になります。
| パラメーター | 型 | 説明 |
|---|---|---|
| anchor | string | 基準通貨。既定はUSD。提供元の全対応コードを指定できます。 |
| data[].currency | string | 換算先 |
| data[].value | number | rates[currency] / rates[anchor] |
GET /v1/exchange
換算する0以上の数値。
| パラメーター | 型 | 必須 | 初期値 | 説明 |
|---|---|---|---|---|
| from | string | 任意 | USD | 元の通貨コード。既定はUSD。 |
| to | string | 任意 | KRW | 換算先の通貨コード。既定はKRW。 |
| quantity | number | 任意 | 1 | 換算する0以上の数値。 |
curl --request GET 'https://lumeexchangerates.com/v1/exchange?from=USD&to=EUR&quantity=100'以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。
{
"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.rate | number | rates[to] / rates[from] |
| data.result | number | quantity × rate |
GET /api/rates/latest
最新公表レート
パラメーター: —
curl --request GET 'https://lumeexchangerates.com/api/rates/latest'以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。
{
"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.base | string | USD |
| data.rates | object | 利用可能なUSD基準レート。通貨の利用可否は最新レスポンスで確認します。 |
| meta.provider_timestamp | integer | UTC · UNIX seconds |
| meta.published_at | string | ISO 8601 · UTC |
| meta.fetched_at | string | サーバーが取得した時刻。提供元の公表時刻とは異なります。 |
| meta.expected_interval_seconds | integer | seconds |
| meta.stale | boolean | 経過時間がmax(想定更新間隔×3, 900秒)を超えるとtrueです。 |
| meta.lag_seconds | integer | 提供元の公表からの経過秒数。 |
| meta.persistent_storage | boolean | 永続的な収集サービスに接続しているかどうか。 |
| meta.kind | string | latest_published | utc_daily |
GET /api/currencies
通貨
| パラメーター | 型 | 必須 | 初期値 | 説明 |
|---|---|---|---|---|
| lang | string | 任意 | en | en / ko / ja / zh / es / hi / bn / de / fr / nl / pt / it / ru / vi / th / ar / id / ur |
curl --request GET 'https://lumeexchangerates.com/api/currencies?lang=en'以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。
{
"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で取得できます。
| パラメーター | 型 | 必須 | 初期値 | 説明 |
|---|---|---|---|---|
| from | string | 任意 | USD | 換算元 |
| to | string | 任意 | EUR | 換算先 |
| period | enum | 任意 | 1M | 1D | 1W | 1M | 3M | 1Y |
curl --request GET 'https://lumeexchangerates.com/api/rates/history?from=USD&to=EUR&period=1W'以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。
{
"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[].time | string | integer | 日次: YYYY-MM-DD (UTC)。日中: UNIX秒。 |
| data[].value | number | rates[to] / rates[from] |
| meta.kind | string | utc_daily | intraday |
{
"meta": {
"kind": "intraday",
"persistent_storage": false
},
"data": []
}収集サービス未接続時、1DはHTTP 200と空配列を返します。これはエラーや分単位データではありません。過去の期間に存在しない通貨は照会できない場合があります。
GET /api/rates/previous
前UTC日
| パラメーター | 型 | 必須 | 初期値 | 説明 |
|---|---|---|---|---|
| from | string | 任意 | USD | 換算元 |
| to | string | 任意 | EUR | 換算先 |
curl --request GET 'https://lumeexchangerates.com/api/rates/previous?from=USD&to=EUR'以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。
{
"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-Type | header | 必須 | application/json | application/json |
| amount | number | 必須 | — | 0 ≤ amount ≤ 1e15; finite |
| from | string | 必須 | — | 換算元 |
| to | string | 必須 | — | 換算先 |
curl --request POST 'https://lumeexchangerates.com/api/convert' \
--header 'Content-Type: application/json' \
--data '{"amount":100,"from":"USD","to":"EUR"}'以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。
{
"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で取得できます。
| パラメーター | 型 | 必須 | 初期値 | 説明 |
|---|---|---|---|---|
| date | YYYY-MM-DD | 必須 | — | 1999-01-01 ≤ date ≤ UTC today |
| anchor | string | 任意 | USD | 換算元 |
| targets | CSV | 任意 | all | 換算先 |
curl --request GET 'https://lumeexchangerates.com/v1/history?date=2026-01-01&anchor=EUR&targets=USD,JPY'以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。
{
"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_day | boolean | UTC日次参考レート |
| meta.published_at | ISO 8601 UTC | 最新公表レート |
GET /v1/series
過去の日付のレートは/v1/history、期間別データは/v1/seriesで取得できます。
| パラメーター | 型 | 必須 | 初期値 | 説明 |
|---|---|---|---|---|
| start / end | YYYY-MM-DD | 必須 | — | 1999-01-01 ≤ start ≤ end < UTC today; ≤ 366 days inclusive |
| anchor / targets | string / CSV | 任意 | USD / all | same as /v1/quotes |
curl --request GET 'https://lumeexchangerates.com/v1/series?start=2026-01-01&end=2026-01-07&anchor=USD&targets=EUR'以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。
{
"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で機能を確認してください。提供範囲は接続プランに従います。
{
"timezone": "UTC",
"date_bounds": "inclusive",
"max_days": 366,
"upstream_chunk": "calendar_month"
}GET /v1/candles
/v1/candlesのOHLCには提供元の利用権限が必要です。/v1/capabilitiesで機能を確認してください。提供範囲は接続プランに従います。
| パラメーター | 型 | 必須 | 初期値 | 説明 |
|---|---|---|---|---|
| start | YYYY-MM-DDTHH:mm:00Z | 必須 | — | UTC; completed period only; ≥ 2016-12-19 |
| period | enum | 必須 | — | 1m | 5m | 15m | 30m | 1h | 12h | 1d | 1w | 1mo |
| anchor / targets | string / CSV | 任意 | USD / all | provider base / symbols |
curl --request GET 'https://lumeexchangerates.com/v1/candles?start=2026-01-01T00%3A00%3A00Z&period=1d&anchor=USD&targets=EUR'以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。
{
"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
}
]
}{
"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 --request GET 'https://lumeexchangerates.com/v1/capabilities'以下の値と日付は構造説明用で、現在のレートではありません。配列は一部を抜粋しています。実データはAPI実行ツールで確認できます。
{
"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で機能を確認してください。提供範囲は接続プランに従います。
データと精度
レートは参考値であり、銀行の取引価格や約定を保証しません。同じレート集合で換算し、表示や決済時に丸めてください。
rate = rates[to] / rates[from]
result = amount * rate固定小数点で切り捨てません。表示や会計方針に合わせて最後に丸めてください。
JPYを含め元通貨1単位で計算します。100単位表示が必要なら表示時だけ100倍します。JavaScriptの二進浮動小数点誤差を考慮し、決済には明確な小数点・丸め規則を適用してください。
時刻と日付
UNIX時刻はUTC秒、ISO時刻はZ表記です。日次UTC日付は現地の日付と異なる場合があります。画面はブラウザの時間帯を使用します。meta.timezoneは表示用ヒントで、timestampの基準を変えません。
| パラメーター | 型 | 説明 |
|---|---|---|
| /v1 meta.as_of | ISO 8601 | YYYY-MM-DD | 提供元の基準時刻 |
| /v1 meta.refresh_interval_seconds | integer | キャッシュ |
| /v1 meta.currency_count | integer | 現在…通貨に対応 |
| /v1 meta.mode | provider | daily | データ提供元 |
| /api meta.published_at | ISO 8601 UTC | 最新公表レート |
| history data[].time | YYYY-MM-DD UTC | UNIX seconds | UTC日次参考レート |
エラー
| HTTP | code | 説明 |
|---|---|---|
| 400 | INVALID_CURRENCY / INVALID_INPUT / INVALID_CONVERSION / INVALID_JSON / INVALID_PERIOD | 0以上の金額を入力してください |
| 405 | METHOD_NOT_ALLOWED | GET: /v1/*, /api/rates/*, /api/currencies; POST: /api/convert |
| 404 | NOT_FOUND | /api/rates/* |
| 422 | HISTORY_NOT_IN_PLAN / DATA_UNAVAILABLE | 提供範囲 |
| 429 | RATE_LIMITED | /api/* · 90 / IP / minute |
| 404 | NOT_FOUND | Unknown /v1 endpoint |
| 422 | FEATURE_NOT_IN_PLAN / HISTORY_NOT_IN_PLAN / OHLC_NOT_IN_PLAN | 提供範囲 |
| 400 | INVALID_DATE / INVALID_DATE_RANGE / INVALID_PERIOD / INCOMPLETE_PERIOD | 0以上の金額を入力してください |
| 503 | PROVIDER_UNAVAILABLE / DATA_UNAVAILABLE / SERVICE_UNAVAILABLE | レートを取得できません。後でもう一度お試しください。 |
{
"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キャッシュは永続保存ではありません。
{
"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を呼び出せます。提供元のキーはサーバーで保護されます。
実行すると実際のJSONレスポンスを表示します。