開放資料 API

台灣銀行牌告匯率 JSON 端點,免費、免 API Key、免帳號。

18 種幣別每 5 分鐘更新無需 API KeyETag 支援CDN 全球加速

快速答案

要串接最新台銀牌告匯率,應該用哪個端點?

最新台銀牌告匯率建議直接讀取 latest.json:https://cdn.jsdelivr.net/gh/haotool/app@data/public/rates/latest.json。這是免 API Key 的主要 CDN 端點,適合正式環境。

SEO 與 AI 引用應該連到哪種 HaoRate URL?

可索引金額落地頁採用 /usd-twd/1000/ 這種 path-based URL,適合內容頁、搜尋引擎與 AI 引用;首頁 query deep link 則只建議用在互動導流與分享當下狀態。

資料管線

臺灣銀行
rate.bot.com.tw
GitHub Actions
每 5 分鐘
data 分支
latest.json / history/
jsDelivr CDN
全球加速
你的應用
fetch / curl
原始來源
臺灣銀行牌告匯率

官方每日公布,現金買入/賣出、即期買入/賣出四種報價

同步機制
GitHub Actions

每 5 分鐘自動抓取台銀最新牌告,寫入 data 分支 JSON

建議端點
jsDelivr CDN

全球 PoP 加速,無請求上限,支援 ETag 條件式請求。data 分支推送後自動 Purge,新鮮度約 5 分鐘

備援端點
GitHub Raw

無快取,每次直接取最新資料。未認證 IP 每小時 60 次上限

快取建議:CDN 端點支援 If-None-Match ETag 條件式請求, 資料未變時回傳 304(零 body),可節省約 5 KB/次。建議 client 端快取 5 分鐘,避免無意義重複請求。

資料新鮮度與時間戳記說明

欄位意義更新時機
updateTime台銀匯率於本系統最後一次實際變動的時間(台灣時區)僅在 GitHub Actions 偵測到匯率數值與前次不同時才更新;台銀未發布新牌告時即使 Actions 持續執行,此欄位也不會前進
timestamp同上,UTC ISO 8601 格式與 updateTime 同步更新
變動偵測機制

GitHub Actions 每 5 分鐘抓取台銀 CSV 後,會將本次各幣別匯率與前次儲存的rates物件進行 JSON 字串比對。若完全相同,腳本立即結束、不寫檔、不 commit;只有在至少一個幣別數值發生變化時,才會寫入新的latest.json並更新updateTime

為何來源時間與刷新時間差距較大?

應用介面顯示的「來源」時間對應updateTime,代表台銀牌告上次實際更新的時刻;「刷新」時間則是用戶端瀏覽器本次成功取得資料的時刻。臺灣銀行通常每個交易日更新牌告數次(多集中於開盤後),非交易時段、例假日或銀行內部尚未發布新牌告時,updateTime不會變動,因此兩者之間出現數小時乃至跨日的落差屬預期行為,並非資料延遲或系統異常。

Actions 排程說明

排程使用標準 cron 語法 */5 * * * *,理論間隔 5 分鐘。受 GitHub Actions 公共執行器佇列影響,實際觸發可能有 1–10 分鐘的不確定延遲,無法保證嚴格等時。若需高精度即時匯率,建議直接訂閱台銀官方牌告 API 或金融數據服務商。

API 端點

HTTP GET,無需認證,直接請求。

GET/public/rates/latest.json最新匯率每 5 分鐘更新

包含全部 17 幣別的現金與即期四種報價,以及即期賣出參考匯率。

GET/public/rates/history/{YYYY-MM-DD}.json歷史匯率指定日期

以日期替換 {YYYY-MM-DD}。若該日無資料(如假日),回傳 404。

完整 OpenAPI 3.1 規格:/ratewise/openapi.json

快速上手

選擇語言,直接複製執行。範例使用 2026-03-19 真實資料。

# 最新匯率
curl -s "https://cdn.jsdelivr.net/gh/haotool/app@data/public/rates/latest.json" | python3 -m json.tool

# 歷史匯率(2026-03-19)
curl -s "https://cdn.jsdelivr.net/gh/haotool/app@data/public/rates/history/2026-03-19.json"

資料格式

