Kimchi Premium API
A free, no-key JSON API for the live gap between Korean (Upbit) and global (Binance) crypto prices. CORS-enabled, updated every minute.
Free to use. No API key, no sign-up, callable from any origin.
Base URL
https://gfreee.com/api/v1
1. Live premium — all coins
GET /api/v1/kimchi-premium
Latest premium for every tracked coin.
{
"result": "ok",
"updated_at": "2026-08-19T11:00:00",
"count": 10,
"note": "USDT-based premium...",
"data": [
{
"symbol": "BTC",
"name": "Bitcoin",
"premium_pct": 0.035,
"upbit_krw": 90447000,
"binance_usdt": 64444.01,
"usdt_krw": 1403,
"snapshot_at": "2026-08-19T11:00:00"
}
]
}
2. Daily history — one coin
GET /api/v1/kimchi-premium/{symbol}/daily
Daily open / high / low / close / average premium for a single coin.
{
"result": "ok",
"symbol": "BTC",
"name": "Bitcoin",
"count": 5,
"data": [
{ "date": "2026-08-19", "open_pct": -0.02, "high_pct": 0.10,
"low_pct": -0.18, "close_pct": -0.01, "avg_pct": -0.03, "samples": 300 }
]
}
Fields
premium_pct— premium in percent. Positive = more expensive in Korea; negative = reverse premium.upbit_krw— Upbit last price in KRW.binance_usdt— Binance last price in USDT.usdt_krw— Upbit KRW-USDT, used as the FX rate.snapshot_at— sample time (KST).
Example — JavaScript
fetch('https://gfreee.com/api/v1/kimchi-premium')
.then(r => r.json())
.then(d => {
d.data.forEach(c => console.log(c.symbol, c.premium_pct + '%'));
});
Example — Python
import requests
r = requests.get('https://gfreee.com/api/v1/kimchi-premium')
for c in r.json()['data']:
print(c['symbol'], c['premium_pct'], '%')
Notes & limits
- Data is sampled once per minute. Do not poll faster than that — it will not be fresher.
- Responses carry
Cache-Control: max-age=30. Respect it. - This is a best-effort free service with no uptime guarantee. Not investment advice.
- The premium uses the USDT rate, not a bank rate — see the methodology.