# Crypto New Coin Listings Tracker: OKX, Gate, Bitget, KuCoin (`scrapemint/crypto-new-listings-tracker`) Actor

Keyless tracker for new crypto listings across OKX, Gate.io, Bitget and KuCoin: which coins were listed in the last N days, on how many venues, with live price and 24h move; OKX listing announcements published before the listing goes live; and scheduled delistings. Pay per row.

- **URL**: https://apify.com/scrapemint/crypto-new-listings-tracker.md
- **Developed by:** [Ken M](https://apify.com/scrapemint) (community)
- **Categories:** Business, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Crypto New Coin Listings Tracker: OKX, Gate, Bitget, KuCoin

Keyless tracker for **new crypto listings** across **OKX, Gate.io, Bitget and KuCoin**. No API key, no account. A listing is one of the few genuinely scheduled events in crypto, and this turns finding them into a feed you can run on a timer instead of watching Twitter.

- **New listings** — every pair listed in the last N days, newest first, with the live price, the 24h move, 24h volume, and **how many of the four venues listed the same coin**. A coin appearing on three exchanges in one week is a different signal from one appearing on a single venue.
- **Announcements** — OKX publishes listing notices *before* the listing goes live, each with the time the change actually takes effect. This is the forward looking half.
- **Delistings** — Bitget publishes an off time alongside the open time, so scheduled delistings are visible in advance.

### Who uses it

- **Crypto traders** — the listing pump is a real, repeatable setup, and being early to it is the whole trade.
- **Market makers and arbitrage desks** — a coin live on one venue and not yet on another is a spread.
- **Token teams and investors** — track where a coin is already listed and when its venue count changed.
- **Newsletters and data dashboards** — schedule with `newOnly` and get one row per genuinely new listing.

Pairs with our [Crypto Funding Rates & Open Interest Tracker](https://apify.com/scrapemint/crypto-funding-rates-tracker) for the derivatives side of the same four venues, and the [Crypto Market Data Scraper](https://apify.com/scrapemint/crypto-market-data-scraper) for prices once a coin is established.

### Input

| Field | Description |
|-------|-------------|
| `mode` | `new_listings`, `announcements`, or `delistings`. |
| `venues` | Any of `okx`, `gate`, `bitget`, `kucoin`. All four by default. |
| `daysBack` | Listing window in days (default 7). |
| `quoteCurrencies` | Quote filter, `USDT` by default. Clear it to return every pair. |
| `minVolumeUsd` | Skip listings that never attracted volume. |
| `includePrices` | Join live price, 24h change and 24h volume (default on). |
| `announcementType` | Which OKX announcement feed to read. |
| `announcementPages` | How far back to page through announcements. |
| `newOnly` | Emit only what previous runs have not already returned. |
| `maxRows` | Row cap per run. |

### Output

- **New listings and delistings**: `venue`, `pair`, `baseCurrency`, `quoteCurrency`, `listingTime` (or `delistingTime`), `daysSinceListing` (or `daysUntilDelisting`), `tradable`, `status`, `price`, `changePercent24h`, `hasFullDayOfTrading`, `quoteVolume24h`, `venuesListingThisCoin`, `venueCount`.
- **Announcements**: `venue`, `announcementType`, `title`, `url`, `publishedAt`, `effectiveAt`.

`effectiveAt` is when the listing actually happens, which is usually later than `publishedAt` and is the one worth scheduling around.

### Notes on the data

- The four venues were picked because they are reachable without a proxy. Binance and Bybit block datacenter IPs outright, so they are not covered and cannot be.
- Each venue keeps its listing timestamp under a different name and in a different unit, and reports its 24h change on a different scale: a percent on Gate, a fraction on Bitget and KuCoin, and not at all on OKX, where it is derived from the 24h open. All of that is normalised here, so `changePercent24h` means the same thing in every row.
- **On a coin's first day, `changePercent24h` is not comparable between venues.** Each exchange seeds its own reference open for a pair that has not traded a full session. On its listing day AEON showed +102% on OKX (open 0.05), +734% on Bitget (open 0.012) and -47% on Gate, at a price within a tenth of a cent on all three. Every one of those is what the venue reports; none of them is a 24h move in the usual sense. Rows carry `hasFullDayOfTrading` so you can tell which figures are meaningful, and it is the single most useful filter on a fresh listing.
- A single listing usually creates several pairs at once (USDT, USD, TRY). The default `quoteCurrencies` of `USDT` collapses that to one row per coin per venue. Clearing the filter returns all of them.
- `delistings` only returns rows for Bitget, since it is the one venue of the four that publishes an off time. The OKX delisting **announcements** feed covers the others in prose.
- Nothing to report is a free note row, not an error.

Run it on a schedule with `newOnly` turned on and each listing bills once, the first time it appears.

### Pricing

Pay per event: **$0.003 per row**. The first 2 rows of every run are free.

Data sources: OKX, Gate.io, Bitget and KuCoin public APIs.

# Actor input Schema

## `mode` (type: `string`):

new\_listings = coins listed in the last N days across the selected venues. announcements = OKX listing notices, published before the listing goes live. delistings = scheduled and recent delistings (Bitget publishes the off time).

## `venues` (type: `array`):

Which exchanges to read: okx, gate, bitget, kucoin. All four by default.

## `daysBack` (type: `integer`):

How far back the listing window reaches. 7 = everything listed in the last week. Raise it on a quiet week, lower it for a daily scheduled run.

## `quoteCurrencies` (type: `array`):

Keep only pairs quoted in these currencies. USDT by default, which also keeps one row per coin per venue: a single listing often creates USDT, USD and TRY pairs at once. Clear it to return every pair.

## `minVolumeUsd` (type: `integer`):

Skip pairs trading less than this in 24h. Filters out listings that never got any interest. 0 = no minimum.

## `includePrices` (type: `boolean`):

Join each listing to the venue's live ticker so rows carry price, 24h change and 24h volume. One extra request per venue.

## `announcementType` (type: `string`):

Which OKX announcement feed to read.

## `announcementPages` (type: `integer`):

How many pages of announcements to walk back through.

## `newOnly` (type: `boolean`):

Remember what previous runs returned and emit only what is new. Turn this on for a scheduled alert feed so you are not billed for the same listing every run.

## `maxRows` (type: `integer`):

Cap on rows returned. Controls total cost.

## Actor input object example

```json
{
  "mode": "new_listings",
  "venues": [
    "okx",
    "gate",
    "bitget",
    "kucoin"
  ],
  "daysBack": 7,
  "quoteCurrencies": [
    "USDT"
  ],
  "minVolumeUsd": 0,
  "includePrices": true,
  "announcementType": "announcements-new-listings",
  "announcementPages": 1,
  "newOnly": false,
  "maxRows": 200
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "venues": [
        "okx",
        "gate",
        "bitget",
        "kucoin"
    ],
    "daysBack": 7,
    "quoteCurrencies": [
        "USDT"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapemint/crypto-new-listings-tracker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "venues": [
        "okx",
        "gate",
        "bitget",
        "kucoin",
    ],
    "daysBack": 7,
    "quoteCurrencies": ["USDT"],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapemint/crypto-new-listings-tracker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "venues": [
    "okx",
    "gate",
    "bitget",
    "kucoin"
  ],
  "daysBack": 7,
  "quoteCurrencies": [
    "USDT"
  ]
}' |
apify call scrapemint/crypto-new-listings-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapemint/crypto-new-listings-tracker",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/GOMAygb0UwanjkFFU/builds/A3QytdZycytDtDXz7/openapi.json