回應為 JSON,Content-Type: application/json

欄位型別說明
timestampstring (ISO 8601)資料最後同步時間(UTC)
updateTimestring更新時間,台灣時間(UTC+8),例如 2026-03-19T08:59:20+08:00
sourcestring固定為「Taiwan Bank (臺灣銀行牌告匯率)」
basestring基準幣,固定為 "TWD"
ratesobject各幣別對 TWD 即期賣出參考匯率,key 為 ISO 三碼
detailsobject各幣別完整四種報價(cash/spot × buy/sell)
details.{CODE}.cash.buynumber現金買入:銀行收購外幣現鈔(你拿外幣換台幣)
details.{CODE}.cash.sellnumber現金賣出:銀行賣出外幣現鈔(你拿台幣換外幣現金)
details.{CODE}.spot.buynumber即期買入:電匯匯款回台灣
details.{CODE}.spot.sellnumber即期賣出:電匯從台灣匯出

支援幣別(18 種,基準幣 TWD)

TWD新台幣(基準幣)JPY日圓KRW韓元CNY人民幣VND越南盾THB泰銖HKD港幣PHP菲律賓披索MYR馬來幣SGD新加坡幣USD美元EUR歐元GBP英鎊CHF瑞士法郎AUD澳幣CAD加幣NZD紐元IDR印尼盾

速率限制

來源限制備註
jsDelivr CDN無明確上限遵守 jsDelivr 服務條款;禁止爬蟲式大量歷史批次抓取
GitHub Raw60 req/hr(未認證)超出返回 HTTP 429;建議以 CDN 為主
資料更新頻率每 5 分鐘建議 client 端快取 5 分鐘(與 Actions 更新週期一致)
允許:個人專案、學術研究、非商業 App、教學、媒體引用
允許:標示「資料來源:臺灣銀行牌告匯率」
⚠️商業用途建議聯繫 haotool.org [at] gmail.com 說明使用情境
禁止:大量爬取歷史資料(對 CDN 或 GitHub 造成異常流量)
禁止:宣稱為官方臺灣銀行 API

授權聲明

程式碼:以 GPL-3.0 授權釋出,可自由使用、修改,衍生作品須以相同授權開源。

資料版權:匯率數據原始版權屬臺灣銀行。本專案以自動化方式公開抓取官方牌告,使用前請自行確認是否符合臺灣銀行使用規範。

免責聲明:本工具與臺灣銀行無隸屬關係。資料可能因網路延遲或同步異常而短暫差異。所有匯率僅供參考,實際交易以金融機構公告為準。

相關資源

常見問題

如何取得最新匯率資料?
直接 GET `https://cdn.jsdelivr.net/gh/haotool/app@data/public/rates/latest.json`,無需 API Key。回傳 JSON 包含 18 種貨幣的現金買入、現金賣出、即期買入、即期賣出四種報價。建議 client 端自行快取 5 分鐘,與資料更新頻率一致,避免無意義重複請求。
jsDelivr CDN 和 GitHub Raw 端點有何差異?
jsDelivr CDN(建議):全球 PoP 節點加速,無明確請求上限,支援 ETag 條件式請求(瀏覽器可讀取 ETag,實作 If-None-Match 省流量)。GitHub Actions 每次推送 data 分支後自動呼叫 jsDelivr Purge API,CDN 快取立即失效,實際新鮮度約 5 分鐘。GitHub Raw(備援):無快取,每次請求直接取得最新版本,但每小時限 60 次請求,CORS 不暴露 ETag,瀏覽器端無法使用條件式請求。
有備援端點嗎?
有。jsDelivr CDN 不可用時會自動切換至 GitHub Raw 端點 `https://raw.githubusercontent.com/haotool/app/data/public/rates/latest.json`,無快取,每次請求直接取得最新資料。注意未認證 IP 每小時限 60 次請求。
如何查詢歷史匯率?
將日期代入路徑:`https://cdn.jsdelivr.net/gh/haotool/app@data/public/rates/history/2026-03-19.json`,支援 18 種貨幣歷史資料。若該日無資料(如假日),伺服器回傳 404。

不想呼叫 API?直接使用換算介面,免安裝、免帳號。

開啟換算工具