Websocket API

Real-time exchange announcements and listings via WebSocket by Coin Listingarrow-up-right

Connection

ws://tokyo.coinlisting.pro:8765/feed?key=YOUR_API_KEY
ws://tokyo.coinlisting.pro:8765/listings?key=YOUR_API_KEY

Authenticate by passing your license key as a query parameter.

Channels

Channel
Description

/feed

All announcements from all sources (unfiltered)

/listings

Only listing-related announcements (filtered by keyword rules)

The /listings channel forwards only listing-related events: new spot/futures listings, delistings, launchpool/launchpad/megadrop, pre-market launches, and KRW/BTC market additions. Maintenance, airdrops, trading pair updates, and other non-listing announcements are filtered out.

Filtering is keyword-based. If an exchange changes their announcement format, some listings may not pass through until the filter is updated. For maximum reliability, use +/feed and apply your own filtering logic. Message format is identical on both channels.

Messages

Connection Confirmation

Sent immediately after successful authentication. Contains sent_time for measuring initial latency.

{
  "type": "connection",
  "status": "connected",
  "username": "your_username",
  "expiry": "2026-12-31 00:00:00",
  "sources": ["BINANCE", "UPBIT", "BITHUMB", "COINBASE", "BINANCE_ALPHA"],
  "sent_time": 1770044622132,
  "sent_time_iso": "2026-02-02T15:03:42.132000+00:00"
}

Announcement

Incoming announcement from an exchange.

Field
Type
Description

source

string

Exchange identifier (see Sources)

title

string

Announcement text

url

string | null

Link to the original announcement

sent_time

integer

Server timestamp in Unix milliseconds

sent_time_iso

string

Server timestamp in ISO 8601 format (UTC)

Twitter-sourced messages include two additional fields:

Field
Type
Description

twitter_user

string

Twitter handle (e.g. CoinbaseMarkets)

twitter_id

string

Tweet ID

Keep-alive

The server uses standard WebSocket ping/pong to detect dead connections. Most libraries handle this automatically — no action required.

Optionally, you can send an application-level ping to measure latency:

Sources

Source
Description

BINANCE

Binance official announcements

UPBIT

Upbit listing notices

BITHUMB

Bithumb listing notices

COINBASE

Coinbase Markets listings

BINANCE_ALPHA

Binance Alpha announcements

Rate Limits

  • Max 15 concurrent connections per IP

  • Max 2 distinct IPs per account

  • Failed authentication attempts are rate-limited

Error Codes

Code
Reason

1008

Missing key — no key parameter provided

1008

Unknown channel — invalid path (use /feed or /listings)

1008

License not found — invalid key

1008

License expired — key has expired

1008

Too many connections — IP connection limit reached

1008

Too many IPs — account IP limit reached

1008

Too many attempts — rate limited after failed auth

Examples

Output:

Last updated