# Sharpe API -- Full Reference > Institutional-grade crypto derivatives and market data API. This document describes every endpoint, parameter, type, enum value, and response schema. ## Base URL - Authenticated API: `https://www.sharpe.ai/api/v1/` - Free API (no auth): `https://www.sharpe.ai/api/` ## Authentication All `/v1/` endpoints require an API key except `/v1/health` and `/v1/meta/coverage`. Method 1 -- Bearer token (recommended): Header: `Authorization: Bearer sk_live_...` Method 2 -- API key header: Header: `X-API-Key: sk_live_...` Query-string API keys are rejected by default because URLs are commonly stored in logs, browser history, analytics tools, and referrer headers. If both supported methods are present, they are checked in order: Bearer token > X-API-Key header. The first one found is used. Key format: `sk_live_` prefix + 48 hex characters = 56 characters total. Generate a key from https://www.sharpe.ai/docs/authentication. ## Response Envelope Every successful response uses this envelope: ``` { "data": , // Shape varies by endpoint "meta": { "request_id": string, // e.g. "req_a1b2c3d4e5f6g7h8i9j0" "timestamp": string // ISO 8601, e.g. "2026-03-27T07:45:00Z" } } ``` Paginated endpoints add a `pagination` field: ``` { "data": [], "pagination": { "cursor": string | null, // Pass as ?cursor= to get next page. null = no more pages. "has_more": boolean, "total": integer | null // Total record count when available }, "meta": { "request_id": string, "timestamp": string } } ``` ## Error Format All errors follow RFC 9457 (Problem Details for HTTP APIs). The response body is a flat JSON object (not nested inside an `error` wrapper): ``` { "type": string, // URI identifying the error, e.g. "https://www.sharpe.ai/errors/invalid_parameter" "title": string, // Short human-readable summary, e.g. "Invalid Parameter" "status": integer, // HTTP status code, e.g. 400 "detail": string, // Human-readable explanation specific to this request "request_id": string, // Unique request ID for support, e.g. "req_abc123def456ghij" "doc_url": string, // Link to relevant docs page, e.g. "https://www.sharpe.ai/docs/errors#error-codes" "suggested_action": string // Actionable guidance for resolving the error, e.g. "Check the parameter value against the endpoint documentation." } ``` ### Error Codes | type slug | status | meaning | |--------------------------|--------|-------------------------------------------------| | invalid_api_key | 401 | Key is malformed or revoked | | expired_api_key | 401 | Key has expired | | insufficient_scope | 403 | Key lacks required scope for this endpoint | | monthly_quota_exceeded | 403 | Monthly request quota exhausted | | invalid_parameter | 400 | Query parameter has invalid value | | missing_parameter | 400 | Required query parameter is missing | | rate_limit_exceeded | 429 | Per-minute rate limit exceeded | | resource_not_found | 404 | Endpoint or resource does not exist | | internal_error | 500 | Unexpected server error | | upstream_error | 502 | Dependency (database, exchange API) failed | | service_unavailable | 503 | Temporary maintenance or data freshness issue | ### Retry Guidance - 4xx (except 429): Do not retry. Fix the request. - 429: Wait until the Unix timestamp in `X-RateLimit-Reset` header, then retry. - 5xx: Exponential backoff -- wait 1s, 2s, 4s, 8s, 16s (max 30s, max 5 retries). ## Rate Limits Limits are per API key, enforced as requests per minute (RPM) and requests per month. | Tier | RPM | Monthly limit | Price | |------------|-------|---------------|------------| | Free | 30 | 10,000 | $0 | | Analyst | 500 | 500,000 | $129/mo | | Pro | 1,000 | 3,000,000 | $499/mo | | Enterprise | 5,000 | 50,000,000 | Custom | ### Rate Limit Headers (included in every response) | Header | Type | Description | |----------------------|---------|------------------------------------------------| | X-RateLimit-Limit | integer | Max requests per minute for your tier | | X-RateLimit-Remaining| integer | Requests remaining in current 1-minute window | | X-RateLimit-Reset | integer | Unix timestamp (seconds) when window resets | | X-Request-Id | string | Unique request identifier for support reference | --- ## Authenticated Endpoints (v1) ### GET /v1/health Health check. Returns service status and database connectivity. Authentication: None required. Parameters: None. Response (200): ``` { "status": "healthy" | "degraded", "version": "v1", "checks": { "database": boolean }, "timestamp": string // ISO 8601 } ``` Response (503): Same schema with `status: "degraded"`. --- ### GET /v1/usage API usage and quota information for the authenticated key. Authentication: Required. Parameters: None. Response (200): ``` { "data": { "plan": { "tier": "free" | "analyst" | "pro" | "enterprise", "rpm": integer, // Requests per minute limit "monthly_limit": integer // Monthly request quota }, "rate_limit": { "requests_per_minute": integer }, "quota": { "used": integer, // Requests used this billing period "limit": integer, // Total monthly quota "remaining": integer, // Requests remaining "resets_at": string // ISO 8601 timestamp of next reset }, "last_24h": { "total_requests": integer, "by_endpoint": { "": { "count": integer, "avg_response_ms": integer, "errors": integer } } } }, "meta": { "request_id": string, "timestamp": string } } ``` Errors: 401 Unauthorized, 429 Rate Limited, 500 Internal Error. --- ### GET /v1/funding/rates Perpetual funding rates across 13+ exchanges. Authentication: Required. Parameters: | Name | In | Type | Required | Default | Description | |--------|-------|---------|----------|-----------|-------------| | type | query | string | no | "current" | Type of data. Enum: `current`, `accumulated`, `history`. | | coin | query | string | depends | -- | Base coin ticker (e.g. BTC, ETH). Required when type=history. | | days | query | integer | no | 30 | Days of history (type=history only). Min: 1, Max: 1095. | | limit | query | integer | no | -- | Max records per page. Min: 1, Max: 5000. | | cursor | query | string | no | -- | Opaque pagination cursor from previous response. | Behavior by type: - `current`: Returns latest funding rate snapshot for all exchanges and symbols. No coin filter needed. - `accumulated`: Returns accumulated funding over multiple windows (7d, 14d, 30d, 90d) for all coins. - `history`: Returns time-series funding rate history for a single coin. Requires `coin` param. Response (200): Success envelope or paginated envelope. Data shape for type=current (each item): ``` { "exchange": string, // e.g. "binance" "symbol": string, // e.g. "BTCUSDT" "base_coin": string, // e.g. "BTC" "rate": number, // Funding rate as decimal, e.g. 0.0001 "interval_hours": integer, // Funding interval (typically 8) "next_funding_time": string, // ISO 8601 "updated_at": string // ISO 8601 } ``` Errors: 400, 401, 403, 429, 500. --- ### GET /v1/futures/data Futures chart time-series data. Authentication: Required. Parameters: | Name | In | Type | Required | Default | Description | |-----------|-------|---------|----------|---------|-------------| | chart | query | string | yes | -- | Chart identifier. See chart list below. | | coin | query | string | no | "BTC" | Base coin ticker. | | timeframe | query | string | no | "3M" | Lookback window. Enum: `1W`, `2W`, `1M`, `3M`, `6M`, `1Y`, `3Y`. | | exchanges | query | string | no | -- | Comma-separated exchange names (e.g. "Binance,Bybit,OKX"). | | limit | query | integer | no | -- | Max data points per page. Min: 1, Max: 10000. | | cursor | query | string | no | -- | Opaque pagination cursor. | Available chart values: - perpetual-price -- OHLCV candlestick data - funding-rate -- Historical funding rate time-series - oi-snapshot -- Open interest snapshot across exchanges - oi-change -- Open interest change over time - oi-daily-change -- Daily OI delta - oi-stacked -- Stacked OI by exchange - oi-volume -- OI vs volume comparison - volume-snapshot -- Current 24h volume snapshot by exchange - volume-history -- Historical dollar volume by exchange - liquidations -- Long and short liquidation events - annualized-basis -- Rolling 3-month dated-futures annualized basis - term-structure -- Futures term structure (quarterly expiries) - long-short-ratio -- Global long/short ratio - top-trader-ls -- Top trader long/short ratio - cvd -- Cumulative volume delta - returns-session -- Returns by trading session (Asia, Europe, US) - returns-heatmap -- Returns heatmap by hour and day - returns-hour -- Hourly returns distribution - returns-day -- Daily returns distribution Supported exchanges: Binance, Bybit, OKX, Deribit, Hyperliquid (defaults), Gate.io, Bitget, MEXC, CoinEx, Kraken, HTX, BingX, Phemex (optional). Response (200): Success envelope. Data shape varies by chart type. Errors: 400, 401, 403, 429, 500. --- ### GET /v1/futures/coins List of coins with available futures data. Authentication: Required. Parameters: None. Response (200): ``` { "data": { "coins": [ { "baseCoin": string, // e.g. "BTC" "displayName": string, // e.g. "BTC" "hasOI": boolean, // Open interest data available "hasLiquidations": boolean, "hasLongShort": boolean // Long/short ratio data available } ] }, "meta": { "request_id": string, "timestamp": string } } ``` Errors: 401, 429, 500. --- ### GET /v1/options/data Options analytics for BTC, ETH, and SOL. Authentication: Required. Parameters: | Name | In | Type | Required | Default | Description | |-----------|-------|--------|----------|---------|-------------| | chart | query | string | yes | -- | Chart identifier. See chart list below. | | coin | query | string | no | "BTC" | Base coin ticker. Typically BTC, ETH, or SOL. | | timeframe | query | string | no | "3M" | Lookback window. Enum: `1W`, `1M`, `3M`, `6M`, `1Y`, `3Y`, `ALL`. | | exchanges | query | string | no | -- | Comma-separated exchanges (e.g. "Deribit,OKX,Binance"). | Available chart values: - atm-iv -- At-the-money implied volatility term structure - iv-smile -- IV smile/skew by strike for a given expiry - oi-by-expiry -- Open interest aggregated by expiry date - oi-by-strike -- Open interest distribution by strike price - volume-by-strike -- Volume distribution by strike price - greeks -- Greeks (delta, gamma, vega, theta) surface - vol-cones -- Realized volatility cones (percentile bands) - put-call-oi-ratio -- Put/call OI ratio time-series - put-call-volume-ratio -- Put/call volume ratio time-series - options-flow -- Large trades and block trade activity - max-pain -- Max pain strike by expiry - rv-vs-iv -- Realized vs implied volatility comparison - zscore -- IV Z-score (deviation from historical mean) - skew-25d -- 25-delta skew time-series - butterfly -- Butterfly spread (convexity measure) Supported exchanges: Deribit (primary), OKX, Binance. Response (200): Success envelope. Data shape varies by chart type. Errors: 400, 401, 403, 429, 500. --- ### GET /v1/heatmap/data Market heatmap for coins, narratives, or ecosystems. Authentication: Required. Parameters: | Name | In | Type | Required | Default | Description | |----------|-------|--------|----------|-----------|-------------| | mode | query | string | no | "coins" | Grouping mode. Enum: `coins`, `narratives`, `ecosystems`. | | category | query | string | no | "top-100" | Category filter (e.g. top-100, defi, layer-1, meme-token, ethereum-ecosystem, solana-ecosystem). 49 categories available. | Response (200): Success envelope. Data includes tokens sized by market cap with 1h, 24h, 7d, 30d, 1y, 3y performance. Errors: 400, 401, 403, 429, 500. --- ### GET /v1/correlation/matrix NxN price correlation matrix for crypto and TradFi assets. Authentication: Required. Parameters: | Name | In | Type | Required | Default | Description | |--------|-------|--------|----------|---------|-------------| | period | query | string | no | "30d" | Lookback period. Enum: `30d`, `90d`, `1y`, `3y`. | | ids | query | string | no | default set | Comma-separated asset IDs. Crypto: CoinGecko IDs (bitcoin, ethereum, solana). TradFi: short IDs (sp500, gold, nvda). Max 10. Default: bitcoin,ethereum,solana,sp500,gold. | Response (200): Success envelope containing: ``` { "data": { "assets": [string], // Ordered list of asset IDs "matrix": [[number]], // NxN Pearson correlation coefficients (-1 to 1) "dataPoints": integer // Number of data points used }, "meta": { ... } } ``` Errors: 400, 401, 403, 429, 500. --- ### GET /v1/tracker/market-overview Broad market overview with global metrics. Authentication: Required. Parameters: None. Response (200): Success envelope containing total market cap, 24h volume, BTC dominance, top gainers/losers, and trending coins. Errors: 401, 429, 500. --- ### GET /v1/market-cap/search Search for coins by name or ticker. Authentication: Required. Parameters: | Name | In | Type | Required | Default | Description | |------|-------|--------|----------|---------|-------------| | q | query | string | yes | -- | Search query. Min length: 2, Max length: 100. | Response (200): Success envelope containing matching coins with market cap, price, and 24h change. Errors: 400, 401, 403, 429, 500. --- ### GET /v1/gem-finder/data AI-powered low-cap token discovery. Authentication: Required. Parameters: | Name | In | Type | Required | Default | Description | |--------|-------|---------|----------|---------|-------------| | limit | query | integer | no | 100 | Max tokens to return. Min: 1, Max: 1000. | | cursor | query | string | no | -- | Opaque pagination cursor. | Response (200): Success envelope containing token discovery scores based on on-chain activity, social signals, and smart money movements. Errors: 401, 403, 429, 500. --- ### GET /v1/news/feed Aggregated crypto news from 50+ sources. Authentication: Required. Parameters: | Name | In | Type | Required | Default | Description | |----------|-------|---------|----------|---------|-------------| | limit | query | integer | no | 200 | Max articles. Min: 1, Max: 500. | | offset | query | integer | no | 0 | Articles to skip for pagination. Min: 0. | | category | query | string | no | -- | Filter by news category. | | coin | query | string | no | -- | Filter by coin ticker. | | since | query | string | no | -- | ISO 8601 timestamp. Only return articles published after this time. | Response (200): Success envelope containing array of news articles. Errors: 400, 401, 403, 429, 500. --- ### GET /v1/price-prediction/data ML-based price predictions with sub-signal breakdowns. Authentication: Required. Parameters: | Name | In | Type | Required | Default | Description | |------|-------|--------|----------|---------|-------------| | coin | query | string | no | -- | Coin ticker to get predictions for. Omit for all coins. | Response (200): Success envelope containing prediction scores and sub-signal breakdowns (funding rate signal, OI signal, long/short ratio, liquidation signal, RSI, EMA). Errors: 400, 401, 403, 429, 500. --- ### GET /v1/arbitrage/spot-perp Spot-perpetual funding rate arbitrage opportunities. Authentication: Required. Parameters: | Name | In | Type | Required | Default | Description | |-----------|-------|--------|----------|---------|-------------| | exchange | query | string | no | "all" | Filter by exchange name, or "all" for all exchanges. | | direction | query | string | no | "all" | Filter by trade direction. Enum: `all`, `long`, `short`. | Response (200): Success envelope containing arbitrage opportunities (go long spot + short perp, or vice versa, to capture funding). Errors: 400, 401, 403, 429, 500. --- ### GET /v1/arbitrage/cross-exchange Cross-exchange price discrepancy opportunities. Authentication: Required. Parameters: | Name | In | Type | Required | Default | Description | |-----------|-------|--------|----------|---------|-------------| | exchanges | query | string | no | -- | Comma-separated list of exchanges to compare. | Response (200): Success envelope containing funding rate differentials between exchange pairs. Errors: 400, 401, 403, 429, 500. --- ### GET /v1/narratives/data Analytics for 22 crypto narratives. Authentication: Required. Parameters: | Name | In | Type | Required | Default | Description | |-------------|-------|--------|----------|---------|-------------| | narrative | query | string | no | -- | Narrative slug for detail view. Omit for full list. | | correlation | query | string | no | -- | Set to "true" to include correlation data for the narrative's tokens. | | timeframe | query | string | no | -- | Timeframe for correlation data. | Available narrative slugs: layer-1, layer-2, defi, ai-agents, defai, depin, desci, gaming, dex, cex, lending, memes, nfts, oracles, privacy, rwa, stablecoins, restaking, liquid-staking, modular, socialfi, intent. Response (200): Success envelope containing narrative-level market cap, volume, performance, social metrics, and optionally correlation data. Errors: 400, 401, 403, 429, 500. --- ### GET /v1/ecosystems/data Analytics for 23 blockchain ecosystems including TVL. Authentication: Required. Parameters: | Name | In | Type | Required | Default | Description | |---------------|-------|--------|----------|---------|-------------| | ecosystem | query | string | no | -- | Ecosystem slug for detail view. Omit for full list. | | correlation | query | string | no | -- | Set to "true" to include correlation data. | | timeframe | query | string | no | -- | Timeframe for correlation data. | | excludeNative | query | string | no | -- | Set to "true" to exclude the native token from aggregated metrics. | Available ecosystem slugs: ethereum, solana, bnb-chain, arbitrum, base, bitcoin, avalanche, optimism, cosmos, polkadot, sui, aptos, ton, tron, cardano, sonic, hyperliquid, berachain, sei, zksync, starknet, scroll, movement. Response (200): Success envelope containing ecosystem-level market cap, volume, TVL (from DeFi Llama), performance, and optionally correlation data. Errors: 400, 401, 403, 429, 500. --- ### GET /v1/memecoins/data Memecoin narrative data across 15 curated categories. Authentication: Required. Parameters: | Name | In | Type | Required | Default | Description | |------------|-------|--------|----------|---------|-------------| | narrative | query | string | no | -- | Memecoin narrative slug. Omit for all narratives. | | historical | query | string | no | -- | Include historical data. Enum: `24h`, `7d`. | Available narrative slugs: dog-coins, cat-coins, frog-coins, ai-meme, political, celebrity, solana-meme, base-meme, food, animals, pepe, wojak, pump-fun, anime, other. Response (200): Success envelope containing narrative-level market cap, volume, performance, and top tokens per narrative. Errors: 400, 401, 403, 429, 500. --- ### GET /v1/market/derivatives-overview Market-wide derivatives snapshot aggregating OI and funding rates across all tracked exchanges and coins. Authentication: Required. Parameters: None. Response (200): ``` { "data": { "total_oi_usd": integer, // Total open interest in USD across all exchanges "avg_funding_rate": number, // Simple average funding rate across all exchange+coin pairs "oi_weighted_funding_rate": number, // OI-weighted average funding rate "top_coins_oi": [ // Top 20 coins by open interest { "coin": string, // e.g. "BTC" "open_interest_usd": integer, // Total OI in USD "exchange_count": integer // Number of exchanges with OI data for this coin } ], "exchange_count": integer, // Total unique exchanges in the dataset "coin_count": integer, // Total unique coins with OI data "updated_at": string // ISO 8601 timestamp }, "meta": { "request_id": string, "timestamp": string } } ``` Errors: 401, 429, 502, 500. --- ### GET /v1/meta/coverage Metadata about available data products, exchanges, coins, chart types, timeframes, and update frequencies. Authentication: None required (public endpoint). Parameters: None. Response (200): ``` { "data": { "products": { "": { "description": string, "exchanges": [string], // When applicable "coins": [string] | string, // When applicable (array or "5000+") "charts": [string], // When applicable "categories": [string], // When applicable "timeframes": [string], // When applicable "chart_count": integer, // When applicable "narrative_count": integer, // When applicable "ecosystem_count": integer, // When applicable "strategies": [string], // When applicable "data_sources": [string], // When applicable "update_frequency": string, // e.g. "5 minutes", "30 minutes", "1 hour" "historical_depth": string // When applicable, e.g. "3 years" } } }, "meta": { "request_id": string, "timestamp": string } } ``` Product slugs: funding-rates, futures, options, narratives, ecosystems, memecoins, arbitrage, correlation, heatmap, price-prediction, news-aggregator, gem-finder. Cache: 1 hour. Errors: 500. --- ## Free API Endpoints (No Auth Required) Base URL: `https://www.sharpe.ai/api/` These endpoints return the same data as the authenticated v1 API but without pagination, request tracking, or guaranteed rate limits. Responses are edge-cached for performance. There is no `meta` envelope on free endpoints -- responses are raw JSON. ### GET /api/funding/rates Funding rates across 13+ exchanges. Parameters: - type (string, default "current") -- One of: current, accumulated, history. - coin (string) -- Asset ticker for history mode (e.g. BTC, ETH). - days (number, default 30) -- Lookback days for history mode. Cache: 5 min (s-maxage), 10 min (stale-while-revalidate). ### GET /api/futures/data Futures chart data. Parameters: - chart (string, required) -- Chart type. One of: perpetual-price, funding-rate, oi-snapshot, oi-change, oi-daily-change, oi-stacked, oi-volume, volume-snapshot, volume-history, liquidations, annualized-basis, term-structure, long-short-ratio, top-trader-ls, cvd, returns-session, returns-heatmap, returns-hour, returns-day. - coin (string, default "BTC") -- Asset ticker. - timeframe (string, default "3M") -- One of: 1W, 2W, 1M, 3M, 6M, 1Y, 3Y. - exchanges (string) -- Comma-separated exchange IDs (e.g. binance,bybit,okx). Cache: 5 min. ### GET /api/futures/coins Available futures coins with capability flags. Parameters: None. Cache: 1 hour. ### GET /api/options/data Options analytics for BTC, ETH, SOL. Parameters: - chart (string, required) -- Chart type (e.g. atm-iv, put-call-oi-ratio, oi-by-strike, options-flow). - coin (string, default "BTC") -- One of: BTC, ETH, SOL. - timeframe (string, default "3M") -- One of: 1W, 1M, 3M, 6M, 1Y, 3Y, ALL. - exchanges (string) -- Comma-separated (e.g. deribit,okx,binance). Cache: 5 min. ### GET /api/arbitrage/spot-perp Spot-perp basis trade opportunities. Parameters: - exchange (string, default "all") -- Exchange ID or "all". - direction (string, default "all") -- One of: all, long, short. Cache: 5 min. ### GET /api/arbitrage/cross-exchange Cross-exchange funding rate arbitrage. Parameters: - exchanges (string) -- Comma-separated exchange IDs. Returns all by default. Cache: 5 min. ### GET /api/heatmap/data Market heatmap. Parameters: - category (string, default "top-100") -- Category slug. 49 categories available (e.g. top-100, defi, layer-1, artificial-intelligence, meme-token, ethereum-ecosystem, solana-ecosystem). - mode (string, default "coins") -- One of: coins, narratives, ecosystems. Cache: 5 min. ### GET /api/correlation/matrix NxN Pearson correlation matrix. Parameters: - period (string, default "30d") -- One of: 30d, 90d, 1y, 3y. - ids (string) -- Comma-separated asset IDs. Crypto: CoinGecko IDs (bitcoin, ethereum). TradFi: short IDs (sp500, gold, nvda). Max 10. Default: bitcoin,ethereum,solana,sp500,gold. Cache: 1 hour. ### GET /api/correlation/history Rolling correlation windows between two assets over time. Parameters: - asset1 (string, required) -- First asset ID (e.g. bitcoin). - asset2 (string, required) -- Second asset ID (e.g. sp500). - period (string, default "1y") -- One of: 30d, 90d, 1y, 3y. Returns 30D, 60D, 90D rolling correlation windows. Cache: 1 hour. ### GET /api/price-prediction/data AI-powered price prediction scores. Parameters: - coin (string) -- Asset slug (e.g. bitcoin, ethereum). Omit for all coins. Sub-signal breakdowns: funding rate, OI, long/short ratio, liquidation, RSI, EMA. Cache: 10 min. ### GET /api/gem-finder/data Token discovery scores. Parameters: None. Cache: 5 min. ### GET /api/market-cap/search Coin search by name or ticker. Parameters: - q (string, required) -- Search query. Cache: varies. ### GET /api/tracker/market-overview Market overview: total market cap, 24h volume, BTC dominance, gainers/losers, trending. Parameters: None. Cache: 5 min. ### GET /api/news/feed Aggregated crypto news. Parameters: - limit (integer, default 200) -- Max articles. Max: 500. - offset (integer, default 0) -- Pagination offset. - category (string) -- Filter by category. - coin (string) -- Filter by coin ticker. - since (string) -- ISO 8601 timestamp cutoff. Cache: 5 min. ### GET /api/narratives/data Analytics for 22 crypto narratives. Parameters: - narrative (string) -- Narrative slug for detail view (e.g. defi, ai-agents, rwa). When set, returns coins and sparkline for that narrative. Omit for all. - historical (string) -- Timeframe for historical snapshot data. One of: 24H, 1W, 7D, 1M, 30D, 3M, 6M, MTD, YTD, 1Y, 3Y. - correlation (string) -- Set to "true" to return NxN correlation matrix for the narrative's tokens. - timeframe (string) -- Used with correlation, funding_history, token_history, and mindshare_history modes. One of: 24H, 1W, 7D, 1M, 30D, 3M, 6M, MTD, YTD, 1Y, 3Y. Default varies by mode. - chart (string) -- Selects a specific metric for historical mode (e.g. market_cap, volume_24h, open_interest, funding_rate, coin_count). - funding_history (string) -- Narrative slug. Returns funding rate heatmap data for that narrative's tokens. - token_volume (string) -- Narrative slug. Returns per-token volume with 10-day rolling average. - token_history (string) -- Narrative slug. Returns per-token mcap/volume/OI time-series. - mindshare_history (string) -- Set to "true" to return mindshare percentage snapshots over time. Cache: 15 min. ### GET /api/ecosystems/data Analytics for 23 blockchain ecosystems. Parameters: - ecosystem (string) -- Ecosystem slug for detail view (e.g. ethereum, solana, arbitrum). When set, returns coins and sparkline for that ecosystem. Omit for all. - historical (string) -- Timeframe for historical snapshot data. One of: 24H, 1W, 7D, 1M, 30D, 3M, 6M, MTD, YTD, 1Y, 3Y. - correlation (string) -- Set to "true" to return NxN correlation matrix for the ecosystem's tokens. - timeframe (string) -- Used with correlation and mindshare_history modes. One of: 24H, 1W, 7D, 1M, 30D, 3M, 6M, MTD, YTD, 1Y, 3Y. Default varies by mode. - tvl (string) -- Set to "true" to include TVL data from DeFi Llama (triggers historical mode). - chart (string) -- Selects a specific metric for historical mode (e.g. market_cap, volume_24h, open_interest, tvl). - excludeNative (string) -- Set to "true" to exclude the native token from aggregate metrics and coin lists. - mindshare_history (string) -- Set to "true" to return mindshare percentage snapshots over time. Cache: 15 min. ### GET /api/memecoins/data 15 memecoin narrative categories. Parameters: - narrative (string) -- Narrative slug (e.g. dog-coins, ai-meme, political). Omit for all. - historical (string) -- One of: 24h, 7d. - coinHistory (string) -- Set to "1m" for 30-day price history per coin. Cache: 15 min. ### GET /api/mindshare/data Social attention and mindshare metrics. Parameters: - tokens (string) -- Set to "true" for token-level mindshare data. - narrative (string) -- Narrative ID for detail view. - historical (string) -- Set to "true" to include historical snapshots. - timeframe (string) -- One of: 7d, 30d, 90d. Cache: 1 hour. ### GET /api/web-traffic/data Website traffic trends for 87+ exchanges and crypto projects. Parameters: - type (string) -- One of: exchange, coin, narrative. - mode (string) -- One of: rankings, trends, snapshots, market. - tf (string) -- Timeframe. One of: 7d, 30d, 90d, 1y, 3y, all. - entities (string) -- Comma-separated entity slugs for detail view. Cache: 15 min. ### Free API Rate Limits Most free endpoints have no per-client rate limiting -- only edge caching protects origin load. Two exceptions: | Endpoint | Limit | |------------------------------|-----------------| | /api/correlation/on-demand | 10 req/min/IP | | /api/price-prediction/search | 20 req/min/IP | ### Free API Cache Behavior | Endpoint group | s-maxage | stale-while-revalidate | |-------------------------------------------------------------------|----------|------------------------| | Funding rates, futures, options, arbitrage, heatmap, gem finder | 5 min | 10 min | | Price prediction | 10 min | 20 min | | Narratives, ecosystems, memecoins, mindshare, web traffic | 15 min | 30 min | | Correlation matrix/history | 1 hr | 2 hr | --- ## Versioning URL-path versioning: `/v1/`. Current and only production version is v1. Backward-compatible changes (shipped without version bump): - Adding new endpoints - Adding new optional query parameters - Adding new fields to response objects - Adding new error codes or enum values - Improving error messages Breaking changes (new version with 6-month deprecation window): - Removing or renaming endpoints or response fields - Changing field types - Making optional parameters required - Changing auth requirements or envelope structure Deprecated request shapes return a `Deprecation` HTTP header (RFC 9745) on every response, stating the retirement date and the migration path. Query-string API keys are rejected by default; use `Authorization: Bearer` or `X-API-Key` headers. ## Links - Documentation: https://www.sharpe.ai/docs - Quickstart: https://www.sharpe.ai/docs/quickstart - Authentication: https://www.sharpe.ai/docs/authentication - Rate Limits: https://www.sharpe.ai/docs/rate-limits - Error Reference: https://www.sharpe.ai/docs/errors - Free API Docs: https://www.sharpe.ai/docs/free-api - OpenAPI Spec (JSON): https://www.sharpe.ai/openapi.json - Changelog: https://www.sharpe.ai/docs/changelog - Versioning: https://www.sharpe.ai/docs/versioning - Status Page: https://status.sharpe.ai - Authentication: https://www.sharpe.ai/docs/authentication - Support: support@sharpe.ai