Crypto market data API: liquidations, funding, open interest and MCP
Build with a read-only crypto API for OHLCV, liquidation heatmaps, open interest, funding and more. Connect MCP tools to AI clients. API-only plans from $24.99/month.
API pricing and access
API Starter is 24.99 per month in USD and includes 30 requests per minute.
API Builder is 69.99 per month in USD and includes 60 requests per minute.
API Growth is 249.99 per month in USD and includes 120 requests per minute.
API Scale is 499.99 per month in USD and includes 240 requests per minute.
Weekly and yearly billing and custom enterprise terms are also available. The pricing page lists the full billing-period totals. API-only plans do not include a trial or paid research chart access. Verified Pro, Advanced and Ultimate research subscribers also have their documented API allowances.
Which market data can I access?
Prices, OHLCV candles, open interest, funding, liquidation estimates and recorded orders, options, technical studies, RSI heatmaps, ETF flows, market breadth, token releases and whale positions are documented in the dataset catalog.
How does MCP access work?
Connect a client that supports Streamable HTTP and a custom Bearer authorization header to /api/mcp. The list_market_datasets and get_market_data tools provide read-only access through your API key.
Can I place trades through this API?
No. The API and MCP tools read market data. They do not place trades, connect an exchange account or retrieve private account and billing records.
REST API quickstart
Create or sign in to a verified AutoSignal account, activate paid or approved complimentary access, and create an API key in the developer area. Keys are shown once. Store them on your server or in a secure credential store.
Send GET requests to /api/v1 with Authorization: Bearer YOUR_API_KEY. Keys belong in request headers. Keep them out of public browser bundles, URLs, analytics, screenshots and source control.
curl "https://autosignal.ai/api/v1/candles/BTC?interval=1h&limit=100" \ -H "Authorization: Bearer YOUR_API_KEY"
Access and limits
Key creation defaults to 90 days. The key-management API accepts 1–365 days and allows up to five active keys per account. Revoke an exposed key immediately. Revoked and expired keys stop working.
All keys on an account share its plan allowance: Pro 60, Advanced 120 and Ultimate 240 requests per minute. API-only allowances are API Starter 30, API Builder 60, API Growth 120, API Scale 240 requests per minute. Additional IP limits apply. Access is checked on each request and stops when the owner’s access expires. API-only access does not unlock paid chart subscriptions. Raw strategy feeds require active paid access.
Requests, pagination and errors
The dataset catalog below lists every REST resource allowed by the developer API. The downloadable OpenAPI specification describes paths, accepted query names, authorization and response status codes. Response shapes vary by dataset; there is no universal response envelope.
Query names are case-sensitive. Unsupported or repeated query parameters return 400. Asset symbols use uppercase letters and digits, for example BTC. Use market-symbols or research-assets to discover coverage rather than assuming every asset supports every dataset.
Candles return rows, history and hasMore. To request earlier candles, pass before as an exclusive Unix-millisecond boundary using the earliest returned candle time. Merge by native time and symbol, deduplicate overlap and stop when hasMore is false. Coin lists use page and limit; coin search uses offset. Each dataset retains its own source bounds.
401 means the key or verified owner is invalid. 403 means access is missing or the resource requires a paid plan. 404 means an unknown resource or unavailable asset. 405 requires GET. 429 includes Retry-After in seconds. 503 means a source or required service is unavailable.
Honor Retry-After. Otherwise use bounded exponential backoff with jitter for transient failures, cancel requests when they are no longer needed, and avoid retrying authentication or validation failures. Share identical reads in your application rather than polling once per viewer.
Units, clocks and source coverage
Preserve the dataset’s declared units and source timestamps. Retrieval time is not observation time. Candle timestamps use the native UTC boundary; calendar months and years have variable durations. Completed-candle models identify the completed source boundary, which can legitimately be older than the request.
Open interest may be supplied as base-asset quantity, contract count or USD notional. Contract multipliers and inverse contracts matter. Compare totals only for matching exchanges, instruments, units and observation times. The coverage endpoint identifies included, excluded and unavailable markets; totals are not a claim of complete global coverage.
Funding rates belong to a particular contract and settlement interval. A one-hour rate and an eight-hour rate are not directly comparable without explicit normalization. Preserve the returned interval and next-settlement time.
Recorded liquidations are observed forced orders. Heatmaps and liquidation pools are model estimates and must be labeled as estimates. Historical matrix cells have no USD amount unless the source supplies it. Options readings use native Deribit data; fundamentals identify their DefiLlama sources.
Null, missing or unavailable data is not zero. A successful response can contain partial exchange coverage or limited historical retention. Keep source status, coverage, history and saved-data timestamps beside the readings. Do not turn saved observations into a current reading or fill gaps with invented values.
MCP connection guide
Use an MCP client that supports Streamable HTTP and custom Authorization headers. Connect to /api/mcp with the same Bearer key used by the REST API. Keep that key in the client’s secure credential store.
list_market_datasets returns the supported catalog. get_market_data reads one allowed dataset using the requested path and accepted query parameters. Tools are read-only and retain the owner’s API access checks, dataset restrictions and plan request limits.
Data tool calls share the REST account allowance. MCP protocol requests have an additional limit of 120 per minute per account. Account, payment, administrator and provider credentials are not market datasets.
URL: https://autosignal.ai/api/mcp Transport: Streamable HTTP Authorization: Bearer YOUR_API_KEY Tools: list_market_datasets, get_market_data
Dataset reference
Fundamentals · stablecoins
GET https://autosignal.ai/api/v1/fundamentals/stablecoins
Fundamentals · protocol-fees
GET https://autosignal.ai/api/v1/fundamentals/protocol-fees
Fundamentals · protocol-revenue
GET https://autosignal.ai/api/v1/fundamentals/protocol-revenue
Fundamentals · dex-volume
GET https://autosignal.ai/api/v1/fundamentals/dex-volume
Fundamentals · defi-tvl
GET https://autosignal.ai/api/v1/fundamentals/defi-tvl
Fundamentals · chain-tvl
GET https://autosignal.ai/api/v1/fundamentals/chain-tvl
Fundamentals · defi-yields
GET https://autosignal.ai/api/v1/fundamentals/defi-yields
Perpetual market quotes
GET https://autosignal.ai/api/v1/markets?limit=20
limit: Requested page or candle count. Each source handler applies its own documented bounds; inspect returned rows and history.
Ranked coins
GET https://autosignal.ai/api/v1/coins?page=1&limit=20
page: One-based catalog page number.
limit: Requested page or candle count. Each source handler applies its own documented bounds; inspect returned rows and history.
category: Catalog category identifier; all selects the full catalog.
Coin search
GET https://autosignal.ai/api/v1/coins/search?q=bitcoin
q: Coin name or symbol to search for.
offset: Zero-based result offset.
category: Catalog category identifier; all selects the full catalog.
Catalog quotes
GET https://autosignal.ai/api/v1/coin-quotes
Supported perpetual symbols
GET https://autosignal.ai/api/v1/market-symbols
Chart assets and logos
GET https://autosignal.ai/api/v1/chart-assets
Coin identity
GET https://autosignal.ai/api/v1/coin-identity/BTC
Derivatives markets
GET https://autosignal.ai/api/v1/coin-derivatives/1
OHLCV candles
GET https://autosignal.ai/api/v1/candles/BTC?interval=5m&limit=100
interval: Source candle or sampling interval. Availability and history depend on the dataset; unsupported selections return an error rather than another interval.
limit: Requested page or candle count. Each source handler applies its own documented bounds; inspect returned rows and history.
before: Exclusive historical candle boundary as Unix milliseconds. Request earlier candles using the earliest returned row time.
Response fields
symbol- string
interval- string
rows- array
rows[].time- integer — Native UTC candle open as Unix milliseconds.
rows[].closeTime- integer — Native candle close boundary as Unix milliseconds, when supplied.
rows[].open- number
rows[].high- number
rows[].low- number
rows[].close- number
rows[].volume- number,null — Base-asset volume when supplied. Absence is unavailable, not zero.
rows[].quoteVolume- number,null — Quote-asset volume when supplied.
rows[].takerBuyQuoteVolume- number,null
history- object,null — Source identity, retention, source time and volume coverage. Preserve the complete object.
hasMore- boolean — Whether earlier native source history may be requested.
Asset summary
GET https://autosignal.ai/api/v1/asset/BTC
interval: Source candle or sampling interval. Availability and history depend on the dataset; unsupported selections return an error rather than another interval.
RSI heatmap
GET https://autosignal.ai/api/v1/rsi-map?interval=1h
interval: Source candle or sampling interval. Availability and history depend on the dataset; unsupported selections return an error rather than another interval.
Open interest history
GET https://autosignal.ai/api/v1/open-interest/BTC?interval=1h&days=7
interval: Source candle or sampling interval. Availability and history depend on the dataset; unsupported selections return an error rather than another interval.
days: Requested historical lookback in days, subject to native source retention.
Response fields
symbol- string
venue- string
source- string
instrument- string
interval- string
days- integer
asOf- integer — UTC Unix milliseconds. Preserve the observation time supplied by this field.
first- integer,null — UTC Unix milliseconds. Preserve the observation time supplied by this field.
last- integer,null — UTC Unix milliseconds. Preserve the observation time supplied by this field.
rows- array
rows[].time- integer — UTC Unix milliseconds. Preserve the observation time supplied by this field.
rows[].base- number
rows[].usd- number,null
rows[].price- number,null
rows[].usdUnavailable- boolean
rows[].sourceUsd- number
priceAvailable- boolean
priceSource- string
priceBasis- string
change24h- number,null — Percentage change across exactly 24 hours when both USD observations exist.
Aggregate open interest
GET https://autosignal.ai/api/v1/open-interest-aggregate/BTC
Response fields
symbol- string
usd- number — Sum of included fresh native contracts. This is not a claim of complete market coverage.
asOf- integer — Oldest included contract observation, as Unix milliseconds.
observedAt- integer — UTC Unix milliseconds. Preserve the observation time supplied by this field.
venues- integer
rows- array
rows[].symbol- string
rows[].venue- string
rows[].instrument- string
rows[].market- string
rows[].usd- number — USD notional after the declared single-sided normalization and valuation.
rows[].asOf- integer — UTC Unix milliseconds. Preserve the observation time supplied by this field.
rows[].observedAt- integer — UTC Unix milliseconds. Preserve the observation time supplied by this field.
rows[].base- number
rows[].valuationPrice- number
rows[].markAsOf- integer — UTC Unix milliseconds. Preserve the observation time supplied by this field.
rows[].counting- string
rows[].timestampBasis- string
rows[].calculation- string
rows[].quoteCurrency- string
rows[].quoteUsdRate- number,null
rows[].quoteAsOf- integer,null — UTC Unix milliseconds. Preserve the observation time supplied by this field.
rows[].usdBasis- string
venueRows- array
venueRows[].venue- string
venueRows[].usd- number
venueRows[].asOf- integer — UTC Unix milliseconds. Preserve the observation time supplied by this field.
venueRows[].contracts- array
counting- string
complete- boolean
scope- string
sourceVersion- string
unavailableVenues- array
excludedVenues- array
Open interest market coverage
GET https://autosignal.ai/api/v1/open-interest-coverage/BTC
Response fields
symbol- string
venue- string
scope- string
sourceVersion- string — Version of current contract identity, expiry and component-clock validation.
asOf- integer — Oldest quantity, mark or USD conversion observation among valued contracts; never the retrieval time.
fetchedAt- integer — Original receipt time. Reusing this snapshot does not renew its source observations.
expiresAt- integer — Earliest native delivery or two-minute component-source age boundary among valued contracts. Revalidate before serving a current total at or after this time.
rows- array
rows[].instrument- string
rows[].type- string — Native Binance contractType, such as PERPETUAL or CURRENT_QUARTER.
rows[].market- string
rows[].expiry- integer — Native deliveryDate for a dated future. Omitted for perpetuals; no expiry is inferred from an instrument name.
rows[].margin- string
rows[].quantity- number,null
rows[].quantityUnit- string
rows[].quoteCurrency- string
rows[].quoteUsdRate- number,null
rows[].quoteAsOf- integer,null — UTC Unix milliseconds. Preserve the observation time supplied by this field.
rows[].usdBasis- string,null
rows[].contractSize- number,null
rows[].usd- number,null
rows[].asOf- integer,null — Oldest available quantity, mark and USD-conversion observation used for this valuation.
rows[].quantityAsOf- integer,null — Original Binance openInterest time before combining it with valuation clocks.
rows[].markAsOf- integer,null — UTC Unix milliseconds. Preserve the observation time supplied by this field.
rows[].valuationPrice- number,null
rows[].stale- boolean
rows[].valuationUnavailable- boolean
coveredUsd- number — Sum of contracts with an available valuation; inspect partial and missingFamilies.
totalUsd- number,null — Null when a contract or family is unavailable. Never replace with coveredUsd as a complete total.
partial- boolean
coveredContracts- integer
listedContracts- integer
unverifiedContracts- integer — Listed metadata rows without a verifiable current contract identity or delivery date; their exclusion makes the result partial.
missingFamilies- array
Current funding rates and settlement intervals
GET https://autosignal.ai/api/v1/funding-current/BTC
Response fields
symbol- string
kind- string
asOf- integer — Snapshot time in Unix milliseconds. Individual venue times remain authoritative.
venues- array
venues[].venue- string
venues[].instrument- string
venues[].fundingRate- number,null — Native fractional rate per declared settlement interval.
venues[].percent- number,null — Native rate multiplied by 100.
venues[].percent8h- number,null — Explicit eight-hour normalization when supplied.
venues[].intervalHours- number,null
venues[].asOf- integer,null
venues[].nextFundingTime- integer,null
venues[].timestampBasis- string
Funding settlement history
GET https://autosignal.ai/api/v1/funding-history/BTC
days: Requested historical lookback in days, subject to native source retention.
Response fields
symbol- string
venue- string
instrument- string
market- string
days- integer
asOf- integer — UTC Unix milliseconds. Preserve the observation time supplied by this field.
rows- array
rows[].time- integer — UTC Unix milliseconds. Preserve the observation time supplied by this field.
rows[].rate- number — Fractional funding rate for this native settlement.
rows[].percent- number — Settlement rate multiplied by 100; not an annualized rate.
rows[].intervalHours- number,null — Hours since the preceding available settlement, when known.
coverage- object
sumPercent- number — Arithmetic sum of returned settlement percentages, not compounded portfolio return.
truncated- boolean
Long and short account positioning
GET https://autosignal.ai/api/v1/positioning
Current OI-weighted funding estimate
GET https://autosignal.ai/api/v1/funding-weighted/BTC
Response fields
kind- string
symbol- string
sourceVersion- string
percent8h- number — Current matched-contract estimate normalized linearly to eight hours, expressed in percent. Includes current/projected quote types, not realized funding.
fraction8h- number — The same eight-hour estimate as a fractional rate, equal to percent8h divided by100.
matchedOiUsd- number
eligiblePerpetualOiUsd- number
coverage- number — Matched OI divided by eligible fresh perpetual OI in this native source universe; not global market coverage.
asOf- integer — UTC Unix milliseconds. Preserve the observation time supplied by this field.
expiresAt- integer — Earliest expiry among inputs used in the rate or coverage denominator; never present this result as current after this time.
rows- array
rows[].venue- string
rows[].instrument- string
rows[].oiUsd- number
rows[].percent8h- number
rows[].fundingAsOf- integer — UTC Unix milliseconds. Preserve the observation time supplied by this field.
rows[].oiAsOf- integer — UTC Unix milliseconds. Preserve the observation time supplied by this field.
rows[].rateKind- string,null
Recorded liquidation orders and totals
GET https://autosignal.ai/api/v1/liquidations
Estimated liquidation heatmap
GET https://autosignal.ai/api/v1/liquidation-map/BTC?timeframe=24h
timeframe: Heatmap period, for example 24h. Cell values and source coverage are specific to that period.
Options strikes, expiries and put/call data
GET https://autosignal.ai/api/v1/options/BTC
Current listed options 24h traded volume in base coin
GET https://autosignal.ai/api/v1/options-volume/BTC
Aggressive trade executions
GET https://autosignal.ai/api/v1/executions/BTC
window: Dataset-specific lookback or activity window; see the endpoint example and coverage fields.
Technical study series
GET https://autosignal.ai/api/v1/studies/BTC?interval=1h
interval: Source candle or sampling interval. Availability and history depend on the dataset; unsupported selections return an error rather than another interval.
anchor: Anchored-study start as supported by the study handler.
before: Exclusive historical candle boundary as Unix milliseconds. Request earlier candles using the earliest returned row time.
settings: URL-encoded JSON object with study settings. Preserve names and types from the study configuration; do not send executable code.
AutoSignal indicators
GET https://autosignal.ai/api/v1/repo/indicators/BTC?indicator=gex&frame=1h&expiry=7d
frame: Study candle frame. Completed-candle models retain the actual completed source boundary.
window: Dataset-specific lookback or activity window; see the endpoint example and coverage fields.
indicator: Native indicator identifier.
expiry: Options expiry selection, for example 7d.
strategy: Native strategy identifier. Raw strategy feeds require actual paid access.
session: Opening-range session identifier.
range: Opening-range selection.
AutoSignal quant
GET https://autosignal.ai/api/v1/repo/quant/BTC
frame: Study candle frame. Completed-candle models retain the actual completed source boundary.
window: Dataset-specific lookback or activity window; see the endpoint example and coverage fields.
indicator: Native indicator identifier.
expiry: Options expiry selection, for example 7d.
strategy: Native strategy identifier. Raw strategy feeds require actual paid access.
session: Opening-range session identifier.
range: Opening-range selection.
AutoSignal signal
GET https://autosignal.ai/api/v1/repo/signal/BTC
frame: Study candle frame. Completed-candle models retain the actual completed source boundary.
window: Dataset-specific lookback or activity window; see the endpoint example and coverage fields.
indicator: Native indicator identifier.
expiry: Options expiry selection, for example 7d.
strategy: Native strategy identifier. Raw strategy feeds require actual paid access.
session: Opening-range session identifier.
range: Opening-range selection.
AutoSignal liquidations
GET https://autosignal.ai/api/v1/repo/liquidations/BTC
frame: Study candle frame. Completed-candle models retain the actual completed source boundary.
window: Dataset-specific lookback or activity window; see the endpoint example and coverage fields.
indicator: Native indicator identifier.
expiry: Options expiry selection, for example 7d.
strategy: Native strategy identifier. Raw strategy feeds require actual paid access.
session: Opening-range session identifier.
range: Opening-range selection.
AutoSignal passage
GET https://autosignal.ai/api/v1/repo/passage/BTC
frame: Study candle frame. Completed-candle models retain the actual completed source boundary.
window: Dataset-specific lookback or activity window; see the endpoint example and coverage fields.
indicator: Native indicator identifier.
expiry: Options expiry selection, for example 7d.
strategy: Native strategy identifier. Raw strategy feeds require actual paid access.
session: Opening-range session identifier.
range: Opening-range selection.
AutoSignal opening-range
GET https://autosignal.ai/api/v1/repo/opening-range/BTC
frame: Study candle frame. Completed-candle models retain the actual completed source boundary.
window: Dataset-specific lookback or activity window; see the endpoint example and coverage fields.
indicator: Native indicator identifier.
expiry: Options expiry selection, for example 7d.
strategy: Native strategy identifier. Raw strategy feeds require actual paid access.
session: Opening-range session identifier.
range: Opening-range selection.
AutoSignal strategies
GET https://autosignal.ai/api/v1/repo/strategies/BTC
frame: Study candle frame. Completed-candle models retain the actual completed source boundary.
window: Dataset-specific lookback or activity window; see the endpoint example and coverage fields.
indicator: Native indicator identifier.
expiry: Options expiry selection, for example 7d.
strategy: Native strategy identifier. Raw strategy feeds require actual paid access.
session: Opening-range session identifier.
range: Opening-range selection.
Market breadth
GET https://autosignal.ai/api/v1/breadth
timeframe: Heatmap period, for example 24h. Cell values and source coverage are specific to that period.
AutoSignal Fear and Greed
GET https://autosignal.ai/api/v1/sentiment
Token release schedule
GET https://autosignal.ai/api/v1/token-unlocks
ETF flows
GET https://autosignal.ai/api/v1/etf-flows/BTC
Whale positions and wallet lookup
GET https://autosignal.ai/api/v1/hyperliquid
address: Public Hyperliquid wallet address. Never send a private key.
Exchange wallet transfers
GET https://autosignal.ai/api/v1/exchange-flows
asset: Asset filter.
exchange: Exchange identifier.
window: Dataset-specific lookback or activity window; see the endpoint example and coverage fields.
side: Transfer direction filter.
offset: Zero-based result offset.
limit: Requested page or candle count. Each source handler applies its own documented bounds; inspect returned rows and history.
end: Historical upper boundary supported by the dataset.
Research data
GET https://autosignal.ai/api/v1/research/open-interest-activity?symbol=BTC&interval=1h
symbol: Uppercase base-asset symbol, for example BTC or ETH. Use market-symbols to discover supported perpetual symbols.
interval: Source candle or sampling interval. Availability and history depend on the dataset; unsupported selections return an error rather than another interval.
window: Dataset-specific lookback or activity window; see the endpoint example and coverage fields.
days: Requested historical lookback in days, subject to native source retention.
limit: Requested page or candle count. Each source handler applies its own documented bounds; inspect returned rows and history.
scope: Dataset-specific research scope.
Supported research assets
GET https://autosignal.ai/api/v1/research-assets/open-interest-activity
Archived oi
GET https://autosignal.ai/api/v1/archive/oi/BTC
days: Requested historical lookback in days, subject to native source retention.
interval: Source candle or sampling interval. Availability and history depend on the dataset; unsupported selections return an error rather than another interval.
Archived heatmap
GET https://autosignal.ai/api/v1/archive/heatmap/BTC
days: Requested historical lookback in days, subject to native source retention.
interval: Source candle or sampling interval. Availability and history depend on the dataset; unsupported selections return an error rather than another interval.
Archived liquidations
GET https://autosignal.ai/api/v1/archive/liquidations/BTC
days: Requested historical lookback in days, subject to native source retention.
interval: Source candle or sampling interval. Availability and history depend on the dataset; unsupported selections return an error rather than another interval.