CEX Token Listings Tracker - New Listings & Delistings
CEX Token Listings Tracker - New Listings & Delistings
Track new token listings and delistings across the largest centralized crypto exchanges. Returns one normalized record per announcement from Binance, OKX, Bybit, KuCoin, Kraken, and Coinbase — with exchange, token symbol, listing type, trading pairs, announcement URL, and timestamps.
CEX Token Listings Tracker Features
- Aggregates six exchanges in a single run with a unified output schema.
- Covers both new listings and delistings — when an exchange has separate feeds for each, both are pulled.
- Classifies every announcement as
spot,futures,margin,earn,delisting, orotherbased on title and category signals. - Best-effort parses the token symbol, full project name, and trading pairs from each announcement title.
- Filters by exchange, announced date range, and listing type.
- Pure JSON-API scraping. No browser, no proxies, no CAPTCHAs.
- Stable
listing_idhash per record so re-runs deduplicate cleanly downstream.
Who Uses CEX Listings Data?
- Crypto traders — Front-run listing pumps. CEX listings move price, and the announcement-to-trading-live window is where the alpha lives.
- Market-making firms — Track which tokens are getting listed where, when futures vs spot launches, and how delistings concentrate around specific market segments.
- Token issuers and IR teams — Monitor competitor listings across the same tier of venues you're targeting.
- Data aggregators — Feed listings into CoinGecko-style coverage tables or alerting products without writing six different scrapers.
- Research teams — Build longitudinal datasets on listing cadence, type distribution, and delisting patterns by exchange.
How CEX Token Listings Tracker Works
- Pick which exchanges you want. Leave the field empty to pull all six. Each exchange runs sequentially and yields normalized records into the same dataset.
- Set
maxItemsto cap output. The scraper paginates each exchange's announcement feed and stops as soon as the cap is hit. - Filter by date range, listing type, or whether to include delistings. Filters apply after the source feed is fetched, so a tighter
announcedDateFromdoesn't change the source's pagination behavior. - Get one row per announcement with the same field names regardless of which exchange it came from.
Input
{
"exchanges": ["binance", "okx", "bybit", "kucoin", "kraken", "coinbase"],
"announcedDateFrom": "2026-01-01",
"announcedDateTo": "",
"includeDelistings": true,
"listingTypes": [],
"maxItems": 15
}
| Field | Type | Default | Description |
|---|---|---|---|
exchanges |
array of strings | all six | Lowercase exchange codes. Empty array = all supported. Supported: binance, okx, bybit, kucoin, kraken, coinbase. |
announcedDateFrom |
string | empty | YYYY-MM-DD lower bound on announcement date. Empty = no lower bound. |
announcedDateTo |
string | empty | YYYY-MM-DD upper bound on announcement date. Empty = no upper bound. |
includeDelistings |
boolean | true |
Include delisting / removal announcements. Set to false for new-listings only. |
listingTypes |
array of strings | empty | Filter by type. Supported values: spot, futures, margin, earn, delisting, other. Empty = all types. |
maxItems |
integer | 15 |
Maximum records returned across all selected exchanges. |
proxyConfiguration |
object | disabled | Public exchange APIs do not require proxies. Leave disabled unless your runner location is geo-blocked by a specific exchange. |
Single-exchange run
{
"exchanges": ["binance"],
"listingTypes": ["spot"],
"maxItems": 50
}
Delistings-only across all exchanges
{
"exchanges": [],
"includeDelistings": true,
"listingTypes": ["delisting"],
"maxItems": 100
}
CEX Token Listings Tracker Output Fields
{
"listing_id": "7e99b7d5b7ecf07e",
"cex": "binance",
"cex_name": "Binance",
"token_symbol": "MEGA",
"token_name": "MegaETH",
"listing_type": "spot",
"listing_type_raw": "New Cryptocurrency Listing",
"trading_pairs": ["MEGA/USDT"],
"announcement_title": "Binance Will List MegaETH (MEGA) with Seed Tag Applied",
"announcement_url": "https://www.binance.com/en/support/announcement/506a7482e6b94bc58f3e275cb15c2861",
"announced_at": "2026-04-30T09:07:29.704Z",
"announced_date": "2026-04-30",
"delisted": false,
"scraped_at": "2026-05-01T00:00:00.000Z"
}
| Field | Type | Description |
|---|---|---|
listing_id |
string | Stable 16-char hash of (cex, token_symbol, listing_type, announcement_url). Use it as a primary key for dedupe across runs. |
cex |
string | Exchange code: binance, okx, bybit, kucoin, kraken, or coinbase. |
cex_name |
string | Human-readable exchange name. |
token_symbol |
string | Token ticker as listed on the exchange. Best-effort parse from the announcement title. May be empty when the title doesn't disclose a single ticker (e.g. "Adds Multiple Equity Perpetuals"). |
token_name |
string | Full project name when the title carries it (e.g. MegaETH for MEGA). Best-effort. |
listing_type |
string | Normalized type: spot, futures, margin, earn, delisting, or other. |
listing_type_raw |
string | Raw category string from the source feed (e.g. New Cryptocurrency Listing, Delistings, Asset Listings). |
trading_pairs |
array of strings | Trading pairs detected in the announcement title (e.g. MEGA/USDT, GRASS/USDⓈ). |
announcement_title |
string | Title of the source announcement, verbatim. |
announcement_url |
string | Direct URL to the announcement page on the exchange's site. |
announced_at |
string | ISO-8601 UTC timestamp of when the announcement was published. Empty for Coinbase rows — see FAQ. |
announced_date |
string | YYYY-MM-DD UTC date derived from announced_at. |
delisted |
boolean | true if the announcement is a delisting / removal notice. |
scraped_at |
string | ISO-8601 UTC timestamp of when this record was captured. |
FAQ
How do I scrape new crypto listings across multiple exchanges?
CEX Token Listings Tracker handles all six majors in one run. Set the exchanges array to the codes you want, or leave it empty to pull every supported exchange. Output is unified — the same field names work whether the row came from Binance or Kraken.
How much does CEX Token Listings Tracker cost to run?
CEX Token Listings Tracker uses pay-per-event pricing: $0.10 per actor start plus $0.001 per record. A typical run with maxItems=100 lands at roughly $0.20 total. The scraper hits public JSON APIs, so the per-record cost is the lowest tier — there's no proxy or CAPTCHA overhead built into the price.
Why is announced_at empty for some Coinbase rows?
Coinbase doesn't expose a public announcement feed that lists timestamps for new listings — the Coinbase blog is Cloudflare-protected and unsuitable for unattended scraping. CEX Token Listings Tracker derives Coinbase rows from the public Exchange products endpoint, which gives the current listed/delisted state of each token but no listing timestamps. For precise timestamps, use the other five exchanges, which all expose dated announcement feeds.
Can I filter to just delistings?
Yes. Set listingTypes: ["delisting"] and you'll get only delisting / removal notices. Useful for tracking which tokens are getting pulled from which venues, which is sometimes more interesting than the new-listing firehose.
Does CEX Token Listings Tracker need proxies?
No. Every supported exchange's announcement feed is reachable directly without a proxy from a typical US or EU runner. The actor leaves proxy configuration disabled by default. If you hit a geo-block on a specific exchange, enable Apify Proxy in the input — but you shouldn't need to.
How fresh is the data?
CEX Token Listings Tracker reads each exchange's announcement feed live on every run. Most exchanges post new-listing notices within minutes of the listing event. Schedule the actor on Apify to run every 15 minutes if you want near-real-time alerting.
Need More Features?
Need another exchange (Bitget, Gate.io, MEXC), enrichment fields like contract address and chain, or push-to-webhook on new listings? File an issue or get in touch.
Why Use CEX Token Listings Tracker?
- Six exchanges, one schema — Same field names whether the row came from Bybit or Coinbase. Most aggregators ship six output shapes and call it done.
- Cheap — $0.001 per record, $0.10 per start. The cost line on a Binance + OKX + Bybit run for a full week of listings is under twenty cents.
- Honest about what's parseable — Empty cells where the source data is genuinely ambiguous beats fabricated values. The
listing_idhash is stable across runs so dedupe works without you doing anything.