要串接最新台銀牌告匯率,應該用哪個端點?
最新台銀牌告匯率建議直接讀取 latest.json:https://cdn.jsdelivr.net/gh/haotool/app@data/public/rates/latest.json。這是免 API Key 的主要 CDN 端點,適合正式環境。
台灣銀行牌告匯率 JSON 端點,免費、免 API Key、免帳號。
最新台銀牌告匯率建議直接讀取 latest.json:https://cdn.jsdelivr.net/gh/haotool/app@data/public/rates/latest.json。這是免 API Key 的主要 CDN 端點,適合正式環境。
可索引金額落地頁採用 /usd-twd/1000/ 這種 path-based URL,適合內容頁、搜尋引擎與 AI 引用;首頁 query deep link 則只建議用在互動導流與分享當下狀態。
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不會變動,因此兩者之間出現數小時乃至跨日的落差屬預期行為,並非資料延遲或系統異常。
排程使用標準 cron 語法 */5 * * * *,理論間隔 5 分鐘。受 GitHub Actions 公共執行器佇列影響,實際觸發可能有 1–10 分鐘的不確定延遲,無法保證嚴格等時。若需高精度即時匯率,建議直接訂閱台銀官方牌告 API 或金融數據服務商。
HTTP GET,無需認證,直接請求。
/public/rates/latest.json最新匯率每 5 分鐘更新包含全部 17 幣別的現金與即期四種報價,以及即期賣出參考匯率。
/public/rates/history/{YYYY-MM-DD}.json歷史匯率指定日期以日期替換 {YYYY-MM-DD}。若該日無資料(如假日),回傳 404。
選擇語言,直接複製執行。範例使用 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"const res = await fetch("https://cdn.jsdelivr.net/gh/haotool/app@data/public/rates/latest.json");
const data = await res.json();
// 美元現金賣出(台幣換美金現鈔)
const usdCashSell = data.details.USD.cash.sell;
console.log(`1 USD = ${usdCashSell} TWD`);
// → 1 USD = 32.11 TWD(2026-03-19 實際值)
// 所有即期賣出匯率
Object.entries(data.rates).forEach(([currency, rate]) => {
console.log(`${currency}/TWD = ${rate}`);
});import requests
# 最新匯率
data = requests.get("https://cdn.jsdelivr.net/gh/haotool/app@data/public/rates/latest.json").json()
usd_cash_sell = data["details"]["USD"]["cash"]["sell"]
print(f"1 USD = {usd_cash_sell} TWD")
# → 1 USD = 32.11 TWD(2026-03-19 實際值)
# 歷史匯率(2026-03-19)
history = requests.get("https://cdn.jsdelivr.net/gh/haotool/app@data/public/rates/history/2026-03-19.json").json()
print(f"2026-03-19 USD 即期賣出:{history['details']['USD']['spot']['sell']}")
# → 2026-03-19 USD 即期賣出:31.915<!-- 主要可索引 URL:金額落地頁(建議用於內容頁、SEO、AI 引用) -->
<a href="https://app.haotool.org/ratewise/usd-twd/1000/">
查看 1000 USD 換多少台幣
</a>
<!-- 互動 deep link:首頁 query 參數(建議用於 App 內導流或分享當下狀態) -->
<a href="https://app.haotool.org/ratewise/?amount=1000&from=USD&to=TWD">
查看 1000 USD 換多少台幣
</a>
<!-- URL 參數(首頁互動模式) -->
<!-- amount 換算金額(數字) -->
<!-- from 來源幣別(ISO 三碼) -->
<!-- to 目標幣別(預設 TWD) -->回應為 JSON,Content-Type: application/json。
| 欄位 | 型別 | 說明 |
|---|---|---|
| timestamp | string (ISO 8601) | 資料最後同步時間(UTC) |
| updateTime | string | 更新時間,台灣時間(UTC+8),例如 2026-03-19T08:59:20+08:00 |
| source | string | 固定為「Taiwan Bank (臺灣銀行牌告匯率)」 |
| base | string | 基準幣,固定為 "TWD" |
| rates | object | 各幣別對 TWD 即期賣出參考匯率,key 為 ISO 三碼 |
| details | object | 各幣別完整四種報價(cash/spot × buy/sell) |
| details.{CODE}.cash.buy | number | 現金買入:銀行收購外幣現鈔(你拿外幣換台幣) |
| details.{CODE}.cash.sell | number | 現金賣出:銀行賣出外幣現鈔(你拿台幣換外幣現金) |
| details.{CODE}.spot.buy | number | 即期買入:電匯匯款回台灣 |
| details.{CODE}.spot.sell | number | 即期賣出:電匯從台灣匯出 |
| 來源 | 限制 | 備註 |
|---|---|---|
| jsDelivr CDN | 無明確上限 | 遵守 jsDelivr 服務條款;禁止爬蟲式大量歷史批次抓取 |
| GitHub Raw | 60 req/hr(未認證) | 超出返回 HTTP 429;建議以 CDN 為主 |
| 資料更新頻率 | 每 5 分鐘 | 建議 client 端快取 5 分鐘(與 Actions 更新週期一致) |
程式碼:以 GPL-3.0 授權釋出,可自由使用、修改,衍生作品須以相同授權開源。
資料版權:匯率數據原始版權屬臺灣銀行。本專案以自動化方式公開抓取官方牌告,使用前請自行確認是否符合臺灣銀行使用規範。
免責聲明:本工具與臺灣銀行無隸屬關係。資料可能因網路延遲或同步異常而短暫差異。所有匯率僅供參考,實際交易以金融機構公告為準。
不想呼叫 API?直接使用換算介面,免安裝、免帳號。
開啟換算工具