Skip to content

Exchange Listings

Track which tokens get listed on the top 5 retail CEXs — Binance, OKX, Bybit, Gate.io, and MEXC — tagged by narrative. Updated daily. A forward signal for where retail capital is being deployed: when MEXC lists 20 AI-agent tokens in a week, that narrative is heating up.

Built on the exchange_listings dataset. Every new spot listing on a supported exchange is ingested within 24 hours, tagged to a Sharpe narrative via CoinGecko categories, and exposed through these endpoints.


GET/v1/listings/data

Hub payload

Returns the full Exchange Listings hub payload: weekly and monthly aggregated counts by narrative and by exchange, recent listings for the last 90 days, and summary stats. This is the same data that powers the /listings terminal page.

Query parameters

  • Name
    narrative
    Type
    string
    Description

    Filter to a single narrative slug (e.g. ai-agents, memes, layer-1, rwa, defi). When set, all returned counts are scoped to that narrative.

  • Name
    exchange
    Type
    string
    Description

    Filter to a single exchange. Valid: binance, okx, bybit, gateio, mexc.

Response fields

  • Name
    weekly
    Type
    array
    Description

    Weekly buckets, last 26 weeks. Each element: { bucket_date, exchange, narrative_slug, listing_count }. bucket_date is ISO-week Monday (UTC).

  • Name
    monthly
    Type
    array
    Description

    Monthly buckets, last 12 months. Same shape as weekly but with month-start bucket_date.

  • Name
    recent
    Type
    array
    Description

    Raw rows from the last 90 days, newest first. Each: { id, token_symbol, token_name, token_coingecko_id, exchange, listing_date, listing_date_source, narrative_slug }.

  • Name
    totals
    Type
    object
    Description

    { thisWeek, lastWeek, thisMonth, lastMonth } — listing counts for UI delta calculations.

  • Name
    topNarrativesThisMonth
    Type
    array
    Description

    Top 5 narratives ranked by listing count in the current month. Each: { narrative_slug, count }.

  • Name
    topExchangesThisMonth
    Type
    array
    Description

    Top 5 exchanges ranked by listing count in the current month. Each: { exchange, count }.

  • Name
    lastListingAt
    Type
    string
    Description

    Freshest listing_date across active rows (ISO date). Null if no data yet.

  • Name
    lastUpdatedAt
    Type
    string
    Description

    Latest categorized_at timestamp (when any row was last triaged or refreshed).

Request

GET
/v1/listings/data
curl -G https://www.sharpe.ai/api/v1/listings/data \
  -H "Authorization: Bearer sk_live_your_key_here" \
  --data-urlencode "narrative=ai-agents"

Response (truncated)

{
  "data": {
    "weekly": [
      { "bucket_date": "2026-03-30", "exchange": "mexc",
        "narrative_slug": "ai-agents", "listing_count": 5 }
    ],
    "monthly": [ ... ],
    "recent": [
      { "token_symbol": "GRASS", "token_name": "Grass",
        "token_coingecko_id": "grass", "exchange": "mexc",
        "listing_date": "2024-12-07",
        "listing_date_source": "exchange_kline",
        "narrative_slug": "ai-agents" }
    ],
    "totals": { "thisWeek": 0, "lastWeek": 2,
      "thisMonth": 14, "lastMonth": 36 },
    "topNarrativesThisMonth": [
      { "narrative_slug": "ai-agents", "count": 3 },
      { "narrative_slug": "memes", "count": 3 }
    ],
    "topExchangesThisMonth": [
      { "exchange": "mexc", "count": 9 }
    ],
    "lastListingAt": "2026-04-13",
    "lastUpdatedAt": "2026-04-21T00:08:32Z"
  }
}

GET/v1/listings/recent

Recent listings feed

A flat list of recent token listings. Each row tells you which token got listed on which exchange, on what day, and which narrative it belongs to. Intended for consumers that want a simple signal feed without the aggregates.

Query parameters

  • Name
    narrative
    Type
    string
    Description

    Filter to a single narrative slug.

  • Name
    exchange
    Type
    string
    Description

    Filter to a single exchange. Valid: binance, okx, bybit, gateio, mexc.

  • Name
    days
    Type
    integer
    Description

    Lookback window in days. Range 1-365. Default 90.

  • Name
    limit
    Type
    integer
    Description

    Max rows returned. Range 1-1000. Default 200.

Response fields

  • Name
    rows
    Type
    array
    Description

    Array of listing rows sorted by listing_date descending. Each: { token_symbol, token_name, token_coingecko_id, exchange, listing_date, listing_date_source, narrative_slug }.

  • Name
    count
    Type
    integer
    Description

    Number of rows returned.

  • Name
    window_days
    Type
    integer
    Description

    Echo of the days parameter for clarity.

listing_date_source values

Every row carries the source of its listing_date for transparency:

  • exchange_kline — derived from the exchange's own k-line first-trade timestamp (authoritative)
  • announcement_rss — parsed from the exchange's announcement RSS feed
  • announcement_html — scraped from the exchange's announcement page
  • coingecko_ticker — derived from CoinGecko per-exchange ticker history (fallback)
  • first_seen — proxy: when our cron first observed this pair (used when no authoritative source resolves)
  • manual — admin-set

Request

GET
/v1/listings/recent
curl -G https://www.sharpe.ai/api/v1/listings/recent \
  -H "Authorization: Bearer sk_live_your_key_here" \
  --data-urlencode "exchange=binance" \
  --data-urlencode "days=30"

Response (truncated)

{
  "data": {
    "rows": [
      { "token_symbol": "TRUMP", "token_name": "Official Trump",
        "token_coingecko_id": "official-trump",
        "exchange": "binance",
        "listing_date": "2025-01-19",
        "listing_date_source": "exchange_kline",
        "narrative_slug": "memes" }
    ],
    "count": 1,
    "window_days": 30
  }
}

Narratives

Every listing is tagged to one of Sharpe's 22 canonical narrative slugs (same taxonomy as /v1/narratives/data). Tokens CoinGecko hasn't categorized yet are excluded from all public endpoints — only rows with status = 'active' and a resolved narrative are exposed.

Supported narrative slugs

layer-1 · layer-2 · defi · dex-tokens · cex-tokens · lending · liquid-staking · restaking · ai-agents · defai · depin · desci · rwa · gaming · socialfi · nfts · memes · stablecoins · oracles · privacy · modular · intent


Update cadence

Each exchange has its own daily cron, staggered at 00:00–00:20 UTC. The nightly rollup cron at 00:45 UTC refreshes the exchange_listings_weekly and exchange_listings_monthly materialized views that power aggregate queries.

ComponentSchedule
Binance ingest0 0 * * * UTC
OKX ingest5 0 * * * UTC
Bybit ingest10 0 * * * UTC
Gate.io ingest15 0 * * * UTC
MEXC ingest20 0 * * * UTC
Rollup (weekly+monthly matviews)45 0 * * * UTC

Each ingest detects new spot-trading base assets (USDT and USDC pairs), resolves the CoinGecko coin id, pulls the first-trade date from the exchange's own k-line history, and maps the CG categories to a Sharpe narrative. Already-resolved rows are skipped on re-run; uncategorized and needs_review rows are re-processed so they promote to active as CoinGecko adds data.

Was this page helpful?