Upbit Delisting Alert — 유의종목 & 상장폐지 in real time

Upbit is Korea's dominant exchange, and its removals carry outsized weight. An Upbit 상장폐지 (delisting) or a 유의종목 (investment warning) can reprice a token in seconds. CryptoListing.ws pushes both, as structured JSON over WebSocket, the moment Upbit publishes them — with a Seoul endpoint built for Upbit trading bots.

The Upbit caution lifecycle

Upbit does not delist a coin without warning. Tokens move through a multi-stage caution lifecycle, and each stage is announced on Upbit's official notice channel. Understanding the stages is what lets you tell a survivable scare from a terminal removal.

StageKoreanWhat it means
Investment warning유의종목 지정The coin is flagged for review. Still trading, but formally cautioned. Can be lifted or escalate.
Warning extended유의종목 연장The review window is prolonged — uncertainty persists.
Warning lifted유의종목 해제The coin clears review and the caution is removed. Often a relief bounce.
Delisting상장폐지The pair is permanently removed on a stated effective date. Terminal.

The feed narrows this lifecycle to the two stages that actually drive trades: the delisting itself and the warning being lifted. The lift matters because a coin that survives review frequently rebounds — a distinct, tradable event rather than just the absence of bad news.

Two event types for Upbit

SignalKoreanlistingType
Spot pair delisted상장폐지spot_delisting
Investment warning lifted유의종목 해제caution_released

Both arrive on the same WebSocket as new-listing events, distinguished by listingType, so a single connection covers Upbit listings, delistings and caution releases together. For the listing side, see the Upbit listing alert overview.

Push over WebSocket, not REST polling

Most Upbit delisting trackers poll Upbit's REST notice endpoint on a timer — often every 30 minutes, sometimes as tight as 60 seconds. On a delisting, that interval is your worst-case blind spot: a 상장폐지 notice that lands right after a poll waits out the remainder of the cycle before it surfaces. CryptoListing.ws instead pushes the event to every connected client over WebSocket the instant Upbit publishes it — no poll cadence to wait out, millisecond-class delivery of a structured event. You measure the network leg yourself using the timestamps in each message. (Note: Upbit's own native market-data WebSocket streams ticker and order-book data for pairs that already trade — it does not carry notice-board announcements.)

Message shape

Titles are carried verbatim, so Korean text comes through as-is. Treat ticker as potentially comma-separated: one Upbit notice can cover several coins.

{
  "type": "announcement",
  "title": "[거래] TOKEN(TOKEN) 원화 마켓 상장폐지 안내",
  "ticker": "TOKEN",
  "publisher": "upbit",
  "listingType": "spot_delisting",
  "detectedTimestampUs": 1710345000005000,
  "dispatchTimestampUs": 1710345000006000
}

Connect from Seoul

Authenticate with an X-API-Key header on the upgrade. Korea-based bots should use the Seoul endpoint, which streams Upbit only and drops the Seoul→Tokyo hop.

# pip install "websockets>=14"  — the 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["listingType"] in ("spot_delisting", "caution_released"):
                for ticker in msg["ticker"].split(","):
                    print(msg["listingType"], ticker, msg["title"])

asyncio.run(run())

Reading the two signals

A spot_delisting and a caution_released point in opposite directions, and treating them as one bucket loses most of the edge. A 상장폐지 is a scheduled negative catalyst: liquidity thins toward the effective date, so the reaction to the announcement itself is where the move concentrates. A caution_released, by contrast, resolves an overhang — a coin that had been under 유의종목 review clears it, and the relief is frequently a sharp bounce off a depressed base. Because both events name the same set of tickers over time, keeping a small in-memory record of which coins are currently under warning lets you interpret a later release with full context: this is not a fresh coin, it is a survivor.

Whatever the strategy — exiting an at-risk position, hedging on a venue that still lists the token, or trading the reaction directly — the announcement is the trigger and everything after it is decay. That is the whole reason to receive it as a push rather than to discover it on the next poll.

FAQ

What is 유의종목?

An investment-warning designation on a coin that keeps trading. It flags elevated risk and can be lifted (caution_released) or escalate to a 상장폐지 delisting. It is a warning, not a removal.

How fast do I get an Upbit delisting alert?

The event is pushed the instant Upbit publishes the notice — millisecond-class delivery of a structured JSON message rather than a poll snapshot. Each message carries microsecond-precision timestamps so you can measure end-to-end performance yourself.

Does the feed cover Upbit listings too?

Yes. New listings, caution releases and delistings all arrive on the same connection, distinguished by listingType. See the Upbit listing alert page for the listing side and the full API reference.

What about Bithumb and Binance delistings?

The same feed covers Bithumb and Binance delistings. The crypto delisting alerts overview ties all three together.

Get your API key

Contact us on Telegram to start streaming Upbit 유의종목 and 상장폐지 alerts. See pricing & tiers or the full documentation.

Get API key on Telegram