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.

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.