💱 Exchange Rate API

API tỷ giá ngoại tệ Vietcombank — miễn phí, cập nhật mỗi 5 phút, không cần API key.

🆓 Miễn phí ⚡ 120 req/phút/IP 🔓 Không cần key 💱 20+ ngoại tệ
Endpoints
GET /exchange-rate — Tất cả tỷ giá GET /exchange-rate/{currency_code} — Tỷ giá 1 ngoại tệ
🏷️ Các ngoại tệ phổ biến
USDUS Dollar
EUREuro
JPYJapanese Yen
GBPPound Sterling
AUDAustralian Dollar
CNYYuan Renminbi
KRWKorean Won
SGDSingapore Dollar
THBThailand Baht
Và nhiều đồng tiền khác: CAD, CHF, HKD, DKK, INR, KWD, MYR, NOK, RUB, SAR, SEK...
GET/exchange-rate

Lấy tỷ giá tất cả ngoại tệ từ Vietcombank — bao gồm giá mua tiền mặt, chuyển khoản và bán ra.

Tham số
Không cần tham số
Response
JSON
{
  "success": true,
  "source": "Vietcombank",
  "updated_at": "2026-03-19 21:02",
  "cached": true,
  "rates": [
    {
      "code": "USD",
      "name": "US DOLLAR",
      "buy": 26055.0,
      "transfer": 26085.0,
      "sell": 26325.0
    },
    {
      "code": "EUR",
      "name": "EURO",
      "buy": 29404.35,
      "transfer": 29701.37,
      "sell": 30954.56
    },
    {
      "code": "DKK",
      "name": "DANISH KRONE",
      "buy": null,
      "transfer": 3964.45,
      "sell": 4116.04
    }
    // ... thêm nhiều ngoại tệ khác
  ]
}
📋 Giải thích từng field:
buy — Tiền mặt (Cash) — giá mua tiền mặt. null nếu VCB không mua tiền mặt loại này
transfer — Chuyển khoản (Transfer/Wire) — tỷ giá chuyển khoản
sell — Bán ra (Sell) — tỷ giá bán
cached — true nếu dữ liệu từ cache server (cập nhật mỗi 5 phút)
source — Nguồn dữ liệu (Vietcombank)
Thử ngay
/api/v1/exchange-rate
GET/exchange-rate/{currency_code}

Lấy tỷ giá 1 ngoại tệ cụ thể. Ví dụ: /exchange-rate/USD để lấy tỷ giá đô la Mỹ.

Tham số
TênKiểuMô tả
currency_codestringrequiredMã ngoại tệ (USD, EUR, JPY, GBP...)
Response
JSON
{
  "success": true,
  "source": "Vietcombank",
  "updated_at": "2026-03-19 21:02",
  "cached": true,
  "rate": {
    "code": "USD",
    "name": "US DOLLAR",
    "buy": 26055.0,
    "transfer": 26085.0,
    "sell": 26325.0
  }
}
Thử ngay
/api/v1/exchange-rate/

💻 Code Examples

JavaScript
// Lấy tất cả tỷ giá
const res = await fetch('https://keoquy.com/api/v1/exchange-rate');
const data = await res.json();

// In tỷ giá USD
const usd = data.rates.find(r => r.code === 'USD');
console.log(`USD Mua: ${usd.buy} — CK: ${usd.transfer} — Bán: ${usd.sell}`);

// Lấy tỷ giá 1 ngoại tệ cụ thể
const eur = await fetch('https://keoquy.com/api/v1/exchange-rate/EUR').then(r => r.json());
console.log(`EUR: Mua ${eur.rate.buy} — Bán ${eur.rate.sell}`);
cURL
# Tất cả tỷ giá
curl "https://keoquy.com/api/v1/exchange-rate"

# Tỷ giá USD
curl "https://keoquy.com/api/v1/exchange-rate/USD"

# Tỷ giá EUR
curl "https://keoquy.com/api/v1/exchange-rate/EUR"

# Tỷ giá JPY
curl "https://keoquy.com/api/v1/exchange-rate/JPY"
Python
import requests  # pip install requests

# Lấy tất cả tỷ giá
data = requests.get("https://keoquy.com/api/v1/exchange-rate").json()

# In tỷ giá từng ngoại tệ
for rate in data["rates"]:
    buy = f"{rate['buy']:,.2f}" if rate['buy'] else "N/A"
    print(f"{rate['code']}: Mua {buy} — CK {rate['transfer']:,.2f} — Bán {rate['sell']:,.2f}")

# Lấy tỷ giá USD
usd = requests.get("https://keoquy.com/api/v1/exchange-rate/USD").json()
print(f"USD: Mua {usd['rate']['buy']} — Bán {usd['rate']['sell']}")

📝 Ghi chú

Đơn vị tỷ giá
• Tỷ giá tính bằng VND cho 1 đơn vị ngoại tệ
• VD: USD buy = 26.055 → 1 USD = 26.055 VND (mua tiền mặt)
• Riêng JPY và KRW: tỷ giá tính cho 1 đơn vị (không phải 100 hay 1000)
Giá trị null ở field buy
• Một số ngoại tệ ít phổ biến (DKK, INR, KWD, MYR, NOK, RUB, SAR, SEK) có buy = null
• Điều này có nghĩa VCB không mua tiền mặt loại đó, chỉ có giá chuyển khoản và bán ra
• Nên luôn kiểm tra buy !== null trước khi sử dụng
Cache & cập nhật
• Dữ liệu được cache 5 phút phía server
• VCB chỉ cho phép 1 request mỗi 5 phút từ upstream — nên dữ liệu sẽ luôn có độ trễ tối đa 5 phút
• Field cached: true cho biết dữ liệu từ cache
Rate limit & nguồn dữ liệu
• Rate limit: 120 requests/phút per IP
• Nguồn dữ liệu: Vietcombank (VCB)
• Miễn phí, không cần API key, không cần đăng ký

⚠️ Error Response

JSON
{ "success": false, "error": "Currency not found" }
// 404 — Mã ngoại tệ không hợp lệ
// 429 — Rate limit exceeded (chờ 1 phút)
// 502 — Upstream lỗi (thử lại sau vài giây)