Skip to content

Gem Finder

The Gem Finder endpoint returns up to 1,000 market-ranked assets after stablecoin, derivative-asset (wrapped, bridged, pegged, liquid-staking, synthetic, tokenized-stock), quote-freshness (quotes older than 24 hours are treated as no-longer-trading), minimum-market-cap, and minimum-volume filters. Rows include market, supply, ATH/ATL, dilution, chain-scope, and observed exchange-availability fields; no proprietary token score or wallet signal is returned. The complete dataset refreshes every 6 hours.


GET/v1/gem-finder/data

Get gem finder data

Returns the gem finder dataset including coins, available exchanges, and metadata.

Query parameters

  • Name
    limit
    Type
    integer
    Description

    Maximum number of coins per page. 1 to 1000. When omitted, the complete cached payload is returned. When provided, the response contains a page array plus a pagination object.

  • Name
    cursor
    Type
    string
    Description

    Opaque cursor for fetching the next page. It is bound to one cache snapshot and expires after a refresh; restart without a cursor after an expiry error.

Response fields

  • Name
    coins
    Type
    array
    Description

    Array of coin objects containing symbol, name, price, market cap, nullable FDV, 24-hour volume, nullable 24-hour and 7-day price change, nullable 24-hour market cap change, nullable circulating supply, nullable ATH price/date/distance, nullable ATL price/distance, nullable FDV/MCap ratio, exchange coverage, a nullable preferred chain slug, and a nullable lastUpdated quote timestamp. Missing or invalid upstream values stay null — they are never coerced to zero; ambiguous same-ticker assets do not receive exchange attribution from symbol-only venue feeds.

  • Name
    availableExchanges
    Type
    array
    Description

    List of exchange identifiers that appear across the coin set. Useful for building client-side filters.

  • Name
    totalCoins
    Type
    integer
    Description

    Total number of coins in the dataset.

  • Name
    updatedAt
    Type
    string
    Description

    ISO 8601 timestamp of the last data refresh. null if data has not yet been populated.

  • Name
    syncStatus
    Type
    object
    Description

    Sync completeness and enrichment-coverage metadata when present. enrichment.platform reports fresh versus preserved chain assignments; enrichment.exchanges lists successful and failed venue sources plus preserved last-good listings. Degraded enrichment is surfaced through X-Sharpe-Data-State: partial; incomplete market pages still preserve the entire last-good cache.

When limit is supplied, the response is wrapped with a sibling pagination object alongside data:

  • Name
    pagination.cursor
    Type
    string | null
    Description

    Opaque, snapshot-bound cursor to pass back as cursor on the next request. null when there are no more pages.

  • Name
    pagination.has_more
    Type
    boolean
    Description

    true when more rows are available after this page; false when this is the last page.

  • Name
    pagination.total
    Type
    number
    Description

    Total number of rows in the unpaginated dataset, when available. Omitted for endpoints that do not compute a count.

A missing-but-readable cache row returns a legitimate empty dataset with X-Sharpe-Data-State: empty. A cache/database read failure returns 502 instead of masquerading as an empty market.

Request

GET
/v1/gem-finder/data
curl -G https://www.sharpe.ai/api/v1/gem-finder/data \
  -H "Authorization: Bearer sk_live_your_key_here"

Response

{
  "data": {
    "coins": [
      {
        "id": "example-token",
        "symbol": "EXM",
        "name": "Example Token",
        "image": "https://assets.coingecko.com/example.png",
        "price": 0.142,
        "marketCap": 12500000,
        "fdv": 18750000,
        "volume24h": 890000,
        "change24h": 5.32,
        "change7d": 12.4,
        "athPrice": 1.42,
        "athDistance": -90,
        "athDate": "2025-11-18T00:00:00Z",
        "fdvMcapRatio": 1.5,
        "exchangeCount": 2,
        "exchanges": ["Binance", "Bybit"],
        "chainSlug": "ethereum",
        "chainSlugs": ["ethereum", "arbitrum"],
        "lastUpdated": "2026-03-28T11:54:31Z"
      }
    ],
    "availableExchanges": [
      "Binance",
      "Bybit"
    ],
    "totalCoins": 997,
    "updatedAt": "2026-03-28T11:55:00Z"
  },
  "meta": {
    "request_id": "req_abc123def456ghij",
    "timestamp": "2026-03-28T11:55:05Z",
    "elapsed_ms": 12
  }
}

Was this page helpful?