Kimchi Premium Tracker avatar

Kimchi Premium Tracker

Pricing

from $3.00 / 1,000 result rows

Go to Apify Store
Kimchi Premium Tracker

Kimchi Premium Tracker

Kimchi premium board: Upbit KRW prices vs Binance USDT prices for a token watchlist or the top-turnover KRW markets, with the FX leg anchored on Upbit's own KRW-USDT pair and an optional Telegram alert when the premium crosses a threshold. Live board snapshot per run.

Pricing

from $3.00 / 1,000 result rows

Rating

0.0

(0)

Developer

Philip Kirkbride

Philip Kirkbride

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Security

Limited permissions

Share

Kimchi Premium Tracker (Upbit × Binance)

Track the kimchi premium — the gap between Korean (Upbit KRW) prices and global (Binance USDT) prices — per token, with the KRW/USD rate taken from the market's own KRW-USDT pair. Each run returns one live record per token with both price legs, the implied USD price, the FX rate and the premium percentage. Use it for cross-exchange arbitrage research and Korean retail-flow monitoring, with the option of a Telegram digest when the premium crosses a threshold.

Quick Start

{"tokens": ["BTC", "ETH", "XRP", "SOL"]}

With no watchlist, the run tracks the top KRW markets by 24-hour turnover instead. Watchlist entries that match no Upbit KRW market produce no rows and are listed in the run warnings. An all-unmatched watchlist can finish successfully with an empty dataset.

Input

NameTypeDefaultMeaning
tokensarray[]Optional token watchlist, case-insensitive ("BTC" or "KRW-BTC" both work). Empty tracks the top KRW markets by 24h turnover.
topTokensinteger40Board size when no watchlist is given.
alertPremiumPctnumber3Tokens whose premium magnitude reaches this percent go into the Telegram digest. The threshold is symmetric, so deep discounts count too.
telegramChatIdstringemptyChat for the digest; requires the TELEGRAM_BOT_TOKEN secret environment variable.
requestDelaySecsnumber0.25Pause between requests.
maxPlausiblePremiumPctnumber50Suppress premiums whose absolute value exceeds this percent (1–1000). Both price legs are kept. Known symbol collisions are always suppressed, regardless of this setting.

What it returns

One dataset row per token:

FieldMeaning
recordKeyStable key, kimchi:{SYMBOL}.
source, kindRecord source and type.
token, upbitMarket, koreanNameToken symbol, Upbit market and Korean display name.
upbitPriceKrwUpbit last trade price in KRW.
upbitPriceUsdImpliedThe KRW price converted at the run's FX rate.
upbitVolume24hKrw24-hour KRW turnover used for ranking.
upbitTradeAtTimestamp of the Upbit trade.
binanceSymbol, binancePriceUsdtBinance pair and price in USDT, or null for a Korea-only token.
usdtKrwRateThe KRW/USD rate used.
premiumPctThe kimchi premium in percent, rounded to 4 decimal places; null when unavailable or suppressed.
premiumWarningReason a computed premium was suppressed, or null.
marketWarning, priceFluctuationsBoolean Upbit market-warning and price-fluctuation caution flags.
sourceUrl, binanceUrlPublic links to the two price sources.
collectedAtUTC time the snapshot was taken.

The run summary (OUTPUT) reports coverage counters, the alert digest and warnings such as Korea-only tokens with no global pair.

Matching ticker symbols do not guarantee the same asset on both exchanges. Known symbol collisions and price gaps beyond maxPlausiblePremiumPct (default 50% in either direction) get premiumPct: null with a premiumWarning. Both prices are kept for inspection. These checks are safeguards, not proof of asset identity; verify the asset and transfer network before acting. Upbit market warnings remain visible in marketWarning and priceFluctuations.

Output example

Illustrative snapshot:

{"recordKey":"kimchi:BTC","source":"upbit-binance","kind":"kimchi_premium","token":"BTC","upbitMarket":"KRW-BTC","koreanName":"비트코인","upbitPriceKrw":135200000,"upbitPriceUsdImplied":97203.2496944424,"upbitVolume24hKrw":81234567890.0,"upbitTradeAt":"2026-09-06T09:12:45+00:00","binanceSymbol":"BTCUSDT","binancePriceUsdt":96430.1,"usdtKrwRate":1390.9,"premiumPct":0.8018,"premiumWarning":null,"marketWarning":false,"priceFluctuations":false,"sourceUrl":"https://upbit.com/exchange?code=CRIX.UPBIT.KRW-BTC","binanceUrl":"https://www.binance.com/en/trade/BTC_USDT","collectedAt":"2026-09-06T09:12:47Z"}

FAQ

How is the premium computed? ((upbitPriceKrw / usdtKrwRate) / binancePriceUsdt − 1) × 100, with the KRW/USD rate anchored on the market's own KRW-USDT pair rather than a third-party FX feed.

What about tokens listed only in Korea? They keep their Upbit-side record with premiumPct as an explicit null, never guessed, and are named in the run warnings.

How many tokens can I track? Up to 100 watchlist entries, or the top 40 KRW markets by turnover (configurable with topTokens).

Are both spikes and discounts alerted? Yes — the threshold is symmetric, so a deep negative premium alerts exactly like a spike.

Can I get the Telegram digest? Set telegramChatId and provide the TELEGRAM_BOT_TOKEN secret. Without them, the run still collects the board; a failed or skipped send is a warning, not a failed run.

Price

$0.003 per result delivered, plus $0.005 per run start. The run-start event is charged per GB of memory; the default 512 MB run is one start event. The start is charged even if the run saves no results. Platform usage is included in these prices.

For support, contact Apify support and include the Actor run ID.