文档 /

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` 表示对响应有贡献的最早观测时间。建议全部保存。

接口

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 返回单一货币对。
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。密钥必须留在服务器,不能放在 URL 或公开 JavaScript 中。不支持匿名连接。收到 authenticated 后发送 subscribe。支持下列货币;交叉盘要求两条最新观测均未过期且相差不超过 5 秒。状态可能为 unavailable 或 stale。每条获准连接消耗一个月度配额单位。

表中为新账户的限制。现有账户保留 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 参考