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认证或公开跨域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大写货币代码。替代资产代码可能超过3个字符或包含下划线。
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所有可用的美元基准汇率;以最新响应确认代码是否可用。
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

不会按固定小数位截断汇率,请在显示或会计计算的最后一步进行舍入。

所有汇率以1单位原始货币计算,包括JPY。需要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_PERIOD请输入大于或等于 0 的金额
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_PERIOD请输入大于或等于 0 的金额
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

确认订阅信息

美元定期订阅。确认前,请在安全支付窗口查看最终税费和总额。

适用税费将在结账时显示。 可在账单门户管理续订或取消订阅。

Paddle

ACCOUNT / BILLING

我的订阅