Skip to content
Velo

Data

The data endpoints

Get rows

GET/api/v1/rows

Returns data in CSV format.

HTTP requests are limited to returning 22,500 values per request. See an example implementation of request batching here.

Specify exactly one of products or coins. The API rejects requests carrying both, or neither.


The 3m_basis_ann column returns the 3-month annualized futures basis and follows stricter rules than other columns:

  • Only available with type=futures.
  • Must be the only entry in columns.
  • Must be requested with coins, not products.
  • Only BTC and ETH are supported.
  • exchanges may be omitted to include all exchanges with basis data.

For example: type=futures&columns=3m_basis_ann&coins=BTC,ETH.

Query Parameters

typeRequired
string

Product type.

Values
futuresoptionsspot
exchangesRequired
string[]

Exchanges to include. Comma separated for multiple. May only be omitted for 3m_basis_ann requests.

Values
binancebinance-coin-marginbinance-futuresbybitbybit-coin-margin
Examplebinance-futures,bybit
products
string

Products to include. Comma separated for multiple. Exactly one of products or coins is required.

ExampleBTCUSDT,ETHUSDT,SOLUSDT
coins
string

Coins to include. Comma separated for multiple. Exactly one of products or coins is required.

ExampleBTC,ETH,SOL
columnsRequired

Columns to return. Comma separated for multiple. Available values depend on type.

beginRequired
integer <int64>

Start of the time range as a millisecond timestamp.

Example1767225600000
endRequired
integer <int64>

End of the time range as a millisecond timestamp.

Example1767268800000
resolutionRequired
integer

Resolution in minutes, e.g. 240 for 4-hour candles. Any multiple of 60 beyond the listed values is also accepted. When months=true, interpreted as a number of months instead, with no divisibility constraint.

Values
12345
Example240
months
boolean

Set to true to interpret resolution as a number of months instead of minutes, e.g. resolution=1&months=true for monthly candles. When enabled, the requested time range is limited: end - begin must not exceed 32 days times resolution.

Exampletrue

Header Parameters

AuthorizationRequired
string

HTTP basic auth: api as the username and your API key as the password. With curl, pass --user "api:your_api_key". The equivalent raw header is Basic base64(api:your_api_key).

ExampleBasic $(printf "api:your_api_key" | base64)

Responses

Get options term structure

GET/api/v1/terms

Returns the current options term structure in CSV format, for BTC and ETH.

Each row is one listed expiry, sorted by expiry ascending:

  • time is the expiry as a millisecond timestamp.
  • at_the_money_iv is the at-the-money implied volatility for that expiry.
  • dte is the days to expiry.
  • fwd_iv is the forward implied volatility.

This is a snapshot of the current term structure; there are no time range parameters.

Query Parameters

coinsRequired
string[]

Coins to include. Comma separated for multiple. Only BTC and ETH are supported.

Values
BTCETH
ExampleBTC,ETH

Header Parameters

AuthorizationRequired
string

HTTP basic auth: api as the username and your API key as the password. With curl, pass --user "api:your_api_key". The equivalent raw header is Basic base64(api:your_api_key).

ExampleBasic $(printf "api:your_api_key" | base64)

Responses

Get market caps

GET/api/v1/caps

Returns the latest market capitalization data in CSV format, sorted by circulating market cap descending:

  • time is the timestamp of the data as a millisecond timestamp.
  • circ is the circulating supply in coins.
  • circ_dollars is the circulating market cap in dollars.
  • fdv is the fully diluted supply in coins.
  • fdv_dollars is the fully diluted valuation in dollars.

This is a snapshot of the latest data, there is no historical data.

Query Parameters

coinsRequired
string

Coins to include. Comma separated for multiple.

ExampleBTC,ETH,SOL

Header Parameters

AuthorizationRequired
string

HTTP basic auth: api as the username and your API key as the password. With curl, pass --user "api:your_api_key". The equivalent raw header is Basic base64(api:your_api_key).

ExampleBasic $(printf "api:your_api_key" | base64)

Responses

Get orderbook levels

GET/api/v1/heatmap

Returns historical futures orderbook depth as headerless CSV. Specify exactly one target: either exchange and product, or coin by itself. A coin request aggregates depth across the tracked futures exchanges.

Only a subset of futures products has orderbook history. The futures catalog marks covered products with depth: true. A single request may contain at most 512 resolution buckets; split longer ranges into contiguous requests. See all supported symbols.

Query Parameters

exchange
string

A futures exchange. Required with product, not allowed with coin.

Values
binance-coin-marginbinance-futuresbybitbybit-coin-marginderibit
Examplebinance-futures
product
string·min 1

Exchange-native futures product. Required with exchange, not allowed with coin.

ExampleBTCUSDT
coin
string·min 1

Velo-aggregated coin value. The orderbook data is then aggregated across tracked futures exchanges. Replaces exchange and product.

ExampleBTC
beginRequired
integer <int64>·min 0

Start of the time range as a millisecond timestamp.

Example1767225600000
endRequired
integer <int64>·min 0

End of the time range as a millisecond timestamp. Must be later than begin.

Example1767229200000
resoRequired

Snapshot resolution in minutes. The raw endpoint accepts 1, 5, 10, 15, 30, or any positive multiple of 60. The TypeScript SDK exposes the named subset 1m, 5m, 10m, 15m, 30m, 1h, 2h, 4h, 6h, 12h, 1D, and 1W.

forward
integer·const 1

Set to 1 to return snapshots ordered by time ascending. When omitted, snapshots are returned in descending order.

Example1

Header Parameters

AuthorizationRequired
string

HTTP basic auth: api as the username and your API key as the password. With curl, pass --user "api:your_api_key". The equivalent raw header is Basic base64(api:your_api_key).

ExampleBasic $(printf "api:your_api_key" | base64)

Responses