Skip to content

Free API

Sharpe Terminal exposes public REST endpoints at https://www.sharpe.ai/api/* that return JSON data with no API key required. These are the same endpoints that power the Sharpe Terminal frontend, cached at the edge from 1 minute to 1 hour depending on the dataset, and open to anyone. The cache table at the bottom of this page lists the exact TTL per endpoint group.

Free endpoints return raw JSON without the v1 envelope (no data / meta wrapper): the response body is the data. The authenticated v1 API wraps responses in { data, meta } and adds pagination cursors and request IDs.

Every free endpoint on this page except futures (/api/futures/*) says how fresh its answer is. A JSON-object body carries the freshness fields (as_of, stale_after, freshness_sla_seconds, freshness_status, runtime_status, and the rest) in its meta key, merged into a meta the body already has, whose own keys keep their values. Every answer, bare arrays included, carries them as X-Data-As-Of, X-Data-Stale-After, X-Data-Stale, X-Data-Status (fresh, stale, degraded or fallback) and X-Freshness-Sla-Seconds headers, plus X-Request-Id. Errors are problem+json bodies (errors) with an error string beside detail.


Browser access (CORS)

Every free endpoint on this page answers cross-origin browser requests, so the fetch() examples below run from any page:

  • Access-Control-Allow-Origin: * on every response
  • OPTIONS preflights answered with 204 and Access-Control-Allow-Methods: GET, HEAD, OPTIONS
  • Data-provenance headers such as X-Data-Source, X-Data-Stale, X-Data-As-Of, X-Data-Stale-After, X-Data-Status, X-Data-Coverage, X-Data-Fallback, X-Data-Partial, X-Data-Missing, X-Data-Venues, X-Freshness-Sla-Seconds, X-Sharpe-Data-State, X-Request-Id and Retry-After are listed in Access-Control-Expose-Headers, so browser code can read them

Two limits are deliberate. Access-Control-Allow-Credentials is never sent, so cookies are never part of a cross-origin call. And the authenticated /api/v1/* API sends no CORS headers at all: calling it from a browser would expose your API key in page JavaScript, so keep v1 requests on your server.


GET/api/funding/rates

Derivatives

Funding rates

Returns current, accumulated, or historical funding rates across 32 perpetual exchanges.

  • Name
    type
    Type
    string
    Description

    One of current, accumulated, history. Defaults to current.

  • Name
    coin
    Type
    string
    Description

    Asset ticker (e.g., BTC, ETH), or the coin's full name (bitcoin resolves to BTC). Required for history mode, optional elsewhere. Names an asset: every contract of it comes back, lot spellings included (PEPE also returns the 1000PEPE and KPEPE contracts; rows carry asset_id and lot_multiplier). Comma-separate for several coins. A value no perpetual has ever settled returns a 400 naming what was tried, not an empty array; see /api/funding/coins for every ticker carried. Coins that have been delisted everywhere still resolve, so their history stays queryable.

  • Name
    exchange
    Type
    string
    Description

    Filter to a single venue. Accepts the slug (gate-io), the display name (Gate.io), or the ccxt id.

  • Name
    margin
    Type
    string
    Description

    Collateral convention: linear or inverse. Unfiltered by default.

  • Name
    asset_class
    Type
    string
    Description

    One of crypto, equity, commodity, fx, index. Unfiltered by default.

  • Name
    days
    Type
    number
    Description

    Lookback days for history mode. Defaults to 30, clamped at 1095. History responses report what they actually cover in X-Requested-Start, X-Coverage-Start, X-Coverage-Complete and X-Days-Clamped, so a coin with less history than you asked for is visible rather than silent.

  • Name
    limit
    Type
    number
    Description

    Maximum rows per page. Combine with cursor to page the full book.

  • Name
    cursor
    Type
    string
    Description

    Opaque cursor from the previous response's pagination.cursor.

  • Name
    max_age_h
    Type
    number
    Description

    Optional maximum row age for current responses. Omit it for the backwards-compatible unbounded snapshot; terminal views request 24 hours. Current rows include age_seconds, is_stale, freshness_sla_seconds, and data_source metadata, and rate_8h and apr (the rate on the 8-hour basis and annualized, from the row's own interval).

The route also takes the type=current parameters sort, extremes, min_oi_usd, stats and summary described on the funding rates page.

Request

GET
/api/funding/rates
curl -G https://www.sharpe.ai/api/funding/rates \
  -d type=current

Available funding coins

Returns every distinct base coin in the current funding-rate book with a display name and a same-origin logo path, ordered by symbol. Feeds coin pickers without downloading the full funding book. name and logo_url are null when no metadata exists.

No parameters required.

Request

GET
/api/funding/coins
curl https://www.sharpe.ai/api/funding/coins

Futures data

Returns chart data for perpetual futures: open interest, funding rates, liquidations, long/short ratios, basis, volume, and more.

A payload above 1,500 rows is aggregated into time buckets per venue (1 hour when the rows span under 7 days, 4 hours under 30 days, else 1 day). Aggregated OHLCV rows carry an optional volume_usd: each source candle's volume × close, summed over the bucket (null when no candle had a positive volume and close). Use it rather than volume × close, which prices the whole bucket at its last close.

  • Name
    chart
    Type
    string
    Description

    Chart type. One of perp-dislocation, funding-cost, crowding-risk, flow-confirmation, carry-curve, perpetual-price, funding-rate, oi-snapshot, oi-change, oi-daily-change, oi-stacked, oi-volume, liquidations, annualized-basis, term-structure, long-short-ratio, top-trader-ls, volume-snapshot, volume-history, cvd, returns-session, returns-heatmap, returns-hour, returns-day.

  • Name
    coin
    Type
    string
    Description

    Asset ticker. Defaults to BTC.

  • Name
    timeframe
    Type
    string
    Description

    One of 1W, 2W, 1M, 3M, 6M, 1Y, 3Y. Defaults to 3M.

  • Name
    exchanges
    Type
    string
    Description

    Comma-separated exchange IDs (e.g., binance,bybit,okx).

Request

GET
/api/futures/data
curl -G https://www.sharpe.ai/api/futures/data \
  -d chart=oi-snapshot \
  -d coin=BTC \
  -d timeframe=1M

Available futures coins

Returns the list of coins with available futures data, including which data types each coin supports.

No parameters required.

Request

GET
/api/futures/coins
curl https://www.sharpe.ai/api/futures/coins

GET/api/arbitrage/*

Arbitrage

Cross-exchange arbitrage

Returns one pair per asset, executable pairs first by net APR after both venues' taker fees and the adverse entry spread (a favourable spread is never credited), then indicative pairs with an indicativeReason.

  • Name
    exchanges
    Type
    string
    Description

    Comma-separated exchange IDs. Returns all exchanges by default.

Spot-perp arbitrage

Returns spot-perp basis trade opportunities: go long spot and short perp (or vice versa) to capture funding.

  • Name
    exchange
    Type
    string
    Description

    Exchange ID or all. Defaults to all.

  • Name
    direction
    Type
    string
    Description

    Perpetual-leg direction: short for positive funding capture, long for negative funding capture, or all. Defaults to all.

  • Name
    view
    Type
    string
    Description

    rows (default): the bare array of rows. grid: the terminal's own projection, { view, count, columns }, one array per field the board grid renders, in board order (~0.9 MB against ~2.6 MB of rows).

Both boards take the parameters of their v1 twins too: minOiUsd, limit and cursor on spot-perp, assetClass, minOiUsd, minVolUsd, limit and cursor on cross-exchange; the body stays a bare array, a page of it when either paging parameter is given. Both are composed every 5 minutes by a scheduled job and are stale after 10 minutes, and both send X-Data-Missing (each configured venue that is not a quoted member, Venue:reason) and X-Data-Venues (the venues a filter may offer: a venue that is not live, or whose funding rows are all past the funding SLA, is left out).

Request

GET
/api/arbitrage/cross-exchange
curl https://www.sharpe.ai/api/arbitrage/cross-exchange

Request

GET
/api/arbitrage/spot-perp
curl -G https://www.sharpe.ai/api/arbitrage/spot-perp \
  -d direction=long

Market data

Heatmap

Returns treemap data with tokens sized by market cap and colored by performance. Supports 36 category slugs: the legacy top-100 slug returns the Top 50 universe, alongside 15 narratives and 20 ecosystems.

  • Name
    category
    Type
    string
    Description

    Category slug. Examples: top-100, defi, layer-1, artificial-intelligence, meme-token, ethereum-ecosystem, solana-ecosystem. Defaults to top-100.

  • Name
    mode
    Type
    string
    Description

    One of coins, narratives, ecosystems. Defaults to coins.

Request

GET
/api/heatmap/data
curl -G https://www.sharpe.ai/api/heatmap/data \
  -d category=defi

Correlation matrix

Returns an NxN Pearson correlation matrix for any combination of crypto assets and TradFi instruments.

  • Name
    period
    Type
    string
    Description

    One of 30d, 90d, 1y, 3y. Defaults to 30d.

  • Name
    ids
    Type
    string
    Description

    Comma-separated asset IDs. Crypto: canonical asset IDs (bitcoin, ethereum). TradFi: short IDs (sp500, gold, nvda). Max 10. Defaults to bitcoin,ethereum,solana,sp500,gold.

Request

GET
/api/correlation/matrix
curl -G https://www.sharpe.ai/api/correlation/matrix \
  -d period=90d \
  -d ids=bitcoin,ethereum,solana,sp500,gold

Correlation history

Returns rolling correlation windows (30D, 60D, 90D) between two assets over time.

  • Name
    asset1
    Type
    string
    Description

    First asset ID (e.g., bitcoin).

  • Name
    asset2
    Type
    string
    Description

    Second asset ID (e.g., sp500).

  • Name
    period
    Type
    string
    Description

    Lookback period. One of 30d, 90d, 1y, 3y. Defaults to 1y.

Request

GET
/api/correlation/history
curl -G https://www.sharpe.ai/api/correlation/history \
  -d asset1=bitcoin \
  -d asset2=sp500 \
  -d period=1y

Correlation on-demand

Fetches price data for a coin that is not already in the correlation database, then computes correlations against selected assets.

  • Name
    coinId
    Type
    string
    Description

    CoinGecko asset ID or supported TradFi ID to compute on demand, for example sharpe-ai.

  • Name
    period
    Type
    string
    Description

    One of 30d, 90d, 1y, 3y. Defaults to 30d.

  • Name
    against
    Type
    string
    Description

    Comma-separated comparison asset IDs. Max 20.

Request

GET
/api/correlation/on-demand
curl -G https://www.sharpe.ai/api/correlation/on-demand \
  -d coinId=sharpe-ai \
  -d period=30d \
  -d against=bitcoin,ethereum,solana

Price prediction

Returns deterministic directional scores with sub-signal breakdowns and optional volatility-scaled heuristic scenarios. Legacy modelConfidence and forecast confidence fields measure signal agreement, not probability.

  • Name
    coin
    Type
    string
    Description

    Asset slug (e.g., bitcoin, ethereum). Omit for all coins.

  • Name
    coingeckoId
    Type
    string
    Description

    CoinGecko ID for live scoring of a non-indexed coin. Use with symbol and name.

  • Name
    symbol
    Type
    string
    Description

    Ticker symbol for live scoring of a non-indexed coin.

  • Name
    name
    Type
    string
    Description

    Display name for live scoring of a non-indexed coin.

Request

GET
/api/price-prediction/data
curl -G https://www.sharpe.ai/api/price-prediction/data \
  -d coin=bitcoin

Price prediction search

Searches indexed and CoinGecko-backed assets for price prediction candidates.

  • Name
    q
    Type
    string
    Description

    Search query from 1 to 100 characters. At least 2 searchable characters are required after sanitization.

Request

GET
/api/price-prediction/search
curl -G https://www.sharpe.ai/api/price-prediction/search \
  -d q=bitcoin

Gem finder

Returns market-ranked token rows with price, market cap, nullable FDV and FDV/MCap ratio, volume, nullable price changes, ATH metrics, exchange availability, and a preferred chain scope. Ambiguous same-ticker assets do not receive symbol-only exchange attribution, and syncStatus exposes degraded enrichment coverage. This endpoint does not return a proprietary score or wallet signal.

No parameters required.

A cache/database read failure returns 503 (problem+json, Retry-After: 30); a readable cache with no populated row returns a normal empty dataset (never cached).

Request

GET
/api/gem-finder/data
curl https://www.sharpe.ai/api/gem-finder/data

Categories

Narratives

Returns analytics for 30 crypto narratives: market cap, volume, performance, social sentiment, derivatives positioning, and correlations.

  • Name
    narrative
    Type
    string
    Description

    Narrative ID for detail view (e.g., defi, ai-agents, rwa). Omit for the full list.

  • Name
    historical
    Type
    string
    Description

    Return historical snapshots. Accepts calendar/time-window values such as 24h, 7d, 30d, 90d, 1y, plus 1W, 1M, 3M, 6M, MTD, YTD, and 3Y.

  • Name
    correlation
    Type
    string
    Description

    Set to true to return the narrative correlation matrix plus explicit coverage and availableTimeframes metadata. Partial lookbacks are never relabeled as the requested full window.

  • Name
    timeframe
    Type
    string
    Description

    Timeframe for correlation and history helper modes. Defaults to 1M where applicable.

  • Name
    funding_history
    Type
    string
    Description

    Narrative ID for per-token funding history heatmap rows.

  • Name
    token_volume
    Type
    string
    Description

    Narrative ID for latest token volume with 10-day rolling average.

  • Name
    token_history
    Type
    string
    Description

    Narrative ID for per-token market cap, volume, and open-interest history.

  • Name
    chart
    Type
    string
    Description

    Historical metric selector, for example market-cap, volume, or funding-rate.

  • Name
    mindshare_history
    Type
    string
    Description

    Set to a narrative ID to return narrative mindshare snapshots.

The list also takes the v1 ranking parameters: sort=-change24h (or change24h) orders it by 24h change with a missing change last, and top=N / bottom=N add the N highest / lowest.

Request

GET
/api/narratives/data
curl https://www.sharpe.ai/api/narratives/data

Ecosystems

Analytics for 25 blockchain ecosystems, including Ethereum, Solana, BNB, Arbitrum, and Base. Includes TVL data from DeFi Llama.

  • Name
    ecosystem
    Type
    string
    Description

    Ecosystem ID (e.g., ethereum, solana, arbitrum). Omit for the full list.

  • Name
    historical
    Type
    string
    Description

    Snapshot timeframe. Accepts values such as 24h, 7d, 30d, 90d, 1y, plus 1W, 1M, 3M, 6M, MTD, YTD, and 3Y.

  • Name
    correlation
    Type
    string
    Description

    Set to true to return the ecosystem correlation matrix plus explicit coverage and availableTimeframes metadata. Partial lookbacks are never relabeled as the requested full window.

  • Name
    timeframe
    Type
    string
    Description

    Timeframe for correlation and history helper modes. Defaults to 1M where applicable.

  • Name
    tvl
    Type
    string
    Description

    Set to true to include TVL data.

  • Name
    chart
    Type
    string
    Description

    Historical metric selector, for example market-cap, volume, or tvl.

  • Name
    mindshare_history
    Type
    string
    Description

    Set to an ecosystem ID to return ecosystem mindshare snapshots.

  • Name
    excludeNative
    Type
    string
    Description

    Set to true to exclude the native token from aggregate metrics.

Request

GET
/api/ecosystems/data
curl -G https://www.sharpe.ai/api/ecosystems/data \
  -d ecosystem=solana \
  -d tvl=true

Memecoins

Track grouped memecoin categories across aggregate, theme, chain, and launchpad views with market share, freshness, coverage, and performance fields.

  • Name
    narrative
    Type
    string
    Description

    Narrative slug (e.g., dog-coins, cat-coins, frog-coins, ai-memes, trump-coins). Omit for all.

  • Name
    historical
    Type
    string
    Description

    One of 24h, 7d, 30d, or 1y.

  • Name
    series
    Type
    string
    Description

    Set to primaryTheme with historical to return only primary-theme historical rows.

  • Name
    coinHistory
    Type
    string
    Description

    Set to 24h, 7d, 1m, or 1y for retained price history per coin.

Request

GET
/api/memecoins/data
curl -G https://www.sharpe.ai/api/memecoins/data \
  -d narrative=dog-coins

Memecoin launches

Recently launched memecoin pairs screened by age, liquidity, volume, and transaction count. The feed is discovery-first; canonical tracker inclusion requires category membership or minimum liquidity, volume, age, and activity thresholds.

  • Name
    chains
    Type
    string
    Description

    Comma-separated chain ids, e.g. solana,base,bsc,ethereum.

  • Name
    days
    Type
    number
    Description

    Launch lookback window from 1 to 30 days.

  • Name
    limit
    Type
    number
    Description

    Maximum launch rows from 1 to 200.

  • Name
    profile
    Type
    string
    Description

    Screening profile: discovery, balanced, or strict.

Request

GET
/api/memecoins/launches
curl -G https://www.sharpe.ai/api/memecoins/launches \
  -d chains=solana,base \
  -d days=7 \
  -d limit=25

Mindshare

Social attention and mindshare metrics across crypto narratives and tokens. Token and narrative sentimentPct is null when the upstream sentiment sample is unavailable; it is never synthesized as neutral 50%.

  • Name
    tokens
    Type
    string
    Description

    Set to true to return a flat list of token-level mindshare data.

  • Name
    narrative
    Type
    string
    Description

    With tokens=true, filter token rows by narrative slug, for example defi or layer-1.

  • Name
    window
    Type
    string
    Description

    Snapshot window for narrative rows. One of now, 24h, 7d, 30d.

  • Name
    historical
    Type
    string
    Description

    Set to true to include historical snapshots.

  • Name
    timeframe
    Type
    string
    Description

    Historical timeframe. One of 1W, 1M, 3M, 6M, 1Y, 3Y (aliases like 7d, 30d, and 90d are accepted).

Request

GET
/api/mindshare/data
curl -G https://www.sharpe.ai/api/mindshare/data \
  -d window=7d

Web traffic

Attention rankings, social snapshots, and market-level signals for 50 coins and 22 narrative baskets, plus CoinGecko trust-score rankings for 16 exchanges.

  • Name
    type
    Type
    string
    Description

    One of exchange, coin, narrative.

  • Name
    mode
    Type
    string
    Description

    One of rankings, snapshots, market.

  • Name
    sub
    Type
    string
    Description

    Market submode for mode=market. One of trending, categories, global.

  • Name
    tf
    Type
    string
    Description

    Timeframe. One of 7d, 30d, 90d, 1y, 3y, all.

  • Name
    entities
    Type
    string
    Description

    Comma-separated entity IDs for mode=snapshots.

Request

GET
/api/web-traffic/data
curl -G https://www.sharpe.ai/api/web-traffic/data \
  -d type=coin \
  -d mode=rankings

Caching behavior

All free endpoints return Cache-Control headers. On the endpoints that carry the freshness fields, the edge window follows the data: while it is fresh an answer is cached for at most a third of the time left before stale_after (and a third of the writer's cadence), with stale-while-revalidate at most twice that and never past stale_after, so a cached copy never says fresh past its SLA. Typical windows while fresh:

Endpoint groups-maxagestale-while-revalidate
Funding rates (current, history), funding coins, spot-perp and cross-exchange arbitrage, funding spread history, Boros fixed vs floating funding, dated-futures scanners priced from the 5-minute dated-quotes snapshotup to 100 sup to 200 s
Margin borrow ratesup to 200 sup to 400 s
Funding rates (accumulated)up to 10 minup to 20 min
Futures (not yet on the freshness fields)5 min10 min
Funding settlement, /api/global/overview (crypto tab)up to 5 minup to 10 min
Gem finder, price prediction, rug-check securityup to 5 minup to 10 min
Heatmap, narratives, ecosystems, memecoins, web traffic, news, dated-futures scanners (basis, calendar, perp-dated carry) served from the hourly term structureup to 15 minup to 30 min
Mindshare, listings, correlationup to 1 hrup to 2 hr
CEX spot-transfer scannerup to 20 sup to 40 s
Token scanner, memecoin launches10 s20 s

Past a dataset's freshness SLA an answer is cached 30 s / 30 s; degraded, partial or fallback answers are not cached.

Conditional requests

/api/funding/rates?type=current serves the funding book from a snapshot with a weak ETag. Send it back as If-None-Match and an unchanged book returns 304 Not Modified with an empty body instead of re-sending the full payload. A 304 still counts against the per-IP protective limits, so conditional polling saves bandwidth, not request budget.

Rate limits

Free endpoints are cache-backed and may also have route-specific protective limits. Do not treat them as SLA-backed quotas. Every endpoint that carries the freshness fields has a protective per-IP limit (a 429 problem with Retry-After): 120 requests per minute on each server instance unless listed below. Documented per-IP limits include:

EndpointLimit
/api/correlation/on-demand10 requests/min
/api/coin-compare/generate10 requests/min
/api/price-prediction/search20 requests/min
/api/rug-check/security20 requests/min
/api/memecoins/launches20 requests/min

For guaranteed rate limits, SLA, and usage tracking, use the authenticated API.

Was this page helpful?