文件 /

API 參考

REST 概覽:認證、限額、資料新鮮度欄位、endpoint 同錯誤。

認證同限額

資料 endpoint 可以匿名試用:每個 IP 每分鐘 12 次、每小時 100 次。加 key 之後用帳戶每月額度。

bash · header
Authorization: Bearer YOUR_KEY
X-RateLimit-Remaining: 9999
X-RateLimit-Reset: 1788220800

解釋資料新鮮度嘅欄位

`source` 係來源類別,`market_session` 係市場狀態,`data_updated_at` 係對回應有貢獻的最早觀測時間。三個都應該保存。

Endpoints

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帳戶、方案、現有 key 同今月用量。

日內序列與涵蓋範圍

/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 參考