Upbit KRW Listing Alert — 원화 마켓 상장
A real-time alert for new listings on Upbit's KRW market (원화 마켓) — the Korean-won pairs that drive the kimchi premium. The instant Upbit publishes a new won-denominated listing, our WebSocket pushes a structured JSON event with the ticker and microsecond timestamps. For a bot trading the Korea gap, the KRW listing announcement is the starting gun.
Why the KRW market is special
Upbit runs three markets — KRW (Korean won), BTC and USDT — but they are not equal in impact. The KRW market is the most active on Korea's largest exchange, and a fresh KRW- listing gives millions of Korean retail traders direct, won-denominated access to a coin for the first time. That concentrated demand is exactly why KRW listings, far more than Upbit's BTC or USDT pairs, are the ones associated with sharp, localized price moves.
When a coin lands on the KRW market, Korean buying can lift its won price above the global average, so the same asset trades richer on Upbit than on offshore venues. That gap is the kimchi premium, and it tends to open fastest in the window right after the KRW listing is announced — before arbitrage and offshore flow close it. Hearing the announcement in real time is what separates trading the premium from watching it.
KRW vs BTC vs USDT listings on Upbit
| Market | Quote | Why it matters |
|---|---|---|
KRW (원화 마켓) | Korean won | Direct retail access for Korean traders — the pair behind the kimchi premium |
BTC | Bitcoin | Crypto-quoted; smaller, more crypto-native flow |
USDT | Tether | Stablecoin-quoted; overlaps more with global pricing |
A single Upbit notice can add a coin to one market or several at once. The announcement event carries the ticker, so your handler can key off the coin and treat a KRW debut as the high-signal case.
How the alert works
CryptoListing.ws watches Upbit's official announcement channel and broadcasts a structured JSON event the instant a new listing is published. Your bot holds one persistent WebSocket connection and receives the event as a push — there is no notice board to scrape on your side. For Korea-based systems there is a Seoul endpoint that streams Upbit announcements exclusively.
| Property | Value |
|---|---|
| Endpoint — Seoul (Upbit-only) | wss://kr.cryptolisting.ws — AWS Seoul (ap-northeast-2c). Fastest end-to-end for Korea-based bots trading Upbit. |
| Endpoint — Tokyo (full feed) | wss://cryptolisting.ws — Binance + Upbit + Bithumb, AWS Tokyo (ap-northeast-1a). |
| Auth | X-API-Key header on the WebSocket upgrade request (same key on both endpoints) |
| Format | Binary frames, UTF-8 JSON, microsecond-precision timestamps |
| Upbit events | spot_listing, caution_released, spot_delisting |
The Seoul endpoint removes the Seoul→Tokyo network hop for bots co-located in Korea, so a Korea-based Upbit strategy sees the lowest end-to-end latency by connecting there. The same API key works on both endpoints — pick by your bot's location.
Connect and catch KRW listings
# pip install "websockets>=14" — header param is additional_headers # (extra_headers was removed in websockets v14+) import asyncio, json, websockets API_KEY = "dsk_your_key_here" WS_URL = "wss://kr.cryptolisting.ws" # Seoul, Upbit-only async def run(): headers = {"X-API-Key": API_KEY} async with websockets.connect(WS_URL, additional_headers=headers) as ws: async for raw in ws: msg = json.loads(raw) if msg.get("type") != "announcement": continue if msg["publisher"] == "upbit" and msg["listingType"] == "spot_listing": for ticker in msg["ticker"].split(","): print("UPBIT LISTING:", ticker, msg["title"]) asyncio.run(run())
The KRW market appears in the announcement title (Upbit's notices name the market, e.g. "KRW Market"), so you can inspect the title to distinguish a KRW debut from a BTC- or USDT-only listing when you need that granularity.
Message format
Every announcement is a single JSON object. The ticker field can be comma-separated when one notice covers several coins, so always split it.
{
"type": "announcement",
"title": "[Trade] New Listing of TOKEN (TOKEN) KRW Market",
"ticker": "TOKEN",
"publisher": "upbit",
"listingType": "spot_listing",
"detectedTimestampUs": 1710345000005000,
"dispatchTimestampUs": 1710345000006000,
"abnormalDetectionLatency": false
}
More than listings: the caution lifecycle
Upbit runs a multi-stage caution track on tokens already trading. The feed narrows this to the two stages that drive trades: caution_released — the caution designation is lifted (유의 종목 지정 해제), often a positive technical signal — and spot_delisting — final removal (거래지원 종료). Branch on listingType to handle each. For the delisting and caution side in depth, see the Upbit caution & delisting write-up.
FAQ
What is the Upbit KRW market (원화 마켓)?
Upbit's Korean won trading market — pairs quoted in KRW such as KRW-BTC. It is the most active market on Korea's largest exchange, and a KRW listing gives Korean retail direct won-denominated access, which is why KRW listings are tied to the kimchi premium.
Why do KRW listings cause the kimchi premium?
Concentrated Korean retail demand right after a KRW listing can push a coin's won price above the global average, so it trades richer on Upbit than offshore. That gap — the kimchi premium — opens fastest right after the announcement.
Which endpoint should a Korea-based bot use?
wss://kr.cryptolisting.ws in AWS Seoul streams Upbit announcements only and removes the Seoul→Tokyo hop, giving Korea-based bots the lowest end-to-end latency. The Tokyo endpoint carries the full multi-exchange feed.
Does it cover Bithumb too?
The Tokyo endpoint also carries Bithumb and Binance. For the native Upbit market-data socket vs the announcement feed, see the Upbit WebSocket guide.
Get your API key
Contact us on Telegram to start streaming Upbit KRW listing alerts. See pricing & tiers, the full documentation, the Upbit listing alert overview, or the kimchi premium deep-dive.
Get API key on Telegram